はじめに
敵モデルの差し替えについて調べました。
プレイヤーの差し替えと近い形で変更ができました。
使用アセット
Corgi Engine - 2D + 2.5D Platformer
ATART MonsterPack Vol.1: Slime, Goblin, Mimic Book
ATART Monster Boar
上のモンスターアセットセットには同梱されていないBoarのモデルです。
作業環境
Unity 2019.4.16f1
デモ敵の確認
デモで用意されているプレハブ
Assets/CorgiEngine/Demos/Corgi3D/Prefabs/AIにデモで使用されている敵のプレハブが入っています。5つのプレハブが用意されていますが、設定されているモデル以外違いは無さそうです。
プレハブ構成の確認
デモデータで用意されている敵プレハブの作りをWolf3Dのデータで確認をしました。
・Wolf3D ... キャラクター、当たり判定、HP、攻撃力、歩きAIの設定が行われています。
・ModelContainer...モデルのルートオブジェクト
・Model...対象のモデル
・DeathFeedbacks...死んだ時何をするかの設定。特に設定はされていません。
・DamageFeedbacks...ダメージを受けたときに何をするかの設定。パーティクル表示、SE鳴音の設定。
・WalkParticles...歩いた際に表示されるパーティクルの設定。
・WalkFeedbacks...歩き時に何をするかの設定。WalkParticlesの再生が設定。
アニメーションの確認
敵のアニメーターに設定されているのはidle, walk, threeD-climbingldle, threeD-climbingMoveの4つで梯子の上り下りを考慮しなければ、待機、歩きの2モーション設定すれば差し替えができそうです。
(確認したところモデルのアニメーションという分けではなくTransformのみで動かしているためモデルを差し替えるだけでも同じようには動きそうです)
threeD-idle...待機
threeD-walk...歩き
threeD-climbingIdle...階段待機
threeD-climbingMove...階段移動
敵モデルの差し替え
ベースモデルのコピー
Assets/CorgiEngine/Demos/Corgi3D/Prefabs/AI/Wolf3D
をコピーし、Boarと名前を変更しました。
置き換えモデルの配置
Boarプレハブをダブルクリックで開き、用意したモデルをModelContainerの下に配置します。ここではWolf3DAssets/ARART/MonsterVol.1/Boar/Prefabs/Boarを配置しました。
モデルが合体したような表示になります。
向きの調整を行いました。
サイズ感は大きく違わないためScaleの変更は行っていません。
当たり判定の調整
サイズ感が少し違うため当たり判定を調整します。
①HierarchyからModelを非表示に変更する。(最終的には削除して問題ありません)
②Wolf3Dトップノードを選択する。
③Box Collider 2DのEdit Colliderをクリックする。
④Sceneの2Dボタンを押す。横から見えるようになります。
設定後は解除しても大丈夫です。
⑤モデルの大きさに合わせて当たり判定のサイズを調整します。
アニメーションの置き換え
Assets/CorgiEngine/Demos/Corgi3D/Animations/threeD-animatorをコピーし名前をboar-animatorに変更しました。
追加モデルのAnimatorのControllerに複製したboar-animatorを設定します。
Characterスクリプトに追加したAnimatorを設定します。
①ノードトップのBoarを選択します。
②下の方にスクロールしCharacterを探します。
③Character Animatorに追加したモデルのAnimatorを設定します。
boar-animatorを選択した状態でAnimatorウィンドウを表示します。
(Unityメニュー→Window→Animation→Animatorから表示できます)
ここでidle, walkのアニメーションを置き換えます。threeD-climbingIdle, threeD-climbingMoveも置き換えたい所ではありますが、自作しない限り階段を上り下りするモーションが用意されていることは稀ではないでしょうか。
青色で囲った枠ないのファイル名が操作しようとしているファイル名と一致しているか確認してから変更していきます。
①Animatorビューからidleをクリックする
②用意したモデルの待機モーションをMotionに設定します。
ここでは、Assets/ATART/MonsterVol.1/Boar/Animations/Boar@Idle1/Idle1を設定しました。
次にwalkを選択し、移動モーションを設定します。
ここではAssets/ATART/MonsterVol.1/Boar/Animations/Boar@run/run を設定しました。
walkのモーションも用意されていますが、runの方が攻撃してきている感じが出ると思い設定した形となります。
これで設定は終了となります。
他のモンスターも置き換えたり、シーンに配置して動作を確認してみてください。
シェーダーの変更
下記の操作は必要に応じて行ってください。用意したモデルが特別なシェーダーを使用している場合や、見た目上問題ない場合は対応の必要はありません。
モデルの置き換え自体の設定は終了していますが実際に表示した際に、周りと比べると何か表示が違う?となる場合があります。
今回はCorgi Engineで使用されているシェーダーに変更し調整したいと思います。
変更前に設定されているシェーダーはUnlitShadowです。
シェーダーにUnlitと入っているものはライトの影響を受けず表示を行いますよと言う設定になっています。
変更前に設定されているテクスチャが何か確認します。
ここでは、設定されているのはBoar01であること確認しました。
①ShaderをMoreMountains/MMToonに変更します。
②Toon RampにCorgi3DRampを設定します。
③RimColorをRGBA(255,255,255,0)に設定しました。
(好きな値で調整してください)
④RimPowerを1.5にしました。
(好きな値で調整してください)
⑤先ほど確認したテクスチャを設定します。ここではBoar01を設定しました。
変更前と後で大きな違いはないようにしています。
ゲームに合わせて色々と調整してみてください。
おわりに
敵のモーションは待機と移動の2種だけあれば何とかなりそうでした。
プレイヤー置き換え、ステージ置き換え、モンスター置き換えまでするとだいぶ雰囲気が出てきました。引き続き調査していきます。