子コンポーネントの相対座標を取得したい

cubeとcube1の位置からsphereを発射したいのです。親であるcubeにはスポーンしてくれるのですが、cubeの子のcube1からは発射されずlevelの0座標にスポーンしてしまいます。子コンポーネントの相対座標を取得する方法を教えて下さい。

GetRelativeTranformで得られる座標は基本的に親Componentからの相対距離になります。
そのため、ビューポートでCube1に設定している。トランスフォームの値がそのまま返ってくると考えてよいかと思います。

一方、SpawnActorはWorldTranform、つまりレベル全体の座標で生成します。
恐らくですがCube1のトランスフォームにはいずれもそこまで大きな値が入っていないのでしょう。そのためレベルの0座標、あるいはそれに非常に近い位置にスポーンするという事になります。

Cubeは想定通りにスポーンするという件についてですが、GetRelativeTranformはRootComponentで行うとWorldTranformを返すようです。恐らくDefaultSceneRootをCubeに置き換えたBPを使っているため、実質的にGetWorldTransformになり想定通りに動いているという事だと思います。

そのため、Cube1においても素直にGetWorldTransformを使うのが良いと思うのですがいかがでしょう。仕様的に好ましくないという事であればより詳細な仕様を教えていただくのが良いかと思います。

1 Like

回答ありがとうございます。
spawnactorはレベルが基準なので、relative transformをつなげると親の位置0.0.0の絶対座標からの相対位置にスポーンしていたということですね。world transformに変更したことで無事解決しました。
ありがとうございます。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.