忘却まとめ

Blenderの中級者・上級者向けの踏み込んだ情報や、アドオン・3DCGに関する情報を記事にします

テンプレートサードパーソンキャラクターのアニメーションをBlenderで作成する【Unreal Engine】

Unreal Engine

更新日:

テンプレートファイルのサードパーソンキャラクターに、Blenderでアニメーションを付ける。
一旦Unreal Engineからキャラを書き出し、Blenderにインポートし、アニメーションを作った後にそのアニメを読み込みする。

インポートとエクスポート

Unreal Engineからキャラを書き出す

  1. 書き出したいキャラのスケルタルメッシュを、開いているレベル内にドラッグ&ドロップで追加する。
    • 今回は、All/Game/Characters/Mannequins/Meshes/SKM_Quinn_Simple を書き出す。
    • トランスフォームがそのまま書き出されるので、全て初期値の状態しておくこと。
  2. トップバー > ファイル > 選択されたものをエクスポート...で、書き出す。
    • 名前はなんでもいいが、ひとまず同名(SKM_Quinn_Simple)としておく。

書き出したキャラをBlenderでインポートする

  • Blenderにて、トップバー > ファイル > インポート > FBX(.fbx)から、先ほど書き出したファイルをインポートする。
    • インポート設定の変更は特になし。

失敗例

子を強制的に無視オプション。

ボーン方向を自動整列オプション。

上記のインポート設定を有効にすると、通常のアーマチュアのようにボーンの先がつながっている状態でインポートできるが、Unreal Engineに戻した時にねじれてしまう。

アニメを作って書き出す

  1. 好きにアニメーションを付ける。
  2. アーマチュアだけを選択する。
  3. Blenderにて、トップバー > ファイル > エクスポート > FBX(.fbx)で、選択したアーマチュアをエクスポートする。
    • アニメーション > "NLAストリップ"と、"全アクション"のチェックを外す。
      ただ、不要なアニメーションがエクスポートされないようにする。
    • その他の設定は特にしなくて問題なかった。

作成したアニメをUnreal Engineでインポートする

  • Unreal Engineにて、作成したFBXファイルをドラッグ&ドロップする。
  • インポートメニューが出るので、Common Skeletal Meshes and Animations > Skeletonに、"SK_Mannequin"を設定する。
  • インポートを実行する。

エラー

[C:/~~~/SKM_Quinn_Simple_blender_02.fbx : '', AnimSequence] アニメーションの長さ 0.033 はインポート フレームレート 25 fps (サブフレーム 0.833) と互換性がありません。アニメーションはフレームの境界線をそろえなければなりません

空のアニメーションを書き出した時に出るエラーの模様。
複数のアニメーションをエクスポートした時、意図しない空のアクションも書き出していたことでこのエラーが出た。

意図しないものを書き出さないように、BlenderでのFBXエクスポートでは、"全アクション"オプションは無効化した方がいい。

再度インポートする時にインポート設定を変えたい場合

一度インポートした同名ファイルを再度インポートしようとすると、自動で同じ設定でインポートされる。
2度目以降でインポート設定を変えたい場合は、一度そのファイルをUE内で消すか、エディタ設定を変更する。

編集 > エディタの環境設定 > importで検索 > 「再インポート時にインポートダイアログを表示」を有効化する。

アニメーションモンタージュを作成する

より詳細にアニメーションを活用できるように、アニメーションモンタージュを作成しておく。

  • 追加したアニメーションシーケンスを右クリックし、作成する > AnimMontageを作成を実行する。

動作確認する

ちゃんとアニメーションが利用できるかの動作確認のため、Gキーでアニメーション再生をしてみる。

  1. "Keyboard events G"と検索し、Gキーのイベントノードを追加する。
    • 確認用なのでキーはなんでもよい。
      左クリックにしたいならleft mouse button。
  2. "Play Montage"ノードを追加し、作成したアニメーションモンタージュを選んで設定する。
    • In Skeletal Mesh Componentに、キャラのMeshをドラッグ&ドロップで設定する。
    • Gキーのノードとつなげる。

アニメーションを確認

プレイ中にGキーを押すと、作ったアニメーションが再生できる。

アニメーションを付けやすくする(任意)

モーション作成に不要なボーンは非表示にし、キャラにIKリグを付けるとモーションを作りやすい。

  • ボーンコレクションで整理して、不要なボーンは非表示にしておく。
    • 元のIK・ツイスト・指などをボーンコレクションに分ける。
  • 編集モードでアーマチュアのボーンをいじると、書き出した時におかしくなってしまうので、極力元のボーンはいじらず調整する
    • 下腿部と前腕のボーンのテール位置はずらしても問題なかったので、IKを付けるためにhand位置に移動した。
    • IK用ボーンは元からあるが、自分で新規作成したボーンでつけた方がいじりやすそう。
  • リグを付ける。
    • 下腿部と前腕にIKを付ける。
      手・足用に、IKボーンを自分で新規作成する。
    • 手・足に、IKボーンの回転コピーコンストレイントを付ける(ワールド座標対象で)。
    • IKロールで、IKのひざ・ひじの向きを調整可能にする。
      ボーンのロールをいじれないので、IKポールを設定するとズレが生じてしまう。
      なので、レストポーズに合うように、手動でポールの角度を調整する。
  • カスタムシェイプで見た目だけ変えておくといじりやすい。
    • 特に指や背骨は縦に見えるように直方体を付けると見やすい。
    • 腰を触りやすいように、大きめのカスタムシェイプを設定する。
    • キャラのアーマチュアオブジェクトの親エンプティには0.01スケールがかかっているので注意。

アニメーションでキャラの位置を変更する(ルートモーション)

Unreal Engine におけるルート モーション | Unreal Engine 5.5 ドキュメンテーション | Epic Developer Community

そのままでは、再生が終わると元の位置に戻ってしまう。
攻撃しながら前進して、アニメーション終了後にそこにキャラを移動したい場合、"Root"にアニメーションを付けて、ルートモーションを有効化する。

アーマチュアオブジェクトにアニメーションを付ける

アーマチュア自身のオブジェクトの方にアニメーションを付ける(このモデルでは"Root"オブジェクト)。
アーマチュアを選択して、オブジェクトモードでキーをつければよい。

アニメを付けてから再度エクスポートする。

複数のリグをインポートしていた場合は、Root.002のように名前が変わってしまっているので、書き出すものは"Root"にリネームしておく。
エクスポートする際は、タイムスライダーを最初のフレームに移動しておく。

UEにインポートし、動きを確認する

上画像のように、インポートしたアニメーションのアニメーションシーケンスファイルを開き、スケルトンツリーからrootボーンを選択すると、赤く表示されて動くのがわかる。

ルートモーションを有効化する

アニメーションシーケンス設定にて、アセット詳細 > ルートモーション > "Enable Root Motion"を有効化する。

うまくいかない場合は、メインでいじっているプロジェクトではなく、テンプレートキャラのプロジェクトを新規作成してみて、そちらで確認してみると問題の切り分けがしやすい。
自分はこれでプロジェクト(もしくは自分がいじったキャラ)の方に問題があることがわかった。

あとがき

インポート・エクスポート設定はほとんどいじらなくても問題なかった0。
逆にいじると再度UEに戻した時におかしくなってしまう。

テンプレートのサードパーソンキャラクターをどうにかBlenderでいじろうとしたので、ボーン内容の編集が許されず面倒くさいことになった。
可能ならBlender内で自キャラを作ってUEに入れた方が、よほど加工はしやすい。q

-Unreal Engine

Copyright© 忘却まとめ , 2025 All Rights Reserved Powered by STINGER.