isa
2026 年 8 月 17 日午前 10:20
1
お世話になっております。
現在、実行アクション「オブジェクトを押す」を使用して箱を押すアクションを作成しています。
箱が押せたり押せなかったりと動作が安定しないため、設定方法等を教えていただきたいです。
一番やりたいことは、箱が上下に積まれている場合、一番下の箱を押すと上の箱も同時に動くようにしたいです。
サンプルプロジェクトを添付いたします。
Shiftキーでジャンプ、箱の方に入力キーを押し続けると箱を押すよう設定しております。
・箱が1つの場合:押せる
・箱が上下に2つ積まれている場合:押せたり押せなかったりする(左からは押せるが右から押すと途中で止まったりする、全く押せない場合もある)
・箱が上下に3つ積まれている場合:押せない
testproject_2026-08-17.zip (1.8 MB)
「いいね!」 1
Baz
2026 年 8 月 17 日午後 7:00
2
オブジェクトのプッシュは接触によるプッシュではなく、範囲効果(Area of Effect)です。このアクションは、実行中のオブジェクトから形状を投射し、その形状内にあり、ターゲットオブジェクトのフィルターに一致するすべてのオブジェクトに力が加わります。連鎖反応は発生しないため、箱が押されても、その上に置かれている箱は一緒に運ばれません。各箱は形状内に含まれている必要があります。
デフォルトの長方形サイズは 10 x 10 で、プレイヤーのすぐ前方の小さな範囲です。これでは1つの箱は完全に覆えますが、2つ目の箱はプレイヤーの正確なY座標によっては一部しか覆えず、3つ目の箱は完全に外れてしまいます。
左右の差については、「形状の方向タイプ(Shape Direction Type)」を確認してください。デフォルトは「設定された方向角度(Set Direction Angle)」で 0 に設定されており、プレイヤーの向きに関係なく固定された世界基準の方向を指します。「同じオブジェクトの方向(Same Object Direction)」を試してみてください。また、エフェクト設定内の「プッシュ/プルエフェクトタイプ(Push Pull Effect Type)」も同様に設定してください。これを行わないと、形状はプレイヤーの向きに従いますが、力は固定された角度のまま発射されます。
箱のスタックを一緒に動かすには、長方形の高さを3つの箱すべてをカバーするほど十分に高く設定し、ターゲットオブジェクトを「グループ」に設定してボックスグループを指定します。「接触オブジェクト(Contact Object)」では、実際にプレイヤーに接触している箱のみが対象となります。また、「距離エフェクト(Distance Effect)」を無効にすることをお勧めします。近接率(Near Rate)と遠接率(Far Rate)は距離に基づいて力をスケーリングするため、上部の箱が下部の箱に追いつかなくなってしまう可能性があるためです。
「いいね!」 2
isa
2026 年 8 月 18 日午前 3:23
3
ありがとうございます。
ご連携いただいた設定を変更して試してみましたがうまくいきませんでした。
1段:正常に動作する。
2段:1段目は動く。2段目が範囲効果の外に押されてしまう。
3段:1段目は動かない。2段目が範囲効果の外に押されてしまう。3段目は更に押し出されてしまう。
他に設定が必要な項目や、設定に誤りがあれば教えていただけないでしょうか。
■現在の設定
実行アクション:オブジェクトを押す・引く
・押す対象(箱)のグループ
■動作
Baz
2026 年 8 月 18 日午後 3:52
4
プロジェクトファイルをダウンロードしましたが、自分の環境では再現できないようです。他に何か行うべきことはありますか?
isa
2026 年 8 月 18 日午後 11:22
5
最初に添付したテストPJは修正前のため、以下のテストPJでご確認ください。
上記に張り付けた画像の設定を反映させたものとなります。
よろしくお願いいたします。
testproject_2026-08-19.zip (1.8 MB)
Baz
2026 年 8 月 20 日午前 4:00
6
見つけたバグを報告済みです。また、今後のプッシュ/プルの動作に役立つカスタムアクションも開発中です。準備ができ次第、投稿いたします:
「いいね!」 2
isa
2026 年 8 月 20 日午前 4:25
7
承知いたしました、ご対応よろしくお願いいたします。
カスタムアクションについてもありがとうございます。公開を楽しみにしています。
Baz
2026 年 8 月 21 日午前 3:24
8
プッシュ/プルの置換パッチの初期版を作成しましたので、まずはこれを使って試してみてください。まだ公式のリリース記事ではなく、後ほど詳細な解説付きで正式な記事を投稿する予定です。
必要なファイルは以下の2つです:
BazPushPullAction.gd (50.8 KB)
BazIsPushedCondition.gd (5.0 KB)
このアクションは、ネイティブの「Push/Pull Object」の代替となります。従来のように移動パイプラインに速度を供給する(これにより積み重なったオブジェクトが意図的に凍結される)のではなく、適切な衝突判定スウィープを用いて対象を直接移動させるため、壁にぶつかるときれいに停止し、上に別のオブジェクトが乗っていても速度がゼロになることはありません。
モードのドロップダウンメニューが主な設定項目です:
Contact Push(接触プッシュ) は、従来の直感的な操作性です。自分が向いている方向に接触しているオブジェクトをすべて押し返します。矩形領域は必要ありません。
Area Push(範囲プッシュ) は、あなたが定義した矩形内にあるすべてのオブジェクトを押し返します(矩形サイズ + 範囲オフセット)。この矩形は、あなたの向きに合わせて回転したり、鏡像になったりします。魔法のノックバック効果などに適しています。
Area Pull(範囲プル) は、同じ矩形内にあるすべてのオブジェクトをあなたの方へ引き寄せます。これは「掴む」行為ではなく、一種の「能力」として考えてください。ゾーン内のオブジェクトは引き寄せられ、あなたの境界で停止します。
その他の設定に関する簡単なメモ:
押し返せるオブジェクトをグループに割り当て、Target Group(対象グループ)にそのグループを指定してください。Push Speed(プッシュ速度)はエディタ上のピクセル/秒単位です。Stacked Slow Rate(積み重ね減速率)とChain Slow Rate(連鎖減速率)は、積み重なったライダーごとに、および列の余分なボックスごとにどのくらいの速度を保持するかを制御します(100 = 減速なし、Chain Slow Rate を 0 にすると、従来の「1つのボックスのみ」の操作性になります)。Max Push Chain(最大プッシュ連鎖数)はオプションのソコバン風ハードキャップです。Distance Effect(距離効果)は、Area モードにおいて近接/遠隔での減衰を追加します。
Condition(条件)は、アクションが押し返したオブジェクトにマークを付けるため、このアクションにのみ反応し、他のアクションには反応しません。押し返されたオブジェクトの遷移(transition)にこれを配置すると、そのオブジェクトがプッシュされている間(または実際に移動したときのみ、Check Type オプションあり)に発動します。プッシュかプルか、および方向でフィルタリングすることもできます。
設定中は Debug Visualize(デバッグ可視化)をオンにしてください。これにより検知ゾーンが描画され、どのオブジェクトがヒットしたかがマークされるため、アクションが何を行っているのかを正確に確認できます。
結果をお知らせください。あなたが遭遇した問題や要望は、公式記事に反映させていただきます。
「いいね!」 2
isa
2026 年 8 月 22 日午前 11:05
9
ご連携、およびご対応ありがとうございます。
私の方で少し動作させてみました。ただ、全ての設定値にて試してはいないため、そこについてはご了承ください。
確認したテストPJも添付いたします。ZキーにてPULL動作も可能です。
■テストPJ
testproject_2026-08-22.zip (1.9 MB)
以下、気になった点です。ご確認よろしくお願いいたします。
①オブジェクトを複数まとめて押す際にオブジェクト間に隙間ができる
②「Contact Push」の際に乗っているオブジェクトも動いてしまう(仕様?)
以下はBOXオブジェクトの「Stop on Slope」を「オン」にした状態の動作です。
上記設定がどのように影響しているか不明ですが、「オフ」にすると正しく動くようです。
③2段以上のオブジェクトを押すと、オブジェクトがずれる時がある
④3段以上重ねてオブジェクトを押すと、途中で動かなくなることがある(隙間が原因?)
⑤オブジェクトを引く際にオブジェクトがずれる
Baz
2026 年 8 月 22 日午後 2:24
10
詳細なテストをありがとう!これらの問題を修正します。
「いいね!」 2