キャラクターを自作して、Unreal Engineで動かしました。
すごく難しいことだと勝手に思っていましたが、そんなことなかった。
初心者でも少し頑張れば出来る!
大きなモチベーションのひとつだったので感動です✨
👇Unreal Engine4が初めての人はこちらから
👇ブロック崩しを作って、自作キャラを使用しました。
👇クリックしたら中身が見れます
アニメーション
テクスチャー(一部分)
UE4で動かす
【手順】→【関連知識】→【関連スキル】の順にまとめています。
【手順】から読むのがオススメ。
分からないところを、【関連知識】や【関連スキル】でチェックすると良いと思います。
👇Blenderの基本操作はこちらから
👇テクスチャーの基本はこちらから
👇アニメーションの基本はこちらから
キャラを自作してUEで動かす
自分で作ったことに価値があります。
作る過程で培った経験・知識はプライスレス
手順
1.キャラクターの形を作る。
簡単な人型を作っておけば大丈夫です。キューブを数個組み合わせるだけでもアニメーションをつけたり、Unreal Engineにエクスポートすることは可能です。僕も基本操作だけから作りました。
👇Blenderの基本操作について知りたい人はこの記事を見てください。
👇テクスチャーの基本はこちらから
2.全てのメッシュを統合する。
3.サイズと位置の調整をする。
4.スケール値などをリセットする。
5.アーマチュアを作成。
6.アーマチュアをメッシュに適用
7.ウェイト調整をする。
👇アニメーションの基本はこちらから
1.Run(走るアニメーション)の作成
Frame Rate = 30fps
(1frameあたり、0.033..秒。3frameで0.1秒)
1-17frame
(0.566..秒)
1frame:直立
5frame:腕上げ、左前・右後、上に移動
9frame:直立、下に移動
13frame:腕上げ、右前・左後、上に移動
17frame:直立、下に移動
2.Wait(待機状態)の作成
Frame Rate = 30fps
1-61frame
(2秒)
1frame:直立
16frame:首右、腕上げ
31frame:直立
46frame:首左、腕上げ
61frame:直立
他のアクションで変化するところは、1フレーム目でリセットしておく。
リセットしないと、首を曲げたまま走ったりする。
3.Pose Libraryの削除
↓
1.アーマチュアの名前を変更。元の[Armature]という名前から少しでも変えればよい。
(これをしないとバグが起こることがあるらしい。)
2.アーマチュアとメッシュを選択する。
3.[File]>[Export]>[FBX]
4.エクスポート設定をする。
4.[Selected Objects]にチェックを入れる。
5.[Smoothing]を[Face]にする。
5.保存場所を好きに選び、Exportボタンを押す。
1.UEで[ThirdPerson]のテンプレートを開く。
👇サードパーソンのテンプレートの開き方はこちら。
2.フォルダを作成
3.フォルダを開いて、エクスポートしたFBXファイルをドラッグする。
4.インポートの設定をする
Meshの詳細を開く。
①[Use T0 As Ref Pose]にチェックを入れる。
②[Create Physics Asset]のチェックをはずす。
③[Import Animations]にチェックを入れる。
5.[Import All](全てインポート)を選択。
↓
1.Third person Characterのスケルタルメッシュ差し替え
2.Animation Blueprint作成
3.Third Person CharacterにAnimBPを適用
4.State Machine作成
5.状態[Wait]、[Run]の編集
1.[New State Machine]をダブルクリック。
2.[Add State…]で状態を作成。名前を[Wait]とする。
↓
3.もう一度[Add State…]をする。名前は[Run]
↓
4.[Run]から[Wait]に向けて矢印を引っ張る。この矢印は状態の遷移条件を表す。
5.[Wait]をダブルクリック。
6.[Wait]のアニメーションをドラッグ。
7.ノードを接続する。
8.[Run]に関しても同様の操作をする。
6.条件の編集
1.[Wait]→[Run]の遷移条件のマークをダブルクリック。
2.[My Blueprint]パネルの[Variables]の右側のプラスをクリックして変数を作成。名前を[Speed]とする。
↓
3.[Speed]の左の赤い印をクリックし、[Float](浮動小数点数)を選択。
1.[Speed]をゲットする。
2.[Speed]からエッジを出して[float>float]を選択。値を[0.1]にする。
↓
3.[Result]とノードを接続する。
(Speedが0.1より大きければ[Run]の状態に遷移)
1.左側の矢印のアイコンをダブルクリック。
2.先ほどと同様の操作をするが、今度は[float<=float]を使う。値は[0.1]で変わらず。
↓
(Speedの値が0.1以下なら、Waitの状態に遷移)
[Event Graph]に移る。
[Tray Get Pawn Owner]から[? is Valid]のノードを作成して、[Update Animation]と接続。
↓
[Speed]をセットする。
[Try Get Pawn Owner]から[Get Velocity]のノードを作成。
[Get Velocity]から[Vector Length]のノードを作成。
velocity = 速度(ベクトル)
[Vector Length](ベクトルの大きさをアウトプット)と[Set Speed]を接続。
7.再生
関連知識
Blender
意味:修飾語句
(関連)
Blenderでは、オブジェクトに対して様々な効果を与えるもの。
Blenderにおける骨(Bone)
根元をヘッド(Head)、先端をテール(Tail)という。
根元をルート(Root)、先端をチップ(Tip)と説明しているブログも見つけたが、このブログではそれぞれヘッド、テールと呼ぶ。
骨格(複数の骨が集まったもの)
Armature
意味:(制作中の像を支える)仮枠
発音:άɚmətʃ`ʊɚ(米国英語)
骨から新しい骨を作り出すことを「押し出す」という。押し出して作った場合は、自動的に押し出された方が子供になる。
また、一番の親のことをルートと呼ぶ。
親が動くと子供はつられて動く。子供が動いても、親はつられない。
(基本は)腰
メッシュとボーンの結びつき度合い。
色で表現される。
赤い部分は骨につられて動く。骨が動いても青い部分は動かない。緑の部分は少し動く。
色は[Weight Paint]のタブから編集できる。
Unreal Engine
キャラクターのアニメーションに関するBP
アウトプットするアニメーションについて編集することができる。
State(状態)とConduit(状態の遷移条件)から構成されるもの。
キャラクターに状態に応じたアニメーションを付加できる。
導管(状態の遷移条件という意味で理解している。)
UE4の[New State Machine]で使う。
矢印のアイコンをダブルクリックすることで遷移条件の編集ができる。
Conduitに初めからおいてあるノード
毎フレーム呼びたいノードと繋げる。
Conduitに初めからおいてあるノード
キャラクターのリファレンス。
AnimBPの持ち主(Pawn Owner)の情報を取得するためのノード。
今回の[Pawn Owner]は[Third Person Character]。
情報を取得できたかどうかの確認をするためのノード
取得できたとき、できなかったとき、それぞれの場合に応じた処理をつくれる。
関連スキル
キャラモデル
Ctrl + 移動(G)
👇画像の小さい正方形(グリッド)に合わせて移動する。
ズームするほどグリッドは小さくなるので細かく移動できる。
[Edit Mode]で移動させる。
↓([Edit Mode]で移動)
↓([Object Mode]で移動
[Add Modifier]>[Mirror]
1.オブジェクトを選択する。(原点の位置に注意する)
2.[Propety]パネルの[Modifier Properties]を選択。
3.[Add Modifier]から[Mirror]を選択。
↓
右クリック>[Subdivide]
1.細分化したい辺を選んで右クリック
2.[Subdivide]を選択。
[Number of Cuts]=1
↓
[Number of Cuts]=8
↓
不要な辺をを減らすために。
溶解したい辺を選択。
右クリックして[Dissolve Edges]を選択。
↓
Ctrl +J
画面左上から、[Object]>[Apply]>[All Transforms]の順に選ぶ。
↓
アーマチュア
[Shift + A]を押して、[Armature]を選ぶ。
↓
画面左上の[Add]からでも可能。
[Property]パネルから[Object Data Properties]を選択する。
(アーマチュアを選択していないとこのプロパティは現れない。)
[Viewport Display]の[In Front]にチェックを入れる。
ヘッドかテールを選択して[G + マウス移動]
1.[Edit Mode]でヘッド(骨の根元)かテール(骨の先端)を選択。
2.[G + マウス移動]で移動
(オブジェクトの移動と同じ)
3.左クリックで位置を決定。
ヘッドかテールを選んでEキー
1.[Edit Mode]でヘッドかテールを選んでEキーを押す。
2.マウス移動して左クリックで位置を決定。
[Bone Properties]
1.[Property]パネルからを[Bone Properties]を選択。
2.[3DViewport]で名前をつけたい骨を選択。
3.[Property]パネルで変更。
[Copy to Selected] (コピー元は最後に選択)
1.腕のアーマチュアを先端から順に選択。
2.最後に選択した根元のアーマチュアに名前をつける。最後を[.000]とする。
3.つけた名前の[arm.000]の上で右クリックを押して、[Copy to Selected]を選択。
↓
根元から順に、[arm.000]、 [arm.001]、 [arm.002]、 [arm.003]、と名前がコピーされ番号がつく。
[_L]>[Armature]>[Symmetrize]
1.左半身の各部名前の最後に、[_L]をくっつける。
2.[_L]と名前をつけたものを全て選択する。
3.左上のバーから[Armature]>[Symmetrize]の順に選択。
↓
子>親>[Ctrl + P]
1.子にしたい骨を選択した後、親にしたい骨をShiftを押しながら選択。
2.[Ctrl + P]を押して[Keep Offset]を選択。
(骨同士を接続させる場合は[Connected]。位置を変えない場合は[Keep Offset])
足のアーマチュア[leg.000]の親がルート[body00]になった。
右クリック→[Subdivide]
1.[Edit Mode]で細分化したい骨を選択。
2.右クリックして[Subdivide]を選択。
↓
アーマチュア→メッシュ→With Automatic Weights
1.アーマチュアを選ぶ。
2.Shiftを押しながらメッシュを選ぶ。
[Object]>[Parent]>[With Automatic Weights]の順に選ぶ。
ウェイトの編集
1.色々なポーズをとらせて、変な変形をするポーズを探す。
2.[Object Mode]でメッシュを選択する。
3.画面左上のタブを[Weight Painting]に変更 。
↓
4.[Object Data Properties]の[Vertex Groups]から、変な変形を引き起こす骨を選択。
↓
5.色を塗って、影響を調整する。
↓
1.Nキーを押して、右のタブから[Tool]を選ぶ。
2.[Brush Settings]を設定する。
Weight:0(最大値赤色)、1(最小値青色)
Radius:半径。ブラシサイズを変えられる。
Strength:強さ。色の変化のしやすさ。1がMAX。
3.メッシュの上をドラッグして設定した色を塗れる。
アニメーション
1.[Animation]タブを選択。
2.[Timeline]パネルの左上のタブを[Action Editor]にする。
↓
1.[Timeline]上のバーから[+New]を選択。
2.[Action]の名前を入力する。
3.フレーム数を決める。
(Frame RateとActionの時間を考慮して決める。)
[Pose Mode]で骨を選択してR→マウス移動
[Viewport]上でIキー。([Time line]上ではない。)
1.[New Action]を選ぶ。
2.名前を入力する。
3.キーフレームが全てコピーされているので削除する。
1.(Viewportで)Aキー。全てのボーンを選択。
2.(Timeline)でAキー。全てのキーフレームを選択。
3.Xキーを押して[Delete Key frames]を選択。
4.Alt + R で初期状態に戻る。
ホイールを回す。
(ズームアウトは逆回し)
1.[Pose Mode]で[Pose]>[Pose Library]>[Add Pose]
2.[Add New]を選択。
3.ポーズの名前をつける。
[Property]パネルの[Object Data Poperties]を選択。
[+ New]で新しいポーズ作成を作成できる。
Alt + L
1.記録したポーズに戻したい骨を選択。
2.[Alt + L]を押す
↓
3.複数のポーズを記録しているときは、ホイールを回すことでポーズを選べる。
選択したボーンでないと、記録や読み込みができない。
1.全ポーズの削除。右側の[ー]のボタンを押して1つずつすべて消す。
2.[Time line]の[Animation]のところの[PoseLib]の左側が[0]になる。
3.セーブして読み込み直すと、[0 PoseLib]が消えている。
Unreal Engine
1.[Third Person Character]を選択。
2.左の[Components]パネルから[Mesh]を選択。
3.右側の[Details]パネルのSkeltal Meshを自分で作ったものに変更。
4.[Components]パネルで[Capsule Component]を選択。
↓
5.右の[Details]パネルの[Shape]でキャラクターに合わせて大きさを調節。
AnimBP=Animation Blueprint
1.フォルダ内で右クリック、[Animation]>[Animation Blueprint]を選択。
2.[target Skelton]として、自分で作ったものを選び[OK]を選ぶ。
3.名前をつける。
1.AnimBPを開く。
↓
2.Content BrowserからAnimationをAnimBPにドラッグする。
3.アニメーションを[Output Pose]につなげて、左上からコンパイルを選ぶ。
↓
1.[Third Person Character]をダブルクリックして開く。
2.[Components]パネルでMeshを選び、右側の[Details]パネルの[Animation]で、AnimBPを選ぶ。
再生させるとAnimBPに設定したAnimationが起動する。
↓
1.AnimationBPを開く。
2.右クリックして[Add New State Machine…]を選択する。
↓
3.[Output Pose]とつなげる。
[New State Machine]をダブルクリックして開く。
1.ドラッグで矢印を伸ばして[Add State…]を選ぶ。
2.State(状態)の名前をつける。
3.Stateの名前をダブルクリックして開く。
4.アニメーションをドラッグ。
5.アニメーションを[Output Animation Pose]と接続する。
Stateの周囲の白い囲み線にマウスをおいた状態でドラッグ。
↓
1.矢印を伸ばして[Add Conduit…]を選択。
2.Conduitのマークをダブルクリック。条件を編集する。
[Play]の右側の▽をクリックして[New Editor Window]を選択。
参考動画
本当にお世話になっております。
感謝!
①
②
①
②
③
Twitterしてます
ブログの更新をお知らせ
コメント