のぼるゲーム開発備忘録

ゲーム開発のプログラマーです。ゲーム開発関連、調べた内容をアップしていきます。Unityを使用して個人開発を行っています。

【Unity】【Corgi Engine】敵モデル差し替え

f:id:ikeball:20210116200222p:plain

はじめに

敵モデルの差し替えについて調べました。

プレイヤーの差し替えと近い形で変更ができました。

f:id:ikeball:20210116200700g:plain

使用アセット

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つのプレハブが用意されていますが、設定されているモデル以外違いは無さそうです。

f:id:ikeball:20210112235101p:plain

プレハブ構成の確認

デモデータで用意されている敵プレハブの作りをWolf3Dのデータで確認をしました。

f:id:ikeball:20210112235602p:plain

Wolf3D ... キャラクター、当たり判定、HP、攻撃力、歩きAIの設定が行われています。

 ・ModelContainer...モデルのルートオブジェクト

  ・Model...対象のモデル

 ・DeathFeedbacks...死んだ時何をするかの設定。特に設定はされていません。

 ・DamageFeedbacks...ダメージを受けたときに何をするかの設定。パーティクル表示、SE鳴音の設定。

 ・WalkParticles...歩いた際に表示されるパーティクルの設定。

 ・WalkFeedbacks...歩き時に何をするかの設定。WalkParticlesの再生が設定。

f:id:ikeball:20210112235711p:plain

アニメーションの確認

敵のアニメーターに設定されているのはidle, walk, threeD-climbingldle, threeD-climbingMoveの4つで梯子の上り下りを考慮しなければ、待機歩きの2モーション設定すれば差し替えができそうです。

(確認したところモデルのアニメーションという分けではなくTransformのみで動かしているためモデルを差し替えるだけでも同じようには動きそうです)

f:id:ikeball:20210113010721p:plain

threeD-idle...待機

f:id:ikeball:20210115073652g:plain

threeD-walk...歩き

f:id:ikeball:20210115073852g:plain

threeD-climbingIdle...階段待機

f:id:ikeball:20210115074009g:plain

threeD-climbingMove...階段移動

f:id:ikeball:20210115074130g:plain

敵モデルの差し替え

ベースモデルのコピー

Assets/CorgiEngine/Demos/Corgi3D/Prefabs/AI/Wolf3D

をコピーし、Boarと名前を変更しました。

f:id:ikeball:20210115075136p:plain

置き換えモデルの配置

Boarプレハブをダブルクリックで開き、用意したモデルをModelContainerの下に配置します。ここではWolf3DAssets/ARART/MonsterVol.1/Boar/Prefabs/Boarを配置しました。

f:id:ikeball:20210115080226p:plain

モデルが合体したような表示になります。

f:id:ikeball:20210115080409p:plain

向きの調整を行いました。

サイズ感は大きく違わないためScaleの変更は行っていません。

f:id:ikeball:20210116151908p:plain

当たり判定の調整

サイズ感が少し違うため当たり判定を調整します。

①HierarchyからModelを非表示に変更する。(最終的には削除して問題ありません)

②Wolf3Dトップノードを選択する。

③Box Collider 2DのEdit Colliderをクリックする。

④Sceneの2Dボタンを押す。横から見えるようになります。

 設定後は解除しても大丈夫です。

⑤モデルの大きさに合わせて当たり判定のサイズを調整します。

f:id:ikeball:20210116160537p:plain

アニメーションの置き換え

Assets/CorgiEngine/Demos/Corgi3D/Animations/threeD-animatorをコピーし名前をboar-animatorに変更しました。

f:id:ikeball:20210116153758p:plain

追加モデルのAnimatorのControllerに複製したboar-animatorを設定します。

f:id:ikeball:20210116153959p:plain

Characterスクリプトに追加したAnimatorを設定します。

①ノードトップのBoarを選択します。

②下の方にスクロールしCharacterを探します。

③Character Animatorに追加したモデルのAnimatorを設定します。

f:id:ikeball:20210116161522p:plain

boar-animatorを選択した状態でAnimatorウィンドウを表示します。

(Unityメニュー→Window→Animation→Animatorから表示できます)

 

ここでidle, walkのアニメーションを置き換えます。threeD-climbingIdle, threeD-climbingMoveも置き換えたい所ではありますが、自作しない限り階段を上り下りするモーションが用意されていることは稀ではないでしょうか。

 

青色で囲った枠ないのファイル名が操作しようとしているファイル名と一致しているか確認してから変更していきます。

f:id:ikeball:20210116154450p:plain

①Animatorビューからidleをクリックする

②用意したモデルの待機モーションをMotionに設定します。

ここでは、Assets/ATART/MonsterVol.1/Boar/Animations/Boar@Idle1/Idle1を設定しました。

f:id:ikeball:20210116155122p:plain

次にwalkを選択し、移動モーションを設定します。

ここではAssets/ATART/MonsterVol.1/Boar/Animations/Boar@run/run を設定しました。

walkのモーションも用意されていますが、runの方が攻撃してきている感じが出ると思い設定した形となります。

f:id:ikeball:20210116155435p:plain

これで設定は終了となります。

他のモンスターも置き換えたり、シーンに配置して動作を確認してみてください。

f:id:ikeball:20210116161145g:plain

シェーダーの変更

下記の操作は必要に応じて行ってください。用意したモデルが特別なシェーダーを使用している場合や、見た目上問題ない場合は対応の必要はありません。

 

モデルの置き換え自体の設定は終了していますが実際に表示した際に、周りと比べると何か表示が違う?となる場合があります。

f:id:ikeball:20210116170842p:plain

今回はCorgi Engineで使用されているシェーダーに変更し調整したいと思います。

変更前に設定されているシェーダーはUnlitShadowです。

シェーダーにUnlitと入っているものはライトの影響を受けず表示を行いますよと言う設定になっています。

f:id:ikeball:20210116170825p:plain

変更前に設定されているテクスチャが何か確認します。

ここでは、設定されているのはBoar01であること確認しました。

f:id:ikeball:20210116171533p:plain

①ShaderをMoreMountains/MMToonに変更します。

②Toon RampにCorgi3DRampを設定します。

③RimColorをRGBA(255,255,255,0)に設定しました。

 (好きな値で調整してください)

④RimPowerを1.5にしました。

 (好きな値で調整してください)

⑤先ほど確認したテクスチャを設定します。ここではBoar01を設定しました。

f:id:ikeball:20210116173608p:plain

変更前と後で大きな違いはないようにしています。

ゲームに合わせて色々と調整してみてください。

f:id:ikeball:20210116174115p:plain

おわりに

敵のモーションは待機と移動の2種だけあれば何とかなりそうでした。

プレイヤー置き換え、ステージ置き換え、モンスター置き換えまでするとだいぶ雰囲気が出てきました。引き続き調査していきます。

関連記事

ikeball.hatenablog.com

ikeball.hatenablog.com

ikeball.hatenablog.com