M_u
2026 年 10 月 7 日午後 12:12
1
トップビューゲーム画面でタイルを敷き、完成サンプル:ヒーロー(トップビュー)と
壁用として、ゼロから作る->ゲームオブジェクト を作り4方向を囲んで配置しました。
プレイヤーは壁に当たると少し跳ね返る設定をしています。
左右と下の壁(ゲームオブジェクト)に当たった時は問題ないのですが
上の壁に当たると当たった後、壁がプレイヤーに引っ付いてしまい
停止中もじわじわ押されてしまいます。
原因がよくわからないのですが・・・
あともう一点、壁用オブジェクトには新規グループを作成し
割り当てているのですが保存して終了後、再度開くとそのグループが表示されなくなります
ビュジュアルスプリクト上では認識されていますが、10と言う風に数字で表示されています
Baz
2026 年 10 月 7 日午後 5:25
2
プレイヤーと壁のオブジェクトの両方とも、Motion Mode(移動モード)を「Floating(浮遊)」に設定する必要があると思います。「Grounded(接地)」はプラットフォームゲーム向けで、衝突を床、壁、天井として扱いますが、「Floating」はすべてを壁として扱うため、トップダウンゲームにはこちらが適しています。「Grounded」の場合、上部の壁は自分より下のプレイヤーを自分の床として扱い、動くプラットフォームのように追従することがあります。これが上部の壁だけその挙動を示す理由かもしれません。それぞれのオブジェクトでルートノードを選択し、インスペクターのCharacterBody2DセクションにあるMotion Modeを「Floating」に変更してください。
グループについては、バグを再現し、報告しました。ありがとうございます!Makerモードで「Create New Group」を使ってグループを作成すると、そのオブジェクトにシーングループとして保存されるため、グローバルグループにはなりません。そのため、プロジェクトを再読み込みした後にリストから消えてしまいます。これがビジュアルスクリプトで数字として表示される理由でもあると思います。
今のところ、Advancedモードから作成してください。オブジェクトを開き、ルートノードを選択し、インスペクターの隣の「Groups」タブに移動し、「+」をクリックして、名前を入力する際に「Global」にチェックを入れてください。そうすると、Makerモードの「Set Groups」リストに表示され、再読み込み後もそこに留まります。もし古いグループと同じ名前を使用すれば、すでにそのグループに含まれているオブジェクトも引き続き機能するはずです。手順を示した動画はこちらです:
「いいね!」 1
M_u
2026 年 10 月 8 日午前 11:33
3
記載されている内容の実施で問題は解決しました。
ありがとうございます!
動画を交えた解説でとても分かり易かったです!!
大きな問題は解決したのですが、小さな疑問として
壁(=ゲームオブジェクト)に連続でぶつかり続けると壁が微妙に移動してしまいます。
そもそも壁に何度も体当たりする事は無いと思うし、通常なら壁はタイルを使用する
と思うので稀なケースだとは思うのですが、この現象は仕様ということになるのでしょうか?
ちょっとややこしいのですが、相互に衝突が発生する以上はずれてしまうのは仕様です。
ではどうすればよいのかというと、コリジョンレイヤー/マスクという機能で相互には衝突しない、一方は一方にしかあたらない、という設定にすれば動かなくなるということになります。
壁側で「コリジョン相互チェック」機能を開いてもらって、壁側に足場のテンプレートを指定していただければおそらく動かなくなるとおもいます。
M_u
2026 年 10 月 9 日午前 10:54
5
解決できました
ありがとうございます。
「コリジョン相互チェック」機能の話が出たので少しお伺いしたいのですが
添付画像の赤丸で囲ったところの様々な色のついた丸は
何か意味があって色分けされていますか?