alwei
(alwei)
October 11, 2019, 2:40pm
1
現状のやり方では、どのようにヒットしたとしても固定の向きにしか移動しません。画像4枚目のCast To BP 床9は実行ピン(白い線同士の接続)が繋がっていないので、ターゲットに指定しても無効というのがエラー(ここでは警告扱い)の原因です。実行ピンがあるノードは必ずそれぞれを接続しないと動作しないということを覚えておきましょう。
修正するべきなのはDiamond Meshを方向ごとに用意し、それぞれ個別に判定をとって移動する向きを指定する必要があります。これ以上はブループリントの全体構成がわからないので、もっと詳細(BPのコンポーネントや変数など)を追記してもらうとよりアドバイスしやすくなると思います。
moritayan
(mori chan)
October 11, 2019, 2:11pm
2
動く床に置いてあるスイッチ(DaiamondMesh)にキャラクター(Award)が当たると床が動いていくという仕組みを作りたいです。指定した通り4方向に動かしたいです。
1番目の画像では下のスイッチをとして、ほかの3個のスイッチと床を子としてつないでいます。
親が下のスイッチなので当然、ほかのスイッチに触れた際はそのスイッチのみが動いていきます。(画像2)
289827-
画像3が床を動かす仕組みのブループリントです。
ー補足としてー ブループリントで動かす対象を「床」とすればすべて解決だと考え、ターゲットを床にしてみようとしたのですがエラーが出てしまいうまくいきませんでした。(画像4)
なにが動いても一緒についてくるようにする設定があるのか。もしくは現在のブループリントの改善点等を教えて頂きたいです。
UseingUEからJapaneseセクションへの再投稿となります。
moritayan
(mori chan)
October 11, 2019, 5:47pm
3
返答ありがとうございます。
Diamond Meshは既に4方向に配置してあり、床が一緒に動いてくれず困っている状況です。
判定も画像のBPのVector+Vectorの値を変えることで移動する向きを指定してあります。
詳細のBPのコンポーネントや変数とはこのあたりのことでよろしいのでしょうか…
alwei
(alwei)
October 12, 2019, 2:53am
4
DiamondMeshがBP床とは別のようですが、何か理由があるのでしょうか?
個人的にやるのであれば、DiamondMeshを4つStaticMeshコンポーネントとして追加し、それぞれ使いたいDiamondMeshの表示をオンしておき、OnComponentOverlapを個別に追加して、オーバーラップした時にBP床全体を当ったDiamondMeshに応じた方向に移動させるようにします。
まずはコンポーネントの使い方をしっかりと理解しましょう。
moritayan
(mori chan)
October 17, 2019, 11:48am
5
全てのDaiamondMeshをコンポーネントとして追加し、それぞれにぶつかったときにイベントが発生するようにしました。(画像は同じものがあと2つ下に続いています)
わたしの考えだと
DaiamondMesh1にBP_Award(操作するキャラクター)がぶつかるとSetActorLocationによりGetActorLocationが取得した位置からxに10動いた位置にターゲットであるBP床9が動く
という動作になると思ったのですが、ぶつかっても何も変化しません。
全体が動くのだからターゲットをselfにしてもよいのかなとも考えましたがどちらも何も動きませんでした。
alwei
(alwei)
October 17, 2019, 12:50pm
6
ターゲットに設定されている"BP_床9"というのは唯の変数なので、中身が設定されていなければ動くことはありません。この場合、ターゲットには何も接続しないのが正解です。ここで確認してほしいのは、それぞれのメッシュにオーバーラップした際にオーバーラップイベントが発生しているかです。
オーバーラップイベントを発生させるためにはDiamondMeshのコリジョン設定を正しく設定させる必要があります。以下のスライドを参考に、正しくコリジョン設定されているかを確認してください。
moritayan
(mori chan)
October 18, 2019, 8:19am
7
ようやく、意図したように動くようになりました。
おっしゃる通りコリジョンの設定が誤っていたようです。
これで次のステップに進めます。本当にありがとうございました。
alwei
(alwei)
October 18, 2019, 12:29pm
8
解決して何よりです。
問題が解決した際には以下のクイックスタートヘルプを参考に、回答へ対して解決済みへと変更してください。