テンプレートプロジェクトのプレイヤキャラクターの変更方法
ここでは、C++ Template project の「Isometric Pathfinding」を使用しています。GameSDKは使用しません。他のテンプレートプロジェクトでも、もちろんプレイヤキャラクターを変更可能です。
https://docs.cryengine.com/display/CEMANUAL/Tutorial+-+Replacing+the+Player+Character
使用バージョン CRYENGINE 5.5
使用する外部ソフト
- Microsoft Visual Studio
- 任意のxmlエディタ (Notepad++がおすすめ)
目次
サンプルファイルのダウンロード
公式マニュアルのページからサンプルファイルをダウンロードしてください。他のキャラクター.fbxを使用することも、もちろん可能です。
https://docs.cryengine.com/display/CEMANUAL/Tutorial+-+Replacing+the+Player+Character#Tutorial-ReplacingthePlayerCharacter-Files
キャラクターモデルとTextureのインポート
[Asset Browser]からObjects\Charactersフォルダを開き右クリックからCreate Folderで名前deerのフォルダを作り、[deer.fbx]と[deer_texture.tif]ファイルをドラッグ&ドロップします。または、Character Toolを開き、ビューポートにdeer.fbxファイルをドラッグ&ドロップします。
キャラクターモデルを読み込みを行うと、関連する複数の異なるAssetが作成されるため、objects/characters内に新しいフォルダ (objects/characters/deerなど) を作成することをお勧めします。
キャラクターモデルにTextureの割り当て
このdeerキャラクターモデルには、[Normal Map]が含まれていないので[Normal Map] を削除します。削除するには、[Asset Browser]からdeerのMaterialをダブルクリックし、[Material Editor]を開き [Texture Maps] から[Normal Map]を削除します。
[Diffuse Map] をdeerフォルダのdeer_texture.ddsに変更します。[File] → [Save] を選択し、 [Material Editor] を閉じます。
アニメーションのインポートと調整
[Character Tool]の右メニューのAnimationsから[deer_Take001]を選択。
アニメーションを見ると、このモデルに付属しているアニメーション(deer_Take001)が、実際には、アイドルアニメーション、歩きアニメーション、走るアニメーションという3つの異なるアニメーションで構成されていることがわかります。
まず、どのフレームがどのアニメーションを表しているかを知ることが重要です。そのためには、 [Character Tool] -> [Playback] パネルに移動し、 [Seconds] を [Frames] に変更します。
アニメーションがいつ開始され、どのフレームが各アニメーションの最後になるかを確認します。後で使用するために、これらのフレームを書き留めておきます。
最初のフレーム0はデフォルトのTポーズで、アニメーションの一部ではありません。フレーム1から最初のアニメーションが開始されます。
アニメーションを分離する
次のいずれかの方法で、[Animation importer]を開きます。
[Character Tool]で、[File] > [Import FBX] > [Animation] または、SandboxのUIから、 [Tool] > [FBX Import] > [Animation] を選択します。
deer.fbxを[Animation importer]にドラッグ&ドロップしfbxファイルを読み込みます。
左のメニューから[Preview this]をクリックすると右のパネルに、1つの長いアニメーションが表示されます。
この1つの長いアニメーションを3つに分け、3つのアニメーションクリップを作成します。まずは、アイドルアニメーションから作成します。このdeerキャラクターモデルの場合は、アイドルアニメーションのフレーム部分はフレーム1から始まりフレーム616で終わり、歩行アニメーションはフレーム617から始まりフレーム647で終わります。
[Animation clips]の右の数字をクリックし、[add]で項目を増やし、アイドルアニメーション(deer_Idle)、歩きアニメーション(deer_Walk)を追加し保存します。
Skeletonを追加
deerのSkeletonを追加するには、[Character Tool]を使用するか、skeletonlist.xmlを編集します。
Character Toolで追加する
左側のAssetsからCompression (Animations/)を展開し、Skeleton Listを選択。
Properties -> Aliases
ドロップダウンボタンからAddを選択し「deer.chr」Skeletonを追加し保存します。
Skeletonには、インポートしたファイルの名前と同じ名前 (この場合はdeer) を付けることをお勧めします。
三人称モデルをdeerのモデルに変更
モデルとそれに関連するすべてのAsset(Skeleton、Textureなど)がSandboxにインポートされたので、新しいキャラクターモデルをロードするようにテンプレートのソースコードを修正する必要があります。
Sandboxを閉じます。
プロジェクトのルートフォルダに移動し、[game.cryproject]ファイルを右クリックし、Generate solutionを選択します。
C++の場合
新しいsolutionフォルダが生成されます。このフォルダのサブフォルダ「win64」を開き、「game.sln」を開きます。
ソリューションエクスプローラから「player.cpp」を探し、開きます。
25行目を以下のように編集します。
m_pAnimationComponent->SetCharacterFile(“Objects/Characters/deer/deer.cdf“);
行番号は、エンジンのバージョン間で異なる場合があります。
C#の場合
[Game.sln]ファイルが[game.cryproject]ファイルと同じフォルダ内にあるので開きます。
ソリューションエクスプローラから「player.cs」を探し、開きます。
15行目を以下のように編集します。
private const string PlayerGeometryUrl = “Objects/Characters/deer/deer.cdf“;
行番号は、エンジンのバージョン間で異なる場合があります。
ビルド > ソリューションのビルド
Visual Studioを閉じます。
Assets/Animations/Mannequin/Preview/Player.xml を開きます。
4行目と5行目を変更したモデルdeer.cdfへのパスに変更します。
保存して閉じます。
アニメーションを変更
このままでは、テンプレートのアニメーションと新しいdeer skeletonとで互換性がないため、新しいアニメーションを使用するようにキャラクターを設定する必要があります。
Sandboxを開き、[Mannequin Editor]を開きます。
Tools > Animation > Mannequin Editor
[File] > [Load Preview Setup]を選択し、[player.xml]を選択します。このとき、エラーが表示されますが問題ありません。次に、左下隅にある[Fragments]タブをクリックします。
左上のツリーで、 Idle > Walk から展開しOption 1をダブルクリック。
右側の[Fragment Editor]の下部の[ThirdPerson(Thirdperson): Walk:]をクリックします。
[Anim Clip Properties]の[Animation]フィールドをクリックし、これをdege_walkアニメーションに変更します。
Idle > Default > Option 1も同じように設定し、[Animation]のフィールドをdeer_idleアニメーションに変更します。
[File] – > [Save Changes]を選択してMannequin Editorを閉じます。
テスト
Ctrlキー+ Gを押してLevel上でテストします。「Isometric Pathfinding」のLevelでは任意の場所をクリックすると、鹿が歩くはずです。