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

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

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE4 アクターの位置を取得したりセットしたり(Get Actor Location、Set Actor Location、Set Actor Location And Rotation)

Actor(アクター)の位置を取得したり、位置をセットしたりする方法です。
注意することはいくつかありますが、素直にノードをつなぐだけでできます。

位置を取得するには「Get Actor Location」ノードを使います。
アクター位置関係000
「Vector」型で取得することができます。
Position ではなく Location なんですね。ここらへん用語は覚えないとですね。

位置をセットするのは「Set Actor Location」ノードを使います。
アクター位置関係001
これはセットする位置を入力するだけと思いきや、二つほどオプションがあります。

・Sweep

目的地までスイープするか否か。スイープする場合は、目的地までの過程でオーバーラップをトリガーし、何かにブロックされたら目的地の前で止まります。ルートコンポーネントだけがスイープされ、ブロックコリジョンについてはチェックされます。子コンポーネントはスイープなしで移動します。コリジョンがオフの場合は無効です。

と、ポップアップヘルプには書かれています。
あたり判定を持つアクターで、位置の「セット」ではなく「移動」として使う場合に、
コリジョン同士のあたり判定をするための処理。という感じでしょうか。
ちょっと自信ないですが…。
「Sweep Hit Result」で当たった結果の詳細がとれるようです。が、これはまた別途どこかで。

・Teleport

物理ステートをテレポートするか否か(物理コリジョンがこのオブジェクトのために有効になっている場合)。true の場合は、このオブジェクトの物理ベロシティは変更されません。(したがって、ラグドール部分は、位置の変化によって影響を受けません。) false の場合は、位置の変化に基いて物理ベロシティが更新されます(ラグドールの部分は影響を受けます)。CCD が有効でテレポートしていない場合は、スイープボリューム全体に沿ってオブジェクトに影響を与えます。

と、ポップアップヘルプには書かれています。
これにチェックをいれる場合はワープ(瞬間移動)的な処理になるということですね。
チェックがない場合は高速移動になるといったものになります。
高速移動にしてしまうと、物理挙動で髪やマントがなびく処理が入っていた場合などに、
もとにいた位置からの移動になるのでそっちに引っ張られてしまうところが見えて移動してしまう。
とかですね。
コリジョンにぶつかってほしい(Sweepにチェック)以外はチェックを入れてワープさせるのがよさそうですね。

ドキュメントはこちらに。英語しかなかった…。

・SetActorLocation
https://docs.unrealengine.com/latest/INT/BlueprintAPI/Utilities/Transformation/SetActorLocation/index.html

Sweep についてはこちらの記事とかが実践で使っているので参考になるかもです。

・インベーダーゲームを作る その5弾と当たり判定
http://unrealengine-blog.hatenablog.com/entry/2014/04/29/015733

それと、位置のセットと回転のセット両方を同時に行う「Set Actor Location And Rotation」
というノードもあります。
アクター位置関係002
移動ではなく、キャラクターの位置や回転をリセットしたい場合などは
同時に行えるのでこっちを使うほうがよさそうですね。

それと、上記 Set 系の関数ですが、「Capsule Component」や「Transform」の
詳細設定の「Mobility(可動性)」が「Static(スタティック)」になっている場合は
処理が効かないので注意しましょう。
「Movable(ムーバブル)」に設定することで、ノードの処理が有効になります。
アクター位置関係003

Set 系の部分だけいくつか注意点がある感じですね。
スポンサーサイト

| UE4 | 13:01 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/194-a1f8a9d2

TRACKBACK

PREV | PAGE-SELECT | NEXT