凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE4 キャラクターの顔を特定の位置に向ける・Transform の向きを Blueprint で制御する(Look At)

人体のキャラクターモデルなどを使ってゲームを作ってる場合、
キャラクターの顔を特定の方向に向けたくなると思います。
今回はその方法を。
こちらのサイトを参考にさせていただきました!

・UE4 LookAt機能を使ってGrayちゃんに見つめてもらってみる
http://unrealengine.hatenablog.com/entry/2017/06/05/220000

こういった感じの処理ですね。

Transform の向きを制御するには「アニメーションブループリント」で制御します。
Transform 関係のBPは必ずこれになるみたいですね。
向きを特定の方向に向けるには「Look At」ノードを使います。
LookAt004.png

LookAtノードは複数でてきますが、あくまでも"Skeletal Control(スケルタル制御)"のLookAtノードを使用してください。


LookAt000.png
ノードを追加するとこうなります。

Look At スケルタル コントロール ノードについての公式ドキュメントはこちらに。

・Look At
https://docs.unrealengine.com/latest/JPN/Engine/Animation/NodeReference/SkeletalControls/LookAt/index.html

次にどの Transform に対して処理をするかの指定を詳細タブで行います。
LookAt104.png
こんな感じで「Bone to Modify」に処理をしたい Transform を指定します。
今回は首を制御したいので「neck_01」を指定しています。

ここでひとつ注意しなければなりません。どの軸が正面になるかはボーンが個々に持つ、ローカルの回転軸を利用します。"In Local Space"のチェックを外すとワールド軸を利用できますが、やり方がかなり複雑になってしまうのでそれは避けます。

とあるので、「Look At Axis」で指定するものは
キャラクターのモデルの構造に合わせて指定するようにしましょう。
今回使ったデフォルトのマネキンでは「Y」を指定してみました。
パラメータは全体的にこんな感じですね。
LookAt104.png

最後に向けたい位置を指定します。

詳細から"(As pin) Look at Location"を選択し、Look Atノード上でVector型ピンを出現させます。あとはこのLook at Locationに値を渡せるようなVector変数を作って繋いでおきます。

となっているのでチェックを入れて表示するようにしましょう。
LookAt002.png

そうすると「Look At」ノードがこんな感じになります。
LookAt001.png
「Look At Location」に向かせたい位置を指定すると Transform の向きが変わります。

この処理はアニメーションブループリントをコンパイルすることで
プレビュー画面でも見ることができます。
LookAt100.png
こんな感じに表示されるので、目で見て確認するのがよいかもです。

実際のアニメーションブループリントのノードのつなぎはこんな感じになります。
LookAt003.png
「Local To Component」はノードを繋ぐと勝手に追加されるので気にしないでよさそうです。

あと、最後に一応実践的にやったほうが良いと思うので、
ゲーム中のカメラの方向を向くように実装してみたいと思います。
参考にさせてもらっているサイトのように、「Look At」に渡す位置を変数にします。
LookAt102.png
位置の入力を「Look At Position」という変数を使って繋いでみました。
変数を公開情報にするのを忘れないようにしましょう。

あとはこの変数を外部から変更してあげれば、
その位置の方向をキャラクターが向くようになるはずです。

今回はカメラの位置をとってくるようにしてみました。
LookAt103.png
こんな感じで毎フレームカメラの位置をとってきて
先ほど変数にした「Look At Location」に対して代入しています。

これを実行するとこんな感じに。
LookAt101.png
マネキンだとかなりわかりにくいのですが、なんとなく向いてる気がします。

結構適当に設定してみましたが、うまく制御すると
キャラクターが自然な動きをするのでいろいろと使う機会は多そうですね。
スポンサーサイト

| UE4 | 12:21 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/304-7c0bd867

TRACKBACK

PREV | PAGE-SELECT | NEXT