忘却まとめ

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

自分のキャラをUnreal Engineにインポートする【Blender / Unreal Engine】

Blender Unreal Engine

投稿日:

Blenderで作成したキャラクターをUnreal Engineに取り込む。

Blenderでの調整

メッシュ

  • 原点をワールド座標0にし、回転を0・スケールを1(初期値)にする。
    • アーマチュアオブジェクトも同様。
  • マテリアルは極力一つにする。
  • オブジェクトは極力一つにする。
    • (編集しにくければ最終的でよい)
  • わかりやすい名前を付ける(オブジェクト名・マテリアル)。
    • マテリアル名は、"M_"というプレフィックスを付けておく。
  • メッシュをきれいにする。
    • ノーマル反転・重複頂点・Nゴン・意図しないUVの重複などを修正する。
  • アーマチュア以外のモディファイアは適用しておく。
    • (書き出し後に問題が起きないモディファイアならしなくてもいい)

キャラのスケールを揃える

現実のサイズに合うようにキャラモデルのスケールを揃える。
人間キャラなら1.6~1.8mなどとする。

立方体を追加して、スケールZを目標のサイズに変えて指標にするとよい。
(右サイドバー > アイテム > 寸法で確認できる)

ボーン

使うボーンは、特に決まっていないならRigifyのボーンを使う。
Blender内でアニメーションを作りたいならこれが使いやすい。

書き出しする

キャラメッシュとリグを選択し、トップバー > エクスポートで、FBX書き出しする。

アニメーションオプションのNLAストリップ・全アクションは無効化する。
FBXファイル名には、"SK_"というプレフィックスを付けておく。

Unreal Engine

キャラBPを作る

  • コンテンツブラウザーで右クリック > ブループリントクラス > キャラクターで、BPを作成する。
    • 名前はBP_〇〇とする。
  • Self(コンポーネントの最上階層) > メッシュに、自分の作成したスケルタルメッシュを設定する。
  • テンプレートの、BP_ThirdPersonCharacterを開いてノードをコピペする。
    • これでwasdで移動、スペースでジャンプ、マウスでカメラ操作が可能になる。
  • 同様にCameraBoomとFollowCameraもコピペする。

キャラの向きをカメラ前方以外にも向けるようにする

TTPS_03.移動方向にPawn向きを合わせる | ueHow-日本語

キャラクターBPのデフォルト設定では、キャラはカメラ前方以外に向くことができない。
これを向けるように修正する。
(移動入力方向の修正は、テンプレートキャラクターからノードをコピペすれば問題ない)

  • Pawnのヨー回転が、ControlRotationのヨー回転に沿うことを無効化する。
    • Self > Pawn > Use Controller Rotation Yawを無効化する。
  • キャラの向きを変えることを許可する。
    • CharacterMovement > キャラクタームーブメント(回転設定) > Orient Rotation to Movementを有効化する。

キャラクターのアニメーションシステムを作る

【UE5】アニメーションブループリントで歩く,走る,ジャンプの基本動作アニメーションを1から実装してみよう! - YouTube
【UE4/UE5ゲーム制作講座】アニメーションBPを使ったアニメの再生方法 - YouTube

歩く・走る・ジャンプ中など、状態によって変化するアニメーションシステムを作る。
アニメーションブループリントが必要になる。

アニメーションBPには、普通のBPと同様のイベントグラフと、AnimGraphがある。
イベントグラフの方でキャラの状態(走行中・ジャンプ中など)を判別し、変数に登録する。
AnimGraphの方では、その変数を使って、アニメの動きを分岐させる。

  1. アニメーションBPを作成し、キャラにそれを設定する。
    • 自キャラのBP > Self > Animationタブ > Animクラスに設定する。
  2. アニメーションBP > AnimGraphにて、右クリックから"State Machine"を新規作成する。
  3. State Machineを開き、ウィンドウ右下のアセットブラウザから、好きなアニメーションをD&Dで追加する。
    • ステートマシン内に入り、右クリック > "ステートを追加"で新規ステートして新規アニメをD&Dしてもよい。

イベントグラフにてキャラの状態を変数にする

  • 走っているかどうかを得る。
    • イベントグラフにて、Try Get Pawn Owner > Get Velocity > Vector Lengthで、キャラの速度を得る。
    • "bMove"という名でBool値にする。
    • 10以上ならBool値をTrueにする。
  • 歩行中・走行中をなめらかに判別するため、速度を得る。
    • 上記のVector Lengthを"Speed"という名でFloat値にする。

アイドル状態を追加する

  1. Idle(なにもしていない状態)のステートし、"Entry"と接続する。
  2. アニメーションをループさせる。
    • 追加したIdleシーケンスプレイヤーを選択し、画面右の詳細 > 設定 > "Loop Animation"を有効化する。
    • アニメーションシーケンスの方でもループを有効にする?

歩行中・走行中をなめらかにする

  1. ブレンドスペース(1D)というデータを新規追加する(ABS_◯◯とする)。
  2. そのABSファイルを開き、3Dビュー下の線にWalk・Runアニメーションをそれぞれ追加し、両端に置く。
  3. "Maximum Axis Value"を最大加速度の値に設定する。
    • キャラクタームーブメント(一般設定) > Max Accelerationが最大加速度の値なので、その数値を設定する。
    • これで、最大加速度に至るまでは歩行アニメーションが再生されるようになる。
  4. アニメーションBP > AnimGraph > State Machineにて、右クリック > ステートを作成する。
  5. 作ったステートの中で、Blendspace Playerを追加する(自分が作成したABSの名前のもの)。
    • 自作した"Speed"変数を、None入力ソケットに接続する。
  6. アイドルステートと走行中ステートを、ドラッグして相互に矢印をつなげる。
  7. 矢印を開き、"bMove"が有効な場合は走行中、bMoveが無効な場合はアイドルに戻るように設定する。

3Dモデルなどの制作依頼はこちら

-Blender, Unreal Engine

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