前回までの記事でBlenderでモーションを作るためのリグが完成したので、今回はBlenderのアニメーション機能を使ってキャラクターのモーションを作っていこうと思います。
Unityへ持っていくための注意点に少し触れながら制作の導入部分を記事にまとめてみました。
もくじ
モーション制作って必要?
そもそも個人制作の場合にモーションを自分で作るのかどうか…という話です。
ゲーム制作の作業量は膨大なので、アセットや無料配布で気に入ったモーションがあるなら作らなくても良いんじゃないかと思います。
ただしその場合、ゲームの内容を入手できたモーションの範囲に合わせることになります。
無いものは無い、で割り切る精神が必要なのかなと…。
僕は当初、少年キャラを動かしたかったのに手に入るモーションが成人キャラ用のものばかりで「見た目は少年でも動きはゾンビゲー」になってしまうので作り始めました。クオリティや制作時間を考えるとどっちがいいのかは謎ですが、モデルにぴったり合った固有のモーションを作れるのは利点だなと思います。
絵を描くのが得意・キャラの動きにこだわりがあるならオススメです!
↓最近作ったモーションのいくつかです。
1つ作るのにかかる時間は1時間~2時間くらいなので案外お手軽です。ただしもっと複雑な全身を大きく動かしたりループするものだと4時間くらいかかることも…。
モーションの仕様
モーションは2種類を作り分ける必要があるのかなと思います。
アニメーションに含まれる移動でキャラクターモデルのオブジェクトを「移動しない」「移動する」という2種類です。
アニメーションで移動しない
キャラの移動はスクリプトや物理演算で処理し、アニメーションでは歩行やジャンプの仕草だけをさせる方法です。
プレイヤーキャラが物理演算のゲームオブジェクトになっていて、物理演算の力でキャラを動かす場合はこちらがオススメです。
(そうしないと、物理演算のゲームオブジェクトの中に入れたキャラクターモデルがローカル座標でどこかに行ってしまいます)
アニメーションで移動する
スクリプトや物理演算ではキャラを動かさず、移動速度や方向をアニメーションでの動きに依存する方法です。
決まった場所でシンプルな歩行やジャンプを繰り返すモブキャラの場合など、移動もアニメーションに含めて作ってしまえばわざわざスクリプトで細かい位置制御を作る必要がなくなります。
まず作り始める前に、これをどちらにするか決めてから作業を始めるのが大事かなと思います。
モーションのデータ作成
Unityでのモーション(AnimationClip)は、Blender上ではアクションという名前になっています。
まず、ボーンの入ったモデルでAnimationタブを開きます。次にタイムラインの作業をしたいウインドウ(僕は左側のウインドウを使っています)で左上のアイコンから「ドープシート」を選びます。

さらに、出てきたプルダウンの「ドープシート」を「アクション」にします。

これでアクションを作れるようになったので、「新規」を押して新しくアクションを作ります。名前はUnityに読み込まれるのでアルファベットでつけておくと良いかと思います。
その後、横に出てくる盾のようなボタンを押しておきます。(これを押さないとアクションが消えることがあるみたいです)


初めにやっておくこと
モーション制作で僕が最初に設定しているポイントです。
人によって違うと思うので参考程度に…。
自動キーフレーム
オンにしておくと、ボーンを動かした箇所で自動でキーフレームが入ります。
これをオンにしない場合は、ボーンを動かしてから右クリックして「キーフレームを挿入…」かショートカットのIキーでキーフレームを入れられます。
どっちがやりやすいかは好みかなと思います…。僕は常にオンです。

チャンネルの並び順
初期状態では作った順にチャンネル(ボーン1つ1つのタイムライン)が並んでいます。
分かりづらい並びになっていることもあるので、始める前にきちんと並べておくと分かりやすくなります。
僕の場合は上から頭~腰・左腕・右腕・左足・右足・左手指・右手指の順に並べています。
入れ替えはチャンネルを選択してPageUpキーかPageDownキーを押します。

また、IKなどのコンストレイントを設定したボーンはターゲット先のボーンで操作するので個別に動かす必要がありません。
こういう動かさないボーンのチャンネルは下の方にまとめてしまい、操作するIKのターゲットだけ上の方に並べて見やすくしています。
モーションの作り方
モーションを作る作業は、適当なフレームに移動してモデルを動かしてはキーフレームを打つ(自動キーフレームなら動かすだけでOK)という流れになります。

一番上にあるフレーム数の部分でドラッグすると現在のフレームを移動できます。また、ボーンは3Dモデル上のものをクリックして選択できますが、チャンネルの名前のところをクリックしてもOKです。
アニメーション関連の機能は大量にあって僕はまだまだ一部の機能しか使えませんが、特に自分がよく使う機能を少しだけ紹介します。
タイムラインの左右の表示幅
タイムライン上でSキー→マウスホイールで拡縮できます。
全体を確認したい場合と1フレームずつ細かく選択したい場合で拡縮すると便利です。

間隔を狭く

間隔を広く
キーフレームのコピー
一つのボーンのキーフレームを選んで右クリックでコピーし、現在のフレームの同じボーンに貼り付けることができます。

全ボーンのキーを選択
特定のフレームの全ボーンを選択するにはチャンネル名の上にある「概要」の欄のキーフレームを選択します。

反転して貼り付け
貼り付けの際、「反転して貼り付け」を選択すると左右対称のボーンがあるチャンネルについて反転したポーズを貼り付けます。左右対称な動きがループする移動モーションなどでとても便利です。

キーフレームタイプの変更
初期設定ではキーフレームの補間モードが「ベジエ」になっており、前のフレームと次のフレームの間をなめらかに繋ぐようになっています。
補間モードはキーフレームを右クリックして「補間モード」から変更します。
人物キャラの動きなどはベジエで良いですが、無機質な物体など等速で動かしたい場合には「リニア」、物体をワープ移動させたい場合には「一定」を選べばOKです。

補間方法は設定したキーフレームから次のキーフレームの間までで有効で、最初は「リニア」で途中から「ベジエ」に変更…というようなこともできます。いろいろ組み合わせれば複雑なアニメーションが作れそうです。
再生とスロー再生
画面下の再生ボタンを押せばアニメーションが再生されます。
再生するフレーム範囲も決められますが、ここからはスロー再生をすることはできません。

スロー再生(というかフレームレートを落として再生)をするには、プロパティウインドウの出力タブの中からフレームレートの値を変更します。

特定のボーンの動きを一時オフ
動きの確認をする際などで特定のボーンを一時的に動かさないようにしたい場合は、チャンネル右横にあるチェックボックスをオフにします。

まとめ
慣れてしまえば基本的なことは割と簡単ですが、とりあえずはシンプルなモデルで触って動かして覚えると良いかもしれないです。(人体はボーンが多くて難しいです)
僕も機能が多くてまだまだ知らないことがたくさんあるので、便利機能が分かった際には追加でまとめてみようと思います。
ループする歩行などのアニメーションの作り方や実際の作業の動画などもまとめてみたいと思っているので、また見ていただけると嬉しいです!