【UE4】ブループリント、再考

今日もUE4で、解説本に沿ってプロジェクトを作った。

まずは動画から、完成した実行ファイルの動作です。

体裁は三人称視点だが、カメラがキャラクターの背後の固定位置について回るため、実質一人称視点と同じである。カメラの位置が目線から後方に下がっただけ。

キャラクターのアニメーションは、移動(前・後・左・右)、待機姿勢、落下姿勢の6種類で、アニメーションから別アニメーションへの遷移はブレンドが行われている。

操作はキーによる移動と、マウスによるカメラの視点変更と、スペースキーによるジャンプ。

これらのことを行うのに、必要なブループリント(+アルファ)は以下のとおり。

【主に入力を処理してキャラクターを移動させるためのクラスブループリント】
20140909_bp1

【アニメーションの状態を司るアニメーションブループリント】
20140909_eg

【上記の状態から最終的なポーズを出力するアニメーショングラフ】
20140909_ag

ちょっと特殊だったのが、アニメーションブレンドを定義する機能。Unityで言うところのメカニムのようなもの。
【アニメーションブレンドを定義するブレンドスペース】
20140909_blendSpace

何が特殊かっていうと、下のパネル部分を見てほしい。

これは、二次元的にアニメーションの状態の遷移を定義したものだ。

縦軸が速度、横軸が回転量になっていて、マップ上にはブレンド対象のアニメーションを配置する。

キャラクターの現在の速度と回転量によって、状態がマップ上のどこかに当てはまるので、付近にあるモーションとその割合でブレンドされる仕組みになっている。

ただ、特殊といっても他はUnityしか知らないので、どっちが特殊なのかはわからないのだけれども、なんていうんだろ、その発想は無かったって印象は、Unityのメカニムよりこのブレンドスペースのほうが強い。

個人的には、Unityのメカニムのほうが論理的でとても理解しやすいように思う。

というか、キャラクターの状態って縦軸と横軸の2軸に収まりきらないケースが十分ありえると思うんだけれども、その場合ブレンドスペースではどうやるんだろうね。今後の課題である。

さて、ブループリントを作成してみると、プログラマなら誰でも思うと思うんだけれども、これ、はっきり行ってコーディングと変わらないです。

コーディングに慣れている俺からすると、ブループリント作りながら、もうコーディングでいいじゃんってだんだん腹が立ってくるくらい、わはは。(汎用性やユーザビリティにこだわりすぎたためにかえって反復的な使用にむかないことって往々にしてあるのである)

確かに、ここまでノンコーディングにこだわって、これだけのコンポーネントを作り上げる開発者の執念みたいなものには敬服する。

しかし、じゃあどっちが使いやすいかって言うと、これはもう少し長く使ってみないとなんとも言えない、というのが正直なところ。

まだ、ブループリントだからこその恩恵は、十分に感じられていないんだと思う。

4年前

コメントを残す

メールアドレスが公開されることはありません。