UE4 に関する、楽しいプレゼンテーション用資料があることを教えてもらいました。
これから UE4 を使おうかどうしようか思案されている方には参考になるかもしれません。
Unity3D から UE4 に乗り換えた理由とその効果がとても分かりやすく、かつ、面白くまとめられています (個人的には最後から 1 つ前のページが好きです)。
Unity3D から Unreal Engine 4 へ
自己紹介
▶Martin Pernica
@martindeveloper
▶Soulbound Games のリードデベロッパー
・GPGPU
・エンジンの拡張
・ゲームコード
▶時には CEO
先に大切なことを
▶免責事項 – このプレゼンテーションは、「Unity3D のこき下ろし」とか「UE4 のプロモーション」を意図しているものではありません!
・Unity3D および UE4 に関する私たちの使用感を表したものです。
始めに
▶Unity3D は広く使われているゲームエンジンです。
・無料版もあり、使いやすい。
・私たちは 2 年間 Unity3D を使用しました。
▶他方、UE4 は有料であり、ロイヤリティが発生します。
(訳注: 2015年3月に UE4 は無料化されました!)
・さらに、UE4 は初めて使用する人にとっては難しい場合があります。
▶それでは私たちはなぜ Unity3D から UE4 に移行したのでしょうか?
インディー系
インディー系の予算
▶私たちは、リソースが限られた小規模インディー系開発会社です。
▶Unity3D のサブスクリプションには、月々 225 ドルが必要です。
・ユーザ一人当たりの料金です。
・ロイヤリティは発生しません。
▶UE4 のサブスクリプションは、月々 19 ドルです。
・ユーザ一人当たりの料金です。
・5% のロイヤリティが発生します。
DRM (デジタル著作権管理)
▶Unity3D には 1 ユーザー当たり PC 2 台までの制限があります。
・Unity3D のサブスクリプションをキャンセルすると、それ以上 Unity3D を使用することができなくなります。
▶UE4 には PC の台数に関する制限がありません。
・UE4 のサブスクリプションをキャンセルしても、UE4 をそのまま使用することができるし、ゲームをリリースすることも可能です!
チームのワークフロー
チームのワークフロー
▶私たちのような小規模チームにとっては、開発の効率性が重要です。
▶UE4 を使用することによって効率性が向上する分野がいくつかあります。
・マテリアル
・ゲームロジック
・ビジュアルのクオリティ
・エンジン プログラミング
チームのワークフロー – マテリアル
チームのワークフロー – マテリアル
・グラフィック担当者「ちょっといいですか、プログラマーの方、このマテリアルにもっと光沢をもたせたいのですけど」
・プログラマー「いいですよ。明日新しいシェーダーを送りますね」
・翌日
・グラフィック担当者「新しいシェーダーありがとうございます。でも、前の方が良かったかな」
・プログラマーはウィンドウを開いて…
チームのワークフロー – マテリアル
▶グラフィック デザイナーは、自分でマテリアルを調整する必要がありますが、やり方を教えることは実に難しい (不可能と言っても良いくらい)。ShaderLab、CG、GLSL、HLSL などなど。
▶UE4 には強力なマテリアル エディタが最初から備わっています。
・もちろん、Unity3D のためにマテリアル エディタを購入することはできます。しかし、
・マテリアル エディタは備え付けの機能でなければなりません。
チームのワークフロー – マテリアル
▶そこで私たちは「ちょっといいですか」方式によるマテリアルのワークフローを UE4 のマテリアル エディタに切り替えたのです。
・ 結果は良好です。デザイナーが自分でさまざまなバージョンを試すことができるのですから。
チームのワークフロー – ゲーム ロジック
チームのワークフロー – ゲーム ロジック
▶ゲーム ロジックは、プロジェクトで書かなければならないコードのうちで最も大きくなりがちです。
▶コードを書いて、レベル/ゲーム デザイナーとテストして、修正しなければなりません。
▶Unity3D は高速なイテレーションが可能であるとともに、高度にフル機能の言語である C# が使われています。
・しかし、これだけでは十分でありませんでした。
チームのワークフロー – ゲーム ロジック
▶私たちの目標は、マテリアルのワークフローの場合と同じでした。- 「モジュール」を使ってゲームを作成できるツールをデザイナーに使ってもらいたい。
・モジュールは調整可能にすることができます。
→ プロパティ
・モジュールはプログラマーによって作成されます。
→ ネイティブの C++ によって。
→ C++ は、多くのプログラマーにとっても問題となることがあります。
・ゲーム デザイナーは、ゲームのフローやゲーム内のアクションなどを改変することができます。
チームのワークフロー – ゲーム ロジック
▶ Unity3D を使用していた時は、より調整可能なゲーム ロジックを実現するために「パブリック プロパティ」を使っていました。
・しかし、十分ではありませんでした。
・また、調整可能なゲーム ロジックを実現するためには、エディタの拡張機能を作成しなければなりません。
▶しかし、UE4 には最初からソリューションが備わっています。それはブループリントです。
チームのワークフロー – ゲーム ロジック
▶UE4 のブループリントは正に私たちが必要としていたものでした。
・ブループリントとは、ビジュアル スクリプティング ツール/言語です。
→ 大半のプログラマーにぴったりだとは言えません (コードが大好きだからです)。
→ しかし、ゲーム/レベルデザイナーにとっては最高のツールです。
チームのワークフロー – ゲーム ロジック
▶プログラマーは、設定可能なプロパティを伴った「モジュール」を作成します。
・モジュールはスタンドアロンであり、最高度に調整可能なプロパティが備わっています。
▶ゲームデザイナーは、この「モジュール」を使用してゲームロジックを作成します。
チームのワークフロー – ゲーム ロジック
▶おかげで、プログラマーがコードでゲームロジックを更新し、テストのために新たなコードをデザイナーに送るというようなワークフローはなくなりました。
チームのワークフロー – ゲーム ロジック
▶私たちのモジュールはどのように機能しているでしょうか?
・ブループリントは「オーバーヘッド」フリーではありません。
・したがって最重要なロジックは C++ で実装します。
・ブループリントではいくつかのイベントおよびモジュールのコールチェーンだけを実装します。
▶また、Unity3D ではビジュアル スクリプティングのための拡張機能を購入することができますが、私たちが望んでいるのはフル機能のエンジンです。コアな機能が拡張機能ではなく、「第一級オブジェクト」的であるようなエンジンを望んでいるのです。
エンジン プログラミング
ソースコードとホットフィクス
▶ UE4 を使うと、エンジンのソースコードにフル アクセスできます (サードパーティ製のライブラリは除きます)。
▶このことは私たちにとってどのような意義があるのでしょうか?
ソースコードとホットフィクス
▶私たちはエンジンの内部機能を改変することができます。
・あるいは私たち独自の機能を実装することができます。
・小規模なチームにとっては大きな問題ではありませんが、便利です。
・たとえば新たな機能をブループリント システムに追加したり、エンジンの UI を変更したいり、独自の C/C++ のライブラリを実装したりすることが可能です。
ソースコードとホットフィクス
▶しかしもっと有益なことがあります。それは、自分たちでエンジンを「ホットフィックス」できるということです。
・Unity3D にバグ修正を求めるには、まずバグを報告して、さらに待って、待って、待ちます。
ソースコードとホットフィクス
▶これも劣らず重要なことですが、エンジンは Epic によってだけでではなく、コミュニティによっても開発されています。
▶つまり、新機能/バグフィクスがより頻繁にリリースされることになるのです。
ソースコードとホットフィクス
▶さらに、公式の Epic の UE4 ロードマップが Trello で公開されています!
・希望する機能に投票することもできます。
ビジュアルのクオリティ
ビジュアルのクオリティ
▶私たちは、いくつかのプロジェクトですでに、Unity3D から UE4 への切り替えを行っていました。レンダラーと全体的なビジュアル クオリティが優秀であったためです。- Republic Sniper、Eve: Valkyrie など
▶どういうことでしょうか?
ビジュアルのクオリティ – Republic Sniper
ビジュアルのクオリティ – Republic Sniper
ビジュアルのクオリティ
▶以下のメモは、Unity3D 4.* との比較であって、Unity3D 5 との比較ではありません!
▶UE4 の機能:
・完全に実装されている DirectX 11の機能
・物理ベースのシェーディング
→ IES ライティング プロファイル
→ GI (グローバル イルミネーション)
・GPU パーティクル
→パーティクル ライト
・Temporal AA (一時アンチエイリアシング)
・マルチスレッド レンダラ
・動的オクルージョン カリング
その他
▶UE4 の電子メール サポートは素晴らしかったです。そして、フォーラムと AnswerHub も。
・Epic のスタッフがしばしば話に加わり助けてくれます。
▶過去に、次世代コンソールのための開発に関する質問を電子メールで UE4 と Unity3D のサポートに送ったことがあります。
・Unity3D から返答をもらえるまで、1.5 週間かかりました!
・UE4 から返答をもらえるまでの時間は、約 1 時間でした。
・ところで、ほぼ同じ質問を CryEngine のチームに送ったところ、返事に約 1 か月待つことになりました…
結論
▶UE4 は必ずしもみんなが選択すべきものとは言えないし、Unity3D に関する潜在的問題のための特効薬というわけでもありません。
▶しかし、私たちのチームでは、UE4 を使用した場合、Unity3D を使用した場合よりも 効率性が向上しました。
質疑応答
かわいい…
ご静聴、ありがとうございました。
[最後にまとめ]
この資料で挙げられていた UE4 の強みを抽出すると、
・経済的 (料金が格安、使用 PC 台数が無制限)
・効率性が向上 (非プログラマーでも扱えるブループリント、エンジンの拡張・改変・修正が自在)
・手厚いサポート (迅速なサポート、 ロードマップの公開)
・充実したコミュニティ (AnswerHub、コミュニティによる開発も)
・高機能性 (ハイクオリティのビジュアルを支える各種機能)
となるでしょうか。
個人的に UE4 について普段感じている特徴もついでに。
-
月例アップデートの質/量の充実度
-
映像チュートリアルの充実度
-
マーケットプレイスの可能性
-
ブループリントの完結性 (美しいです)
-
C++ とブループリントのクラスの同等性