タイムラインを使ってドアを横にスライドさせようとしていますがうまくいかないので教えてください。
レベルに配置したBoxTriggerに入ると左から2つめのドアが左にスライドして開き、BoxTriggerから出るとドアがスライドして閉まるというものになります。
①今の状態は、ドアはスライドして開くのですが、BoxTriggerから出ると、ドアが戻らずにさらに開く方向へ移動します。
タイムラインのReverseにOnActorEndOverlapを繋いでいるのでReverseされると思っていましたがされません。
ノードが間違っていますか?
②またドアのスライド具合ですが、タイムラインでX軸のみ1秒後に1.5の値にしていますが、この1.5というのは1.5mということですか?
この値の意味が良く解っておらず、何回か値を変更して試してから良い具合の数値にしています。
①今の状態は、ドアはスライドして開くのですが、BoxTriggerから出ると、ドアが戻らずにさらに開く方向へ移動します。
タイムラインのReverseにOnActorEndOverlapを繋いでいるのでReverseされると思っていましたがされません。
ノードが間違っていますか?
Timelineノードの使い方はあっていますが、移動方法が間違っています
AddActorLocalOffsetは、現在の位置に引数で与えた位置を 加算 します
②またドアのスライド具合ですが、タイムラインでX軸のみ1秒後に1.5の値にしていますが、この1.5というのは1.5mということですか?
この値の意味が良く解っておらず、何回か値を変更して試してから良い具合の数値にしています。
UE4の1は1cmです
つまるところ本文の処理は「Updateが呼ばれるごとにX軸方向にNcmずつ移動する(NはTimelineの値)」処理になっています
このノード構成では開閉位置が感覚的にしかわからず、きちんとコントロールすることができません
Lerpノード、Easeノードあたりを使うほうが良いでしょう
下記はLerpノードを使用した例です
移動の方法が間違っていたのですね。
現在のパネルの位置からX軸へ1.5という値を動かしていたと思っていました。
なので、この1.5という数値がパネル自体は1mくらいあるのになぜ1.5でいい位置に移動してくれたのか良く解らず、タイムラインの値の単位を質問しました。
添付いただいたノードですが、理解できていないので教えてください。
Lerpノードですが、
Alphaに基づいてAとBの間を線形補間します(Alpha = 0の場合はAの100%、Alpha = 1の場合はBの100%)
ということは分りました。
添付いただいたノードですと
alphaが1に設定されているのでBに近い位置になるということで大丈夫でしょうか?
ここで理解できていないことですが、ClosePositionとOpenpositionの2つのvectorの変数がありますが、
実際のドアのパネルを配置している位置のXYZと、動いた後の位置のXYZを、変数のデフォルト値に入力するということでしょうか?
今はClosePositionとOpenpositionの2つのvectorの変数に何も入力せず、プレイしてみると、Boxtriggerに入った瞬間に、ドアのパネルが消えたのか?どっかに行ったのか?分りませんが、いなくなりました。
SetActorLocationなので、Lerpから出た値がセットされるということで大丈夫でしょうか?
このLerpのところが良く解りません。
Alphaの値が1なので、BのOpenPositionに近い値がセットされるということで大丈夫でしょうか?
LerpはAとBの間を線形補間します
VectorのLerpの場合は、AとBの間に直線を引き、その上を移動するような動作になります
例えばAlphaが0.5の場合は、ちょうどAとBの中間地点に移動することになります
これを0~1の値を出力するTimelineにつなぐと、Actorを往復させることができるようになります
ここで理解できていないことですが、ClosePositionとOpenpositionの2つのvectorの変数がありますが、 実際のドアのパネルを配置している位置のXYZと、動いた後の位置のXYZを、変数のデフォルト値に入力するということでしょうか?
そういうことです
スクリーンショット用に名前をつけるために変数化しただけですので、実際に使ってみて自分の環境に合わせるようにしてください
作成した変数のXYZにクローズ、オープンそれぞれの座標を入力すると、思っていたような動きになりました。
有難うございました。
作成した変数のXYZにクローズ、オープンそれぞれの座標を入力すると、思っていたような動きになりました。
有難うございました。