ミニゲーム: 物理サンドボックス

概要

「物理遊び」は剛体・布・各種エフェクトエミッタを組み合わせ、火・水・氷・風・ツタ・雷・酸・電気回路といった反応を自由に試せるトイ系サンドボックスです。 シミュレーションの操作やオブジェクト同士の化学反応、衝突、配線、レイアウト保存などの行為が経験値に換算されるため、遊びながら育成要素も楽しめます。【F:games/physics_sandbox.js†L246-L260】【F:games/physics_sandbox.js†L726-L730】【F:games/physics_sandbox.js†L1675-L1726】【F:games/physics_sandbox.js†L3546-L3553】【F:games/physics_sandbox.js†L5360-L5369】

画面レイアウト

画面上部にはツールバーが並び、左から現在の描画ツールを選択するボタン群、右側にシミュレーション開始・停止・リセット・削除・保存・読み込みのアクションボタンが配置されています。【F:games/physics_sandbox.js†L612-L669】

中央は物理世界を描画するキャンバス、その右に選択中のオブジェクトや世界設定を調整するインスペクターパネルが並ぶ 2 カラム構成です。最下段には現在のオブジェクト数や重力値、温度統計、風情報などを表示する HUD が常時更新されます。【F:games/physics_sandbox.js†L671-L688】【F:games/physics_sandbox.js†L3556-L3622】

ツールバーの種類

シミュレーション操作

オブジェクトの配置と編集

  1. ツールを選択してキャンバスをクリックすると、対応する剛体・布・エミッタがその地点に生成されます。剛体はドラッグで大きさを決められます。【F:games/physics_sandbox.js†L1511-L1596】
  2. 選択ツール中にオブジェクトをドラッグすると位置を変更でき、エミッタは端から一定距離内に収まるよう制限されます。【F:games/physics_sandbox.js†L1519-L1627】
  3. 布ノードをドラッグすると座標と速度がリセットされ、ピン留めされます。布の端点を固定したまま他のノードを動かすことでカーテン状の形状などが作れます。【F:games/physics_sandbox.js†L1628-L1638】
  4. 回路ツールでノードを置いた直後に別ノードを置くと自動で接続されます。既存ノードのインスペクターからリンクモードを有効化すると、クリックした順に接続を増やせます。【F:games/physics_sandbox.js†L1567-L1571】【F:games/physics_sandbox.js†L1675-L1683】【F:games/physics_sandbox.js†L4552-L4562】

ワールド設定

インスペクター上部には世界全体のパラメータを調整するセクションがあり、重力(上下 2000 の範囲)、空気抵抗、ソルバー反復回数、サブステップ数、環境温度、境界モードをスライダーと選択肢で切り替えられます。境界を「Void」にすると外へ出た剛体が距離に応じて消滅する仕様になるため、掃除に便利です。【F:games/physics_sandbox.js†L3625-L3750】

剛体インスペクター

剛体を選択すると、化学組成やダメージ、構造健全度、応力・歪み、熱流、破断しきい値、反応クールダウンなどの計測値が表示され、素材による物性の違いを把握できます。【F:games/physics_sandbox.js†L3968-L4039】

素材プリセットの切替え、質量表示、角度・角速度の確認、静的化スイッチ、反発係数・摩擦係数のスライダー、円形の場合は半径、箱形の場合は幅・高さのスライダー、カラー選択が用意されており、破壊不可能な絶対壁のみ該当コントロールが無効化されます。【F:games/physics_sandbox.js†L4041-L4213】

さらに「Chemical Customizer」を開くと元素リストから組成を編集し、密度・熱特性・融点・沸点・着火温度・危険タグなどを指定したカスタム素材を生成して適用できます。登録済みの危険タグは一覧表示され、必要ならリセットして組成を作り直せます。【F:games/physics_sandbox.js†L4220-L4480】

エミッタと回路

エミッタのインスペクターでは種類表示とともに放出レート(毎秒 0〜40)、強度(0.2〜5.0)のスライダーを調整でき、風エミッタのみ風向(0〜359 度)も設定できます。【F:games/physics_sandbox.js†L4491-L4526】

回路ノードには常時通電トグル、接続済みノードのリスト、リンクモードの切替ボタンがあり、ここから接続解除や追加リンクを操作可能です。リンク操作を完了すると経験値を獲得します。【F:games/physics_sandbox.js†L4527-L4562】【F:games/physics_sandbox.js†L1675-L1683】

布のプロパティ

布を選択すると、全体の耐久度・リンク数・平均/最大ひずみ・疲労値が表示され、構造/せん断/曲げの各剛性、減衰係数、裂けやすさ、質量係数、布色、自己接触設定など細かく調整できます。色変更はカラー入力で即時反映されます。【F:games/physics_sandbox.js†L4563-L4724】

物理・化学反応の要点

HUD と経験値

HUD には剛体・エミッタ・布・粒子の総数、稼働中の回路ノード数、現在の重力・獲得経験値、ソルバー設定、平均/最大温度、物質状態の内訳、風の突風数とエミッタ数が表示されます。【F:games/physics_sandbox.js†L3556-L3622】

経験値は衝突インパクト、火炎・凍結・腐食・配線などの反応処理、レイアウト保存や読込によって得られます。積極的に実験し、HUD の XP 表示で成果を確認しましょう。【F:games/physics_sandbox.js†L726-L730】【F:games/physics_sandbox.js†L1675-L1726】【F:games/physics_sandbox.js†L3546-L3553】【F:games/physics_sandbox.js†L5360-L5384】

レイアウト管理

インスペクター最下部の「Saved Layouts」セクションから保存済みスナップショットの一覧を確認し、ロードや削除が行えます。保存データはローカルストレージに記録されるため、ブラウザを再読み込みしても残ります。【F:games/physics_sandbox.js†L3780-L3799】【F:games/physics_sandbox.js†L5387-L5400】

遊び方のヒント