キャラクターの制御に合わせてモデルをアニメーションさせたい
Unityではその実現にAnimationとAnimatorを使う
また、モデルの作成にはAnima2Dを使用した。
ざっくり言うと
①ペイントツールでモデルを描いて
関節毎とかにバラバラにして保存(1枚のテクスチャにまとめなくてもよい)
②Anima2Dでゲーム上のモデルの骨格とスプライトをリンク付けしながら作成
③Animationでモデルの動きを作成し、 AnimationClipとして保存
④Animatorで作成した色んなAnimationClipを制御し再生する
①ペイントツールでモデルを描く
描いた後に関節とか稼働する場所毎に画像を切り分けます。
パーツ毎にレイヤーを分けて描いちゃえば後が楽。
②Anima2Dでゲーム上のモデルの骨格とスプライトをリンク付けしながら作成
Anima2Dによるボーンの作成は以下の記事を参考にしてください。
Anima2Dでキャラクターアニメーションを作ろう!編 – SEGA TECH Blog
また、上記記事では複数のパーツをTexturePackerやSpriteUVなどを使って、1枚のテクスチャーにパーツを配置していますが(パッキング)。
私はUnityのパッキング機能Sprite Packerを使っています。Sprite Packerを使ったほうが、後々パーツの修正を行いたいとき等に簡単にできますし楽です。多分。
パッキングについては以下の記事を参考に。
【Unity開発】Sprite画像とSprite Packerまとめ【ひよこエッセンス】
③Animationでモデルの動きを作成し、AnimationClipとして保存
Animationの作成は以下の記事が分かりやすかったです。
Anima2D入門〜実践(アニメーション作成)編〜
上記記事のポーズ作成、コントローラの作成は行っていません。
アニメーションさせたいオブジェクトにAnimatorコンポーネントを追加し、
Animator上で新規AnimationClipを作成し、保存しています。
また、上記記事にも書いてありますが、AnimationClipの特定フレームになったとき、対象オブジェクトの持つ関数を呼び出すことができます。(イベント機能)
例えば、走るアニメーションの足が地面に着く瞬間に足音の鳴る関数を読んだり、剣を構えて振り始める瞬間に攻撃判定オブェクトを生成する関数を呼び出したりといった使い方ができます。ただし、注意として呼び出せる関数に制限があります。制限の内容は引数がひとつであるという点です。ふたつ以上も対応して!
イベント機能については以下の記事が分かりやすい。
Unity : AnimationClipに合わせて処理をしたいなら
④Animatorで作成した色んなAnimationClipを制御し再生する
以下の記事を参考にしました。
Unityのアニメーターコントローラーの使い方
Animatorのときもそうでしたが、基本的に2Dでも3Dでもやることは変わりません。
だいたいこんな感じでアニメーションを実装できるかと思います。
URLを貼りまくるだけで仕事した気になれますねぇ!
コメント