UE4 への移行日記 (16)

アンリアル日記 ― 第 16 日目 (2015/3/17)

UE4 4.7.2 (7 時間)

Google Docs による個人的なメモ

GitHub で NVIDIA GameWorks チームに加わりました。進化した PhysX 関係のリポジトリに容易にアクセスできるようにするためです。これは無料で簡単にできます。そこで分かったのですが、何と、APEX 関係のビルドの方法についてまだ学ばなければなりません。優先度は高くないのですけども。

昨夜この日記を終える時に言い忘れたのですが、UMG のチュートリアルは、これを書いている時点で、ランチャーの「ラーニング」タブで最後の「ゲームプレイ コンセプト サンプル」です。その下には、あまりドキュメント化されていない「ゲーム プロジェクト サンプル」のコーナーがあります。公式のドキュメンテーションに埋め込まれているトレーニング動画シリーズに戻る前に全速力でこれを勉強したいと思います。

「プラットフォーマー ゲーム」: レベルベースの横スクロール ランナー ゲームです。シンプルなジャンプとスライドの機能が付いています。次のためのスクリプトが含まれています。オープニングの 2D によるシネマティック、2D キャラクターの動き、タイマー ブーストのピックアップ付きカウントダウン タイマー、車を爆発させることによりジャンプをブーストさせるトリガー、岩棚の上で終結するジャンプのためのマントリング、順位表によるハイスコアの記録。なお、ここで使われている UI およびプレイヤーのコントローラーは、すべて、ブループリントではなく C++ で書かれています。

「ブラックジャック」: カジノゲームです。21 のための完全にブループリントによるロジック、さまざまなカジノを主題としたメッシュ、マテリアルによるトランプカードが含まれています。重要メモ: カメラとインスタンス化のために使用されるレベル ブループリントが含まれています。また、UI の作成はすべてブループリントによるものです (ウィジェットはありません)。

「タッピーチキン」: 「Flappy Bird」のクローンです。ゲーム ロジックのほとんど全部が 1つのブループリントに入っています。ブループリントは注釈がていねいにつけられているので、容易にたどっていけます。このゲームはモバイル/タッチスクリーンを想定して作られていることはよく知られています。ですから、入力ロジックはそのようなインターフェイスに対応しています。また、検知されたプラットフォームに基づいて、スクリーンサイズを決定するロジックを切り替えることが可能です。ですから、デバイス毎に別の機能を実装したい場合は、ぜひ参考にしてみてください。
TappyBirdBlueprint-600x296
これをまとめた人の整理スキルに拍手!

「ヴィークルゲーム」:シングル トラック、サードパーソン視点のデューンバギーによるレースです (1 車で、AI はなし)。このゲームをやってみると、「高度なヴィークル」アセットが非常に気難しいということを思い出しました。存在しないものとコリジョンすることがしばしばなのです。これも大部分が C++ で作られていて、多数の砂漠をモチーフにしたメッシュや、かなり素敵なデューンバギーのメッシュ、素早く使える小さなオプション メニューなどが含まれています (繰り返しますが C++ によるもので、ブループリントも UMG もありません)。インスタンス化マテリアルを多様に活用することによって、さまざまな砂漠のテクスチャが作られています。全部で 922 あります。ご注意: プロジェクトをエディタでプレイすると、かなりの確率でラグアウトします。そこそこパワフルな開発環境でも起こります。

「メモリゲーム」: 同じタイルをひっくり返して当てるゲームです。初期化のためにレベル ブループリントが使われています。UMG はありません (ブループリントによる UI 描画)。ゲームロジックは完全にドキュメント化されており、すべてがブループリントで作成されています。素敵なアセットがいくつか見つけました。特にオーディオキューなどが。

「スイング ニンジャ」: 2D 横スクロールです。走る方向を反転させるグランプリング フックのメカニックが搭載されています。コインを集めて、エンドトリガーに到達します。内容的には、以下のような感じになっています。初期化のためのレベル ブループリント。ブループリントによる UI (UMG はありません)。2D ゲームでありながら、キャラクターは、スケルタルメッシュ アニメーションをともなった 3D メッシュであり、レベルのオブジェクトもすべて 3D メッシュです。スムーズジャズ的な BFM。スタイライゼーションの効果的な応用。スカーフの素敵なエフェクトなどです。このゲームを微調整することは、よい訓練になると思います。僕の場合は、グランプリング フックに「巻き」のコンポーネントを追加することによって、プレイヤーがより短いジャンプの弧を描けるようにしてみました。

「シューター ゲーム」: おそらくアンリアル・エンジンが最も得意とするものは FPS でしょう。本プロジェクトは C++ クラスで作られています。非常に美麗なレベルとアセットが含まれており、エイム ダウン サイト機能が備わったアサルトライフルのサンプルが素晴らしいです。それに、完璧にドキュメント化されているオプション メニューが華を添えています。このプロジェクトを見ていると、自分でも FPS を作りたくなりました。こんなことは、これまではなかったことです。
Shooter-Game-600x286
このサンプル プロジェクトではレベルのジオメトリが見事に設置されています

「ストラテジー ゲーム」: C++ で作られたタワー ディフェンス ゲームです。関連するアセットが含まれており、ドキュメント化されています。非常にクリーンなミニマップの実装に注目です。

C++ によるプロジェクトを軽視しているように見えたらすみません。現在ブループリントと UMG によるプロジェクトを勉強しているところなものですから。しかし、完全な機能が備わった無料のサンプルをいつでも好きな時に調べてみることができるということは素晴らしいことです。

これで [ラーニング] タブに含まれているものはすべて終えました!2 つの VR プロジェクトは機材がないので省略しました。それでも、合計で 35 のプロジェクト (および 44 個の異なるレベルが含まれているコンテンツ サンプル プロジェクト) があったので、2 週間でかなりの事柄を学ぶことができました。さあ、公式の動画シリーズに参りましょう。さらに、ドキュメンテーションにある諸々のものを勉強していきましょう。来週の今頃には、UE4 で完全なプロダクション モードに移行して、実験による学習ができるようになると思います。

動画チュートリアル [基本] ― Getting Started (入門)

このシリーズは実はすでに終えています。Getting Started コンテンツ (ランチャーの [ラーニング] タブの最上部でで一番大きいボタン) に埋め込まれていたからです。もしもあなたが UE4 を初めて触るのでしたら、何よりもまずこれがお薦めです。

動画チュートリアル [2D] ― Introduction to Paper2D (Paper 2D 入門)
(訳注: この「UE4 の学び部屋」でも取り上げられています。)

この動画の半分くらいまで進みました。興味深いことに、この動画シリーズで説明されていることよりも、コンテンツ サンプルで学んだことのほうが進んでいます。つまり動画の内容が古くなっているのです。たとえば、フリップブックの自動生成機能などがその例です。明日はここから再開します。
Flipbook1-600x321
2D アセットを簡単に作れるのを見て、2D ゲームを作りたい衝動に駆られました。これも Unity 3D ではあり得なかった感覚です。

また、今日は特別なライブストリームを視聴しました。Alan Noon 氏が戦車を組み立てて見せました。コンポーネント メッシュがエディタで組み立てられていき、ソケットがアサインされ、異なるパーツ (この例では戦車の本体と砲台) が独立して制御されるようになる様子を見ることができました。素晴らしかった。これによって、自分でもソケットを考慮して 3ds Max でメッシュを作成しなければならないという思いを強くしました。また、キャタピラの動きを模すためにアニメーション化されたマテリアルを使用していることが印象的でした (アニメーションと動きの速度を結びつけることによって 1:1 の速度を作る)。また、可能な場合は、インスタンス化されたマテリアルを使用すべきであるということも再確認できました。パフォーマンスのための向上は軽視すべきではありません。







About なつのや

アンリアル・エンジン 4 を基礎から勉強するためのサイト「UE4 の学び部屋」を開いています。どうぞよろしくお願いいたします。
Diary, UE4 情報

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>