地面レベルでY同期をオフにしてポータルに入ると、遷移は正常に行われます。
地面より高い位置でY同期をオフにしてポータルに入ると、プレイヤーは新しいシーン内で地面レベルに遷移してしまい、これは意図した動作ではありません。
Y軸上の任意の地点で「Y位置を同期」をオンにしてポータルに入ると、シーンは遷移しますが、プレイヤーはポータルの想定される位置や、前のシーンのY軸位置の近くにスポーンしません。これも意図した動作ではありません。
私が何か間違っている可能性は十分にあります。しかし、チュートリアルやここでのアドバイスに従って設定を行っても、期待通りに動作しないため、バグであると結論せざるを得ません。もしよろしければ、この機能に関する最新の解説や、代替案を教えていただければ幸いです。
ありがとうございます!
Baz
2026 年 5 月 14 日午前 1:43
2
問題の原因がわかりました!いくつかテストを行ったところ、PortalCollision のトランスフォームがゼロ化されていないようです。Y 座標の同期は Portal のトランスフォームではなく PortalCollision のトランスフォームを読み取っているため、この 2 つが一致しないと予期しないスポーン位置が発生してしまいます。
PortalCollision のトランスフォームを Portal に対して相対的に 0,0 にリセットしてください。その後、シーン内で Portal の位置を再調整する必要がある場合は、Portal ノードの「子要素をロック」ボタンをクリックして、誤って衝突判定を選択しないようにし、そこからドラッグ操作を行ってください。
この手順を簡単にまとめた動画を用意しました:
「いいね!」 1
ご返信ありがとうございます!残念ながら、私はすでにこの問題に直面しており、ポータルやポータルのコリジョンをいくつかの異なる方法で調整しましたが、うまくいきませんでした。
ポータルとプレイヤーのコリジョンボックスの関係で、ある動作に気づきました。プレイヤーのコリジョンボックスの下端が、常にポータルの+位置と目的地で一致しているようです。これにより、プレイヤーは遷移時に常に「落下」してしまいます。
とにかく、Sync Yを使用すると、ポータルの+の位置に関係なく機能しなくなってしまいます。これまでに私が望む結果を得るために見つけた唯一の解決策は、両方の場所にプレイヤーサイズのポータルを重ねて配置し、プレイヤーが前のシーンを離れるときと同じ相対的な高さに次のシーンで出現させることです(つまり、次のシーンにジャンプインする感じ)。
もし間違っていたら訂正してください。Sync Y Positionは本来そのようなことをするためにあるのではないですか?私はかなり背の高い細長いポータルのコリジョンを使用しているため、意図された範囲を超えたことを試みているのかもしれません。それは問題ないと思いますが、Y座標の計算にエディタでは確認できない制限があるのかもしれません。正直わかりません。
現在私が使用している解決策は私のニーズに合っているので、そこは問題ありません。ポータルノードの機能についてもっと学ぶ必要があるかもしれません。あなたが行ったこのトピックに関する動画を見て、それをきっかけに始めましたが、あなたの例はトップダウン環境だったので、私の環境で少し実験する必要がありました。
もしバグを見つけたのであれば、それを伝えることができて光栄です。もしバグでなければ、この学びの機会をありがとう
追記: 遷移後にプレイヤーのアニメーションが継続ではなく繰り返されることに気づきました。これは意図された動作ですか?それとも別の場所で管理されていますか?
Baz
2026 年 5 月 14 日午後 7:05
4
もう少しテストを行って、Sync Y を正しく動作させるためにいくつか設定が必要なことがわかりました。
プレイヤーについては、CollisionShape2D の下端がオブジェクトのグローバルポジションに位置するようにする必要があります。つまり、エディタ上で下端が 0,0 の水平線と一致するはずです。添付画像はその状態を示しています。これがプレイヤーの到着地点を決定します。
ポータル自体については以下の通りです:
PortalCollision の位置を 0,0 に設定し、ポータルオブジェクト自体をシーン内で希望する位置に移動してください。
Sync Y を正しく動作させるには、両方のポータルが同じ高さである必要があります。高さが一致しない場合、同期計算が正しく行われません。PGM でも同じ要件があったと確信しています。
Sync X も同時に使用する場合は、両方のポータルが幅も一致している必要があります。
これらが設定されていれば、Sync Y は目的の結果をもたらすはずです。
遷移時にアニメーションが繰り返される件ですが、プレイヤーの設定で「シーンの終了後も状態を保持する(Keep State After Scene Ends)」になっていますか? 私の環境では、この設定にすることで遷移時にリセットされるのではなくアニメーションが継続されていました。
「いいね!」 1
これで問題が解決しました!ありがとうございます!衝突のY座標を0に保つのを怠っていました。衝突ボックスの中心を0に手動で配置していました。また、「状態を保持」チェックボックスのおかげで助かりました。それについては全く手がかりがなかったので、笑えますね。
「いいね!」 1