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

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

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE4 特定のボーン(Transform)に対して「位置」「回転」「スケール」を変更する(Transform(Modify)Bone)

特定のボーン(Transform)の「位置」「回転」「スケール」をブループリントから変更する方法です。

下のようなものを見つけたのでどうやって実装するのか気になりました。

調べてみるとこんなページが

・Blueprintで特定BoneのTransformを変更したい
https://answers.unrealengine.com/questions/121347/blueprint%E3%81%A6%E7%89%B9%E5%AE%9Abone%E3%81%AEtransform%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%E3%81%84.html

ボーン単位でのトランスフォームはアニメーションブループリント内で可能です。
スケルタル制御 https://docs.unrealengine.com/latest/JPN/Engine/Animation/NodeReference/SkeletalControls/index.html
通常のブループリントでのボーン単位のコントロールは無理だと思います。

とあったのでアニメーションブループリントを調べてみることに。

・スケルタル制御
https://docs.unrealengine.com/latest/JPN/Engine/Animation/NodeReference/SkeletalControls/index.html

上記公式ページを見る感じだと
「Transform (Modify) Bone」ノードを使うと行けそうですね。
公式ページはここに。

・ボーンのトランスフォーム
https://docs.unrealengine.com/latest/JPN/Engine/Animation/NodeReference/SkeletalControls/TransformBone/index.html

「Transform (Modify) Bone」ノードを使ってみます。
ボーンスケール000
「位置」「回転」「スケール」と全部いけそうですが、
今回はとりあえずボーンのスケールだけいじってみることにしました。

「Transform (Modify) Bone」ノードの詳細を開いて
スケールを変更したいTransformを設定します。
ボーンスケール002
今回は頭を大きくしたいので「head」を選択しました。
それと、どうもスケールがアニメーションやステートで上書きされているようなので
「Transform (Modify) Bone」の値を加算するように
「Scale Mode」を「Add to Exisiting」に変更してみました。
ここらへんは挙動がなんとなくしかわからないのでいろいろ試してみないとですね。

設定したノードを繋ぐとこんな感じになります。
ボーンスケール005

するとプレビューにも設定した値が反映されました。
ボーンスケール001
わりといい感じなのではないでしょうか。
頭があさっての方向を向いてるのは「Look At」の制御もはいってるためですね。
スクリーンショットを撮った時ははいちゃってました。

さて、これを実行するとちゃんとゲームでも反映されました。
ボーンスケール003
こんな感じですね。
人型キャラクターを制御する場合、「Look At」であったり、
今回のように「アニメーションの結果をプログラムでいじる」
といったことがどうしても必要になるので、知っておいた方がよさそうですね。

スポンサーサイト

| UE4 | 11:26 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/305-b6a61389

TRACKBACK

PREV | PAGE-SELECT | NEXT