【TopDown Engine】モデルを2D Pixel Unit Makerのモデルに変更する方法

キャラクタモデル TopDownEngine
スポンサーリンク

使用するAsset

  • TopDownEngine
  • 2D Pixel Unit Maker

前提として

今回の記事はTopDownEngineと2D Pixel Unit Makerの2つのアセットが必要なります。
ただし、2D Pixel Unit Makerがなくても他の2Dキャラクターアセットも同様のことを行えばモデル変更は簡単に出来るため参考にしてみてください。

モデルを変更する

TopDownEngineの最小モデルである”MinimalCharacter2D”を
2D Pixel Unit Makerのサンプルにある”0_Kight”に変更する方法になります。

MinimalCharacter2DのHierarchyとモデル
0_KightのHierarchyとモデル

MinimalCharacter2Dのプレハブに”0_Kight”を入れる

#これから変更するMinimalCharacter2Dを”MinimalCharacter2DtoKight”とします。

MinimalCharacter2DtoKightのプレハブの中に

SPUM->RetroUnitPrefabs->0_TeamOriginal にある”0_Kight”を格納します。

そうすると以下のようになるはず。

MinimalCharacter2Dと0_Kightのモデルと重ね合わせたモデル

“MinimalCharacterModel”は不要なので削除するか非活性状態にしましょう。
そうすると”0_Kight”だけが画面上に残るようになります。

MinimalCharacter2Dのモデルを消して0_Kightのみとした状態

CharacterスクリプトのCharacterModelを設定する

CharacterスクリプトのCharacterModelを見ると変更前の”MinimalCharacterModel”になっているため、”0_Kight”に変更する必要があります。

MinimalCharacter2DtoKightのHierarchy
MinimalCharacter2DtoKightのHierarchyでChracterModelを変更した場合

変更するとCharacterModelが”0_Kight”に変わります。

変更したモデルを動かしてみる

TopDownEngineのデフォルトだと
Managers->LevelManagerオブジェクトに”LevelManager”スクリプトが設定されています。
その中の”PlayerPrefabs”が実行するときに動かせるプレイヤーモデルなので、今回作った”MinimalCharacter2DtoKight”を設定します。

LevelManagerのHierarchy

実行してみると、設定した”0_Kight”のモデルでキャラクターが動かせます。
ただし、アニメーションやキャラクタの向きなど修正してないため違和感はいろいろあると思います。

続いて、既存のアニメーションから2D Pixel Unit Makerのアニメーションに変更する方法になります。

2D Pixel Unit Makerのアニメーションに変更する

2D Pixel Unit Makerのアニメーションの格納場所を確認する

特に格納場所を指定しない場合は以下のようにSPUM->Res->Animation->Clipの配下にアニメーションクリップが格納されています。

2DPixelUnitMakerのアニメーションクリップ一覧

“MinimalCharacter2DtoKight”にアニメーションを設定する

元としたMinimalCharacter2Dにはアニメーションが設定されていないため、アニメーションを設定する必要があります。TopDownEngineにある”Koala”のアニメーションを使いたいと思います。

“Koala”プレハブを選択し、Modelの中あるにAnimator”KoalaAnimatorController”をコピーして”KoalaAnimatorController2DtoKight”を新しく作成します。

KoalaModelのInspector

作成した”KoalaAnimatorController2DtoKight”を”MinimalCharacter2DtoKight”のアニメーションに設定します。

2DPixelUnitMakerで生成したモデルのInspector

KoalaAnimatorController2DtoKightのアニメーションを設定する

“KoalaAnimatorController2DtoKight”を開くと以下のように各ステータスごとに状態が設定されています。いろいろとやりたいことは多いですが、今回は”Idle”と”Walking”のみ変更しようと思います。

KoalaAnimatorController2DtoKightのアニメーター

元とした”Koala”のアニメーターのため、Idleを確認するとMotionが”KoalaIdle”になっています。このMotionを変える必要があります。

IdleのInspector

SPUM->Res->Animation->Clipの配下に格納されている”0_Idle”を”KoalaIdle”の場所に貼り付けます。また同様にアニメーターのWalkingにある”KoalaWalking”を”1_Run”に貼り付けます。

2DPixelUnitMakerのアニメーションクリップ一覧

MinimalCharacter2DtoKightのモデルにアニメーターを設定する

アニメーターの準備が出来ましたが、まだModelにアニメーターを設定していません。
“MinimalCharacter2DtoKight”のCharacterスクリプトを見ると”Character Animator”が設定されていません。
# 元としたMinimalCharacter2Dにはアニメーションが設定されていないためです。

MinimalCharacter2DtoKightのInspector

“0_Kight”配下の”UnitRoot”に設定されているAnimator(KoalaAnimatorController2DtoKight)をCharacterスクリプトの”Character Animator”に設定したいため、”UnitRoot”をDrag&DropでCharacterスクリプトの”Character Animator”に設定します。

UnitRootのInspector
MinimalCharacter2DtoKightのInspector

上記の状態で動かしてみると、プレイヤーが「動かないとき」、「歩いたとき」で正しくアニメーションが動いている様子が見れます。
# ただし、キャラクターの向きの修正を行っていないため正しい向きで歩いてくれません。

続けて、モデルの向きを進行方向に合わせる修正になります。

進行方向に合わせてモデルの向きを変更する

モデルの向きを確認する

TopDownEngineの2Dキャラクターはデフォルトで”右向き”となっています。
そのため、右向きのキャラクターモデルを流用する場合は特に変更なく移動方向に向かってキャラクタが向きを変更してくれます。

Koalaモデル

ただし、今回使用しているKightのモデルは左を向いています。そのため、前回Kightを動かしたとき移動方向と反対を向きながら移動していました。左向きのモデルの場合はちょっとだけ修正が必要になります。

Kightモデル

モデルの向きを決定する”Flip”を調整する

“CharacterOrientation2D”スクリプトの中に”ModelFlipValue Left/Right” があります。
デフォルトだとLeft:X=-1、Right:X=1となっています。

KgihtのModelFlip値の変更前

この値はモデルが右向きの場合の設定になるため、左向きの場合は逆転させる必要があります。
Left:X=1、Right:X=-1にしてみてください。

KgihtのModelFlip値の変更後

移動方向に合わせてキャラクターの向きが変わる

“ModelFlipValue Left/Right”を修正した状態で動かすと以下のようになります。
ちゃんと移動方向に沿ってキャラクターの向きが変わっていることが分かります。

まとめ

今回はTopDownEngineのモデルを2D Pixel Unit Makerのモデルに変更する方法を紹介しました。

今回は2D Pixel Unit MakerのモデルをTopDown Engineに適応する方法になりますが、
他のアセットでも同様の対応が必要になります。そのため

  1. モデルを設定する
  2. アニメーションを変更する
  3. (必要があれば)モデルの向きを変更する

上記3つをやればどの2Dアセットでも同様に設定することができます。

いろいろな場面で今回の対応が必要になるのでぜひ、やり方を覚えて行っていただけると今後の開発が楽になると思います。

コメント

タイトルとURLをコピーしました