Blenderを使ってUnityで使うアニメーションを作成する | Unityを使った3Dゲームの作り方(かめくめ)

Blenderを使ってUnityで使うアニメーションを作成する

今回はBlenderでアニメーションを作り、Unityに取り込んで使ってみようと思います。

確認したBlenderのバージョンは2.76~2.79になります。

今回の記事を読み進める前にBlenderでリギングが済んでいる人型オブジェクトが必要になります。

MakeHuman1.1.1で作ったキャラクターをUnity2017にそのまま取り込んだりRigifyを取り付けてBlender2.78に取り込みそのキャラクターをUnityに取り込んでみます。

もしくは

MakeHumanで作成したキャラクターをBlenderに取り込み、ボーンを設定しリグを取りつけます。Unityで使うアニメーションを作成する時に便利です

でRigifyの取りつけはなんとか出来ていると思うので?

それを使いましょう。

今回は銃を構えるアニメーションを作成していきます。

スポンサーリンク

アニメーションを作成する時に動かすリグにIKの設定をする

ブレンダーアニメ1

メインウインドウでリグを右クリックで選択し、Object ModeからPose Modeに切り替えます。

上の画像のように右手のリグの部分、左手の同じ個所、両足首のリグを選択します。
(ひとつずつ処理しますので、同じ処理をそれぞれに加えてください)

選択する箇所は以下のような場所になります。

IKを設定するリグ

上の箇所を一つずつ選択し設定を変更していきます。

ブレンダーアニメ2

Tキーを押すと現れる上のタブ部分でRig Main PropertiesのFK/IKの所を右にドラッグし1に変更します。

すると右腕のそれぞれのリグで細かく動かす(肘だったり手首だったり)ようになっていたのがさきほど選択したリグを動かすと右手全体が動くようになります。

リグを全表示

Rigifyのレイヤーを全部選択すると↑のように使わないものまで表示されます。

IKでアニメーションを作成する時にFK関連のリグが表示されていると邪魔なので

IKで使うリグだけ表示

IKで動かす場合に使うレイヤーだけを選択し、FKは無効にしておきます。

リグを選別した結果

↑のように表示されるリグが減りました。

右手、左手、右足、左足それぞれのIKの設定が出来たら、次はアニメーションの作成に入ります。

Blenderでアニメーション作成前の設定

Blenderでアニメーションを作成する前にウインドウの設定をしておきます。

メインのモデルが表示されているウインドウの左下のモードをDopeSheetに変更します。

ブレンダーアニメ3

↑の時計アイコンの部分をクリックしDopeSheetを選択します。

ブレンダーアニメ4

次にDopeSheetの右側のModeをActionEditorに変更します。

ブレンダーアニメ5

ブレンダーアニメ6

次にNewをクリックし、名前をShootに変更します。Fの部分をクリックします。

BlenderのアニメーションのフレームレートをUnityのフレームレートに合わせます。

フレームレートをUnityに合わせる

↑のようにPropertiesウインドウのRenderのFrame Rateを24から60に変更します。

Blenderアニメーション作成時によく使う操作方法

Blenderでアニメーション作成時によく使う操作方法を確認しておきます。

  • blenderの選択は右クリック
  • 移動はGキー
  • 角度の変更はRキー
  • リグの全選択はAキー、全解除もAキー
  • Bキーを押すと四角形が現れるので領域内のリグ等を選択出来ます。
  • Cキーを押すと円で領域を選択出来、マウススクロールで範囲を拡大・縮小が出来ます。
  • モデルの確認などをする時に見ている角度を変更するのはマウスの真中のローラーをクリックしながらマウスの移動
  • 見ている位置を変更するのはShiftキーを押しながらローラーをクリックして移動
  • テンキーの1で正面、3で横、7で上面、9で下面からの視点になります。
  • となっています。

    これらはPoseモード以外のObjectやEditモードでも共通になっているのでBlenderを使う時は覚えておいた方がいいです。

    移動や角度の変更をX、Y、Zの方向に固定して変更したい場合もあると思います。

    そんな時は、手首を移動する場合、手首を選択した状態でGキーを押します。

    その後で固定したい方向(X、Y、Z)と同じキーを押せばその方向の軸に固定して移動するようになります。

    マウスを動かすとフリーであちこち動くので移動しようと思った位置や角度になっていない事があります。

    そんな時は固定移動を使うといいです。

    銃を構えるアニメーションを作成する

    銃を構えるアニメーションを作成していきましょう。

    銃を構えるアニメーションを作る時に銃のモデルに合わせて指や手の位置を決定すると楽なので銃のモデルを用意します。

    わたくしが作った適当なモデルを使いたい方は下のファイルをダウンロードして解凍し(zipで圧縮しています)、BlenderのFileメニューからImport→FBXでファイルを取り込んでください。

    かめくめちゃん作成の銃の簡易モデルをダウンロード

    銃は銃を構え終わった時に位置しているであろう場所に移動させておきます(後から移動させるのも可能)。

    アニメーションはただ立っている状態を初期状態として作り、銃を構える状態へ変わっていくように作ります。

    フレームを1に合わせておきます。

    ブレンダーアニメ7

    上の画像のように両手、両足のIKを設定したリグを移動や回転させ、手をおろして立っている状態を作成します。

    ブレンダーアニメ8

    いったんここでモーションを保存しておきます。

    Aキーを押して全部のリグを選択しIキーを押します。押したらLocRotを選択します。

    LocRotを押すと選択したリグの位置や角度をキーフレームとして保存されます。

    銃を構える前のただ立っている状態をフレーム1でキーフレームを打つ

    キーフレームはそのフレームでのリグの位置や角度を保存した場所になります。
    動かす前と動かした後の間のフレームは補間、その名の通り間を補って勝手にアニメーションされます。

    キーフレームを打つとDopeSheetに丸がいくつか表示されているはずです。

    このキーフレームを作っていく事でアニメーションの動きが作れます。

    手の指を銃を持っているように変更します。

    右手の指先の四角いリグを全部選択し、角度を調整して何か持っているように変更してみます。
    複数のリグを選択したい時はShiftキーを押しながら右クリックで選択します。

    ブレンダーアニメ9

    上のように指先を移動や回転をして調整し、何か物を持っているように変更します。

    Iキー→LocRotして保存します。

    これで初期状態の完成です。

    次は銃を構える動作を作ります。

    フレームを40フレームに移動させます。(フレームを選択するのは左クリック)
    フレーム部分を左クリックからドラッグすれば細かな移動が出来ます。

    ブレンダーアニメ10

    フレーム40に移動したらモデルの右手手首にあるリグを選択し構えている状態まで移動&角度の調整をします。

    調整したらそのまま(手首のリグだけ選択状態)Iキーを押してLocRotします。
    これで40フレームでは右手首だけ前方に突き出した状態でキーフレームが打たれます。
    これで1フレームから40フレームへ右手を前に出す状態に変化していきます。

    キーフレームを打ち忘れるとまったく変わりませんので気を付けてください。

    銃を構える時の重心を下げ左足を前にするアニメーション

    次に左足首のリグを固定して前に出します。また腰のリグを下にさげ重心を落とします。

    調整が終了したらIキー&LocRotでキーフレームを打ってください。

    最後に左手を右手をささえるているような形に移動させます。

    ブレンダーアニメ12

    うーん、なんだかごちゃごちゃして解りづらいですね・・・、指と手首、肩のリグを選択してIキー&LocRotします。

    ここで手と指の位置と角度調整のために取り込んだ銃の簡易モデルを使います。

    銃の簡易モデルを使って手と指の位置を調整する

    銃の簡易モデルに合わせて手の位置や指の位置を調整します。

    左下のDopeSheetモードからTimelineに変更しアニメーションの変化を確認してみましょう。

    以下のような銃を構えるアニメーションが出来ました。

    完成した銃を構えるアニメーション

    出来上がったアニメーションをファイルに出力しUnityでインポート

    出来上がったらアニメーションをモデル込みで出力します。

    人型モデルとRigをShiftキーを押しながら選択します。

    File→Export→FBXで出力設定にいき、Selected Objectsにチェックを入れ、ForwardをZ Forward、!EXPERIMENTAL! Apply Transformにチェックを入れます。

    ArmaturesとMeshだけチェックします。

    銃を構えるアニメーションキャラの出力

    Armaturesタブを選択します。

    Deform Boneだけを出力

    Only Deform Boneにチェックを入れておきます。
    ここでチェックを入れないと余計なものがいっぱいついてきます。

    出力したFBXファイルをUnityで取り込みます。UnityのAssetsメニュー→Import New Assetで今出力したfbxファイルを選択し、インポートします。

    インポートしたモデルのインスペクタでRig→Animation TypeをHumanoidに変更します。

    Configureを選択し、Save、Applyします。

    ブレンダーアニメ13

    モデルを選択した状態でインスペクタのAnimationをクリックします。

    ブレンダーアニメ14

    アニメーションの3か所のBakeIntoPoseのチェックを入れます。

    Humanoidにした事で他のHumanoidにしたキャラクターに今取り込んだモデルのアニメーションを適用する事が出来ます。

    これでBlenderでアニメーションを作りそれをUnityに取り込む事が出来ました。

    終わりに

    自分の思い描いているアニメーションが配布サイトで見つからない時は自分で作ってしまう方がいいですね

    今回は最低限のBlenderの機能を使ってアニメーションを作りました。

    もっと色々な機能を使って楽に作成出来たらいいんですが、Unityに取り込んで使う事がメインなので、これでいいかなと思います。

    スポンサーリンク

    記事をシェアして頂ける方はこちら

    フォローして頂くとやる気が出ます

    コメント

    1. 匿名 より:

      リグとモデルが同期しません。関節を選択してRotateする、などの操作は同期するのですが、手首や足首の四角形を動かしてもモデルに反映されません。どうしたらいいでしょう?

      • ボーンの設定とウエイト、Rigifyの取り付けまで出来ているのであれば、この記事の「アニメーションを作成する時に動かす場所のリグにIKの設定をする」の項目にあるとおりFKかIKどちらで動かすかで動かすリグが変わってきます。

        FK(FowardKinematics)だと腿やすねにあるリグを使って個別に動かし、IK(InverseKinematics)だと手の先や足先にあるリグを使って繋がっている部分を動かすという感じになります(足先を動かすと連動して腿や脛も動く)。

        まずはどちらで動かすかを決めて、IKで動かすのであればRig LayersのFKという名の付いたリグのレイヤーを非表示にし、RigMainPropertysのFK/IKのメーターでIKに値を寄せます。

        これで使っていないリグを非表示にして動かす事が出来ます。

        それでもうまく動かない場合はRigifyとウエイトの設定がうまく出来ていない可能性があります。

        • 匿名 より:

          どうもウエイトが上手く設定できていないようです。
          なんとかリグなしでボーンだけでも目的のアニメーションは作れたので妥協することとします。
          ご返信ありがとうございました。

    2. 匿名 より:

      質問です。
      この後この人型モデルをunityの中で実際に動いてもらうにはどうしたらいいのですか?
      後 物理演算を入れると床を作ってもすり抜けてしまいます助けてください。