Language:
Page Info
Engine Version:

キャラクターのセットアップ

Character.png

ゲームのプロジェクトやジャンルが何であれ、どこかの時点で背景を動き回るアニメートされたキャラクターが必要になるでしょう。これは、プレイヤーが制御するキャラクターだったり、何らかの方法でワールドとインタラクションする AI 駆動のエンティティの場合があります。とにかく、ワールドで適切にアニメートできるように、こうしたキャラクターをセットアップする方法を理解する必要があります。このドキュメントの目的は、そうした方法の概要を示すことです。個々の詳細については専門的ドキュメントとサンプルをご紹介します。ここでは、プレイヤーが何らかの制御をするキャラクターを作ります。

このドキュメントでは、ブループリントを使って可能な様々なスクリプティング操作を参照します。ブループリントで可能なことは、C++ でも可能です。ブループリント ビジュアル スクリプティングだけを使用することにこだわる必要はありません。最後のセクションでは、C++ とブループリントの両方のセットアップを示すコンテンツ サンプルへの参照を掲載します。

Playable Owen Character の例が、セクション 1.10 の アニメーションのコンテンツ サンプル のページにあります。

ワークフローの概要

以下は、UE4 でキャラクターをセットアップするための主なワークフローです。

  1. 3ds Max や Maya などのサードパーティーのデジタル コンテンツ クリエーション (DCC) パッケージを使用してアセット (スケルタルメッシュ) やアニメーションを作成します。

  2. スケルタルメッシュやアニメーションを UE4 にインポートします。新規スケルタルメッシュに対して新規スケルトン アセットを作成する、または同一または類似のスケルタルメッシュに対して既存のスケルトン アセットを再利用します。

  3. プレイヤーからの入力を処理するには、PlayerController スクリプトまたはブループリントを作成します。

  4. キャラクターやポーンのスクリプト、またはブループリントを作成して入力をパースして、キャラクターの実際の動き (骨格アニメーションではなく) を制御します。

  5. キャラクターの Animation ブループリントを構築します。

  6. カスタムの PlayerController とその他のカスタム スクリプト アセットを利用した GameMode スクリプトまたはブループリントを作成します。

  7. ゲームをプレイしてください。

一般的に上記のステップでは、うまく機能させるために幅広いサブステップがさらに必要になります。このリストはフローについての一般的な考え方を示したものにすぎません。次のセクションでは、こうした各ステップが実際に持つ意味とその適用方法について詳しく説明します。

アート アセットを作成する

ArtAssets.png

色々な意味で、アート アセット作成は、キャラクターの制作プロセスで最も難しい部分です。一般的に、アンリアル エンジンに実際に触れる以前に、デザイン、モデリング、表面処理、リグ構築、アニメーションにかなりの時間を費やす必要があります。キャラクターのデザインやアニメーションの微妙な感覚の違いまではお伝えできませんが、こうした工程を支援するツールは実際に用意してあります。

Maya のリグ構築ツール

エピック ゲームズ社内では、アニメーション アーティストの多くが、Maya を使用してキャラクターをアニメートしています。そのため、リグ プロセスを簡素化する高度なリグ構築ツールを開発して、数時間かかっていたものを数分まで時間短縮しました。

アニメーションとリギングツールセット (A.R.T) は、アニメーターのワークフローを迅速化する多くのアニメーションツールだけでなく、キャラクターのスケルトン作成、配置、リグの作成などかできる総合ツールセットです。現時点では Maya2013 とそれ以降のバージョンでテストを終了し互換性を確認しています。以下の機能があります。

  • 各プロセスでユーザーを誘導する直観的なユーザーインターフェース

  • 完全なスケルタルの作成

  • 直観的な位置調整リグを用いたスケルトンのカスタム配置

  • アニメーションチームへリグ全体のパブリッシュおよび送信がわずか 1 分で完了!

  • 最終キャラクターに簡易なスキニングを設定

  • アニメーションツール一式には、モーキャップまたはアニメーションデータのインポートを含むユーザーインターフェース、FBX へのエクスポート、ポーズ ツール、ミラリング、空間の切り替えなどが完備されています。

詳細は、Maya アニメーション リギング ツールセット ドキュメントをご覧ください。

スケルタルメッシュをインポートする

CharacterViewport.png

FBX は Autodesk 社が開発し、所有するファイル形式です。Autodesk MotionBuilder、 Autodesk Maya、および Autodesk 3ds Max などのデジタル コンテンツ作成アプリケーション間の相互運用のために使用します。Autodesk MotionBuilder ソフトウェアは、ネイティブに FBX をサポートしますが、Autodesk Maya と Autodesk 3ds Max のソフトウェアには FBX プラグインが含まれます。

アンリアル エンジンは、FBX インポート パイプラインを特徴とします。これにより、この形式をサポートする任意の数のデジタル コンテンツ作成アプリケーションからコンテンツを転送することができます。

詳細は FBX コンテンツ パイプラインスケルタルメッシュ のドキュメントをご覧ください。

スケルタルメッシュを UE4 に適切にインポートすることは、アニメートしたキャラクターを作成するうえで重要なステップです。アンリアル エンジンには、インポート プロセスを高速化する様々なオプションを持つ堅牢なインポート システムがあります。

FBX ファイルのインポートに関する詳細は FBX インポート オプションのリファレンス をご覧ください。

Player Controller を作成する

PlayerController.png

Player Controller はプレイヤーからの入力をパースし、キャラクターを動かすイベントにすることを主な目的とする特殊なタイプのスクリプトまたはブループリントです。例えば、コントローラーのアナログ スティックを上方に動かすとイベントを発生させて、それがキャラクターを画面上で前進させるように制御します。

PlayerController はアンリアル内に既に存在するクラスです。エディタでは、PlayerController を親クラスとして新規ブループリントを作成できます。その後、これを使用してプレイヤーからの入力で発生する独自のイベントをセットアップできます。

たとえば、カスタムのブループリント、PlayerController では、エディタ内で新規プロジェクトを開始し(File > New Project)、Blueprint Top Down テンプレートをチェックアウトします。ブループリント ベースのテンプレートはすべて何らかの PlayerController (デフォルトの Player Controller または Player Controller Blueprint) を含みます。しかし、Player Controller を使用したカスタム アプリケーションを見たい場合は、Blueprint Top Down テンプレートが最も簡単です。

新規プロジェクト内では、クラスビューア のフィルタをオフにして、クラスビューア で PlayerController を検索することができます。このアセットを ダブルクリック するとアセットが開き、ご自分のセットアップを見ることができます。

新規プロジェクトを作成し (File > New Project の順序で)、C++ Top Down テンプレートを選択することで、PlayerController を C++ スクリプトで見ることもできます。

Pawn または Character ブループリントを作成する

CharacterBP.png

PlayerController をセットアップしたら、システムはプレイヤーからの入力を処理する用意が整います。しかし、こうした入力を画面上でキャラクターを動かすことができるものに変換する必要があります。つまり、こうした入力をアクションに変換する (すなわちパースする) 必要があります。ここで Pawn クラスまたは Character クラスが関わってきます。

Pawn または Character を選択する

ここでは Pawn または Character の 2 つのクラスがあります。この 2 つは両方とも、プレイヤーまたはインゲームの AI によって制御されるゲーム内のエンティティに対して使用されます。主な違いは、Character クラスは、Pawn クラスの拡張であり、プレイヤーの物理面、特定メッシュのサポート、プレイ可能なインゲームのキャラクターを作成する際に必要な処理の一般的なタイプを追加します。ここでは、Character クラスを使用します。AI によってシーン内を動くようにする単純なエレメントでは、一般的にポーンを使用する必要はありません。

Character クラスのセットアップ

CharacterBPGraph.png

Character クラスは PlayerController からトリガーされるイベントで開始し、スクリプト (ブループリントのビジュアル スクリプト処理を含む) を使用し、こうした入力で実際に何を行うか、キャラクターを制御するためにどのように入力を使用するかを制御します。例えば、PlayerController はコントローラー上でアナログ スティックを上方向に動かす基本的なイベントを作成する場合、Character クラスがそのイベントを受け取り、それを使ってキャラクターを前方向に動かします。

Character クラスは、ゲームプレイ中にプレイヤーが目にする物の基本となるスケルタルメッシュへの参照も保持します。一人称視点のゲームの場合、これは多くの場合、単に宙に浮いているアームですが、フルボディが背景に適切にシャドウをおとす必要があればボディ全体の場合もあります。三人称視点のゲームの場合、メッシュはキャラクターを表現するスケルタルメッシュになります。

キャラクターの動きは一般的に何らかの動きを物理形状 (通常はカプセル) に適用することによって処理されます。この動きは MovementMode とも一致します。これはキャラクターが何をしているかを追跡するために使用する数値です (すなわち、歩く、走る、落下する、泳ぐなど)。この情報はスケルタルメッシュでどのアニメーションを再生するかを操作するために使われます。

カスタムのブループリント Character クラスの場合、新規プロジェクトをエディタ内で開始し (File > New Project)、次に、First Person または Third Person のいずれかの Blueprint テンプレートを選択します。すべてのブループリント ベースのテンプレートには、何らかのキャラクターが含まれます。しかし、First Person または Third Person のいずれかのブループリント テンプレートをお勧めしています。これは、全体的に単純であることと、こうしたジャンルが一般的に使用されているためです。

新規プロジェクト内で、クラスビューア で Character を検索し、ゲーム フォルダ内で、ブループリントでフィルタリングできます。このアセットを ダブルクリック するとアセットが開き、ご自分のセットアップを見ることができます。

新規プロジェクトを作成し(File > New Project)、First Person Code テンプレートまたはThird Person Code テンプレートを選択することで、Character を C++ スクリプトで見ることもできます。

Animation ブループリント

AnimBP.png

アニメーションをキャラクターと連携させるほとんどの煩雑な作業は Animation ブループリントで行います。

Skeletal Mesh アクタがワールドでどのように動くかを Character ブループリントで定義したら、Animation ブループリントでこうした動き (速度など) に基づいて特定のアニメーションの割り当てを開始できます。

Animation ブループリントには、2 つの主要コンポーネントがあります。 この 2 つが連動して、各フレームの最終アニメーションを作成します。具体的に EventGraph は、後で AnimGraph で使用可能な値を更新します。この値を使用して、ステートマシン、ブレンドスペース、その他のノードを操作し、複数のアニメーション シーケンスやポーズ間のブレンディングを可能にし、それにより他のシステムに通知を発行し、動的なアニメーション駆動のエフェクトを起こさせることができます。

Animation ブループリントは、キャラクターのセットアップで威力を発揮します。Animation ブループリントにすべてのデータが入ってきて、スケルタルメッシュに適切なアニメーションを実行させるようにします。Animation ブループリントとそのパワーを十分に理解するためには、以下を含む知っておくべき多様なアニメーションアセットがあります。

上記は、ごく一部にすぎません。Animation ブループリント のドキュメント、および First Person テンプレートや Third Person テンプレートなどのコンテンツ サンプルにあるいくつかの Animation ブループリント、Content Examples プロジェクト内にあるものを参照するとよいでしょう。

キャラクターの動きを定義する Animation ブループリントを作成したら、それをCharacter ブループリントの Mesh Component の下にある Anim Blueprint Generated Class プロパティに割り当てる必要があります。各スケルタルメッシュが複数の Animation ブループリントを持つ場合があり、Character ブループリントは、必要なアニメーションと変数データを送る Animation ブループリントを知っておく必要があるため、この割り当ては必要です。

GameMode のセットアップ

GameMode.png

GameMode はゲームを定義するために使う特殊なクラスです。一般的に、ゲームの必須クラスがどのようなものになるかを定義するために使用するプロパティを単に集めたものになります。以下はセットアップする主なプロパティです。

  • Default Pawn Class - インゲームのキャラクターに対してセットアップする Character クラスを保持します。

  • HUD Class - これは作成される特殊なヘッドアップ ディスプレイ (HUD) ですが、このドキュメントでは扱いません。

  • PlayerController Class - インゲームのキャラクターでセットアップしたカスタムの PlayerController を保持します。

  • Spectator Class - アクションを見ているだけのスペクテーター (観戦者) すなわち受動的プレイヤーを制御するために使用する特殊なクラスを保持します。これらは本ドキュメントでは取り上げません。

  • Replay Spectator Class - 再生中にスペクテーター (観戦者) を制御するために使用する特殊なクラスを保持します。これらは本ドキュメントでは取り上げません。

  • Game State Class - ゲームをどのようにプレイするかに関する特殊なルールやセットアップを制御しますが、本ドキュメントでは取り上げません。

  • Player State Class - 関連するプレイヤー情報をすべてのクライアントに複製するための特殊なルールを定義します。

キャラクターをテストするには、最低限デフォルトの Pawn クラスと PlayerController クラスのプロパティをセットアップする必要があります。

ワールド設定

button_Toolbar_WorldSettings.png

GameMode を設定したら、カスタムのキャラクターとプレイできるようにする最後のステップでは、現在のレベルが GameMode を使用していることを確認します。この確認は、 [World Settings] タブを使用して行います。このタブは、メイン ツールバーの上にある [Settings] ボタンからアクセスできます。

[World Settings] 内で GameMode Override を自分の GameMode のクラス名に設定したことを確認します。確認したら、新しいキャラクターを保存し、テストする用意が整います。

GameModeSettings.png

概要

セットアップのフローの概要は以下のとおりです。

  • Level の World Settings を使って、どの GameMode を使用するかを設定します。

  • GameMode はどの Pawn (Character) クラスおよびどの PlayerController クラスがゲームをプレイするために必要であるかを指定します。

  • Character クラス:

    • FBX 経由でインポートしたスケルタルメッシュを含むようにします。

    • PlayerController クラスからのデータを取り込み、動き (アニメーションではありません) に変換します。

    • どの Animation ブループリントを使用してスケルタル アニメーションを動かすかを Mesh コンポーネント内に保存します。

  • Animation ブループリント

    • Character クラスのデータをイベントグラフに取り込みます。

    • こうしたデータを使ってステートマシン、ブレンドスペース、その他のアセットを操作します。

    • こうしたアセットは、アニメーション シーケンス (FBX ファイルからスケルタル アニメーション データ) を使用してキャラクターをアニメートします。

  • Animation ブループリントの最終結果がスケルタルメッシュに適用されます。インゲームのキャラクターがアニメートするのを見ることができるようになります。

同梱サンプル

このエンジンには、こうしたセットアップがどのように行われるかを見る、また自分で試すためのいくつかのサンプルがあります。独自のゲームを作るために使用できる基本プロジェクト ジャンルであるテンプレートと、エピック ゲームズのアーティストと技術者が制作した事前構成されたコンテンツ サンプルを同梱しました。

テンプレート

NewProject.png

アンリアル エンジンで新規プロジェクトを作成する場合 (File > New Project)、テンプレートを選択するオプションがあります。これらは実質上、独自の GameMode、Character ブループリント、 Animation ブループリント、およびこのドキュメントで取り上げたあらゆるアセットを使用します。単純かつ明確にするために、First Person (一人称視点) または Third Person (三人称視点) のテンプレートを確認することを強くお勧めします。

こうした各テンプレートは、コード形式またはブループリント形式で利用することができます。これは、慣れ親しんでいる方法で開発することを選択できるようにしたものです。プログラマーならば、おそらく Code テンプレートを使用するでしょう。アーティスティックなデベロッパーならば、Blueprint テンプレートが使いやすいかもしれません。この 2 つは相互排他的ではありません。新しい Blueprint クラスを Code Template のプロジェクトに追加したり、コードのクラスを Blueprint テンプレートのプロジェクトに追加することができます。

コンテンツ サンプル

AnimationCE.png

Content Examples (コンテンツ サンプル) は、エピック ゲームズのアーティストと技術者がデザインした分野別のコンテンツです。こうしたコンテンツは、ContentExamples という名前のプロジェクト内にあり、マーケットプレイス 経由でダウンロード可能です。特に重要なのは、Animation.umap レベル内にあるアセットです。これは、キャラクター上のスケルタルメッシュのアニメーションの様々な用途を示しています。