Skip to Content
ドキュメント開発者向け導入ガイド実践例Roblox 実装例 · Ball Game

Roblox 実装例 · Ball Game

Ball game open source  の ball game.rbxl が元です。5 秒待ち、ピンクの球を 3 枚のずれた壁の間に押して進め、WinPiece に触れると金色になり Winner を表示するルールを保ちます。

原作の確認

Roblox Studio でプレイ後に停止し、元の .rbxl を変えずにスクリプト、アバター、シーン、プロパティを調べます。

原作の人物、草地、壁、灰色の土台、ゴール。

原作の人物、草地、壁、灰色の土台、ゴール。

GetWinner は球と WinPiece の接触を監視。

GetWinner は球と WinPiece の接触を監視。

2 つのスクリプトは球生成と勝利判定を担当し、描画、人物、入力、カメラ、アニメーション、物理、サーバー環境は Roblox が提供します。球は 5×5×5 studs、草地は 18×1×74、壁の中心は (22,17.5,34)、(32,17.5,15)、(21.5,17.5,-4)。本例専用の値です。

Ball.Touched:Connect(function(partTouching) if partTouching.Name == "WinPiece" then Ball.BrickColor = BrickColor.new("Gold") warn("Winner!") game.Workspace.Map1.PlayerWon.Value = true end end)

単純な Part シーンなら、Play 停止中に以下を Studio Command Bar で実行し Output に属性を表示できます。読み取り専用で、複雑なメッシュ、テクスチャ、リグは別途扱います。H5 を出力するコマンドではありません。

for _, part in ipairs(workspace:GetDescendants()) do if part:IsA("BasePart") then print(part:GetFullName(), part.Position, part.Size, part.Material, part.Transparency) end end

H5 との対応

元の処理ブラウザ版
CreateBall: wait(5)、Part、Neonmain.js:待機、表示メッシュ、動的剛体
GetWinner: Touched、PlayerWonmain.js:一度だけ勝利、金色の球、Winner
Map1、WinPiece、スポーンlevel.js + main.js:配置、形状、透明な壁を含む衝突
草・レンガ・金属・土・空environment.js:材質とローカルテクスチャ
R15 Man、Pal Hair、シャツ、ジーンズavatar.js:15 部位、髪、笑顔、服、白底の靴
Humanoid と三人称カメラmain.js、avatar.js、camera.js:移動、ジャンプ、動作、追従・回転・ズーム
Message / HintHTML/CSS の HUD、開始・ポーズ・勝利画面

元は実行時にアカウントの Avatar を読み込みます。本例は公式メッシュを直接取り込まず、ローカル形状とテクスチャで外観を再現しました。Part は実際の配置を再現しています。他のゲームでは権限のあるモデル・テクスチャを再利用できます。

再現した人物の正面:髪、笑顔、青黒の服、濃いズボン、白い靴底。

再現した人物の正面:髪、笑顔、青黒の服、濃いズボン、白い靴底。

側面:髪、身体の分割、靴の形状。

側面:髪、身体の分割、靴の形状。

換算は 1 stud = 0.3 m、原点 (27,15,15)、球半径 0.75 m。座標変換、質量、摩擦、転がりの減衰、速度上限は自分のゲームに合わせて調整します。

3 つの障害物、境界、ゴールを元の配置に再構築。

3 つの障害物、境界、ゴールを元の配置に再構築。

ballBody.addEventListener('collide', event => { if (event.body !== winPiece.body || state.mode !== 'playing' || state.won) return; state.won = true; state.phase = 'finished'; pink.color.set('#fff000'); pink.emissive.set('#fff000'); glow.material.color.set('#fff54b'); document.querySelector('#status').textContent = 'Winner!'; show('won'); });

ブラウザ版にはタッチ移動・ジャンプ、ポーズ・再開、リプレイ、全画面、人物表示、WebGL 非対応表示を追加。Roblox アカウント、Robux、マルチプレイ同期、クラウド保存は移行しておらず、完全互換ランタイムではありません。

起動と検証

新しい ball-game-h5 に展開し、ルートに package.json を置きます。level.js、avatar.js、environment.js、camera.js、main.js、SOURCE-MAPPING.md、reference/ の元 Lua を含みます。

npm ci npm run dev

http://127.0.0.1:5174/ を開きます。記録ではデスクトップの Move to Combos/ball-game-h5 を使用。自分のパスに置き換えます。開始後 5 秒で球が出現。WASD / 矢印で移動、スペースでジャンプ、ドラッグで回転、ホイールでズーム、P でポーズ、R でリプレイ、F で全画面。「人物を見る」はゲームを止め、戻ると再開します。

ローカルの三人称視点でピンクの球を物理的に押す。

ローカルの三人称視点でピンクの球を物理的に押す。

初期視点で壁を右、左、右と避け、最後のくぼみに入れます。WinPiece への接触で金色になり Winner を表示。記録ではキーボードと物理操作で完全クリアし、着地、ポーズ、リプレイ、カメラ、人物表示を確認しました。

ローカルでクリア後、金色の球と Winner を表示。

ローカルでクリア後、金色の球と Winner を表示。

ビルドと公開

dev を止め、完成品を http://127.0.0.1:4174/ で確認します。

npm run build npm run preview

ソースには cover.png があります。自分のゲームを作成し、以後は自分の紐付けで更新。ローカルサーバー停止後も公開 URL を再検証します。記録された人物・シーン更新は revision 2、公開済み、submission_is_current=true。Ball Game H5 、Canvas コード 70261。公開版でキーボードによるクリアを確認。モバイルボタンはビューポートのみで、実機は未検証です。

ローカルサーバー停止後、Combos で動く更新版 Ball Game H5。

ローカルサーバー停止後、Combos で動く更新版 Ball Game H5。


出典:Combos 開発者向け導入ガイド 。原文の確認日:2026-10-08、CLI v1.14.2。検証結果は原文に記録された実行時のものです。

Last updated on