ワールド制作
このガイドでは、OpenForge MCP を使って VRChat ワールドをゼロから構築する手順を解説します。「海辺のバー」をテーマに、地形の作成からインタラクティブ要素の配置、ライティング、アップロード前検証まで、すべてを自然言語の指示で進めていきます。
全体の流れ
VRChat ワールド制作は、以下のステップで進めます。
| ステップ | 内容 | 主なツール |
|---|---|---|
| 1 | ワールドの初期設定 | setup_vrc_world |
| 2 | 環境の構築 | create_gameobject, set_material |
| 3 | スポーンポイントの設定 | add_spawn_point |
| 4 | インタラクティブ要素の配置 | ミラー、椅子、ピックアップなど |
| 5 | ライティングと雰囲気 | create_light, set_skybox |
| 6 | アップロード前検証 | validate_for_upload |
ステップ 1: ワールドの初期設定 (setup_vrc_world)
最初に、VRChat ワールドとして動作するために必要な基本コンポーネントを設定します。
あなた:
VRChat ワールドの初期設定をして。ワールド名は「海辺のバー」で
AI の動き: setup_vrc_world が実行され、以下が自動的に作成されます。
VRC_SceneDescriptorコンポーネント付きの GameObject- 既定のスポーンポイント
- 参照カメラ
- 基本的な Respawn Height(落下時のリスポーン高度)の設定
VRC_SceneDescriptor は、Unity シーンを VRChat ワールドとして認識させるためのコンポーネントです。このコンポーネントがないと、VRChat にワールドをアップロードできません。スポーンポイントの位置やワールドの設定を保持します。
ステップ 2: 環境の構築
ワールドの骨格ができたら、環境を作り込んでいきます。
地形と海
あなた:
60m x 60m の Terrain を作って。南半分は砂浜にして、北側は海に見えるように水面の Plane を敷いて
AI の動き: Terrain が生成され、砂浜のテクスチャが適用されます。海側には半透明の水面オブジェクトが配置されます。
あなた:
砂浜の色はクリーム色にして。水面は少し緑がかった青で、半透明にして
AI の動き: 砂浜と水面のマテリアルが更新されます。
バーの建物
あなた:
砂浜の海寄りに、横 10m x 奥行 6m のバー小屋を作って。ヤシの葉で覆った屋根で、正面は海に向かって開いている。カウンターは横 8m、高さ 1m で、木製にして
AI の動き: バーの構造物が作成されます。屋根、柱、カウンターがそれぞれ GameObject として配置されます。
あなた:
カウンターの前にバースツールを 5 脚並べて。木製の丸椅子で、等間隔に
AI の動き: 5 つのスツールが等間隔で配置されます。
あなた:
カウンターの奥に棚を作って。ボトルが並んでいるように見える色付きのシリンダーを 10 本くらい置いて。赤、緑、茶色、透明など色を混ぜて
AI の動き: 棚とボトル風のオブジェクトが配置されます。
装飾
あなた:
バーの両脇にヤシの木を 2 本ずつ立てて。高さ 6m くらいで。砂浜のあちこちにも 3 本追加して
AI の動き: ヤシの木風のオブジェクトが合計 7 本配置されます。
あなた:
砂浜にビーチチェアを 3 つ置いて。海に向かって並べて。色は白と水色のストライプで
AI の動き: ビーチチェアが 3 つ配置されます。
あなた:
スクリーンショットを撮って。バーのカウンター側から海を見た角度で
ここで全体の雰囲気を確認します。
ステップ 3: スポーンポイントの設定 (add_spawn_point)
プレイヤーがワールドに入ったときに最初に立つ場所を設定します。
あなた:
スポーンポイントを砂浜の入口あたりに設定して。バーと海が見える向きにして
AI の動き: add_spawn_point が実行され、指定の位置と向きにスポーンポイントが配置されます。
あなた:
スポーンポイントをもう 1 つ追加して。バーのカウンターの端あたりに
AI の動き: 2 つ目のスポーンポイントが追加されます。複数のスポーンポイントがある場合、プレイヤーはランダムにいずれかの位置に出現します。
スポーンポイントは、ワールドの見どころが目に入る位置に配置するのが良い方法です。プレイヤーが最初に目にする光景が、そのワールドの第一印象になります。また、複数人が同時にスポーンしても重ならないように、ある程度間隔を空けて複数配置しておくと快適です。
ステップ 4: インタラクティブ要素の配置
VRChat ワールドの魅力は、プレイヤーが触れるインタラクティブな要素にあります。
ミラー (add_vrc_mirror)
あなた:
バーのカウンター裏の壁に全身ミラーを設置して。横 2m x 縦 2.5m のサイズで
AI の動き: add_vrc_mirror が実行され、VRChat 対応のミラーが配置されます。プレイヤーは自分のアバターを映して確認できます。
ミラーはレンダリング負荷が高いコンポーネントです。ワールドに設置する場合は 1 枚に留めるか、プレイヤーが任意で ON/OFF を切り替えられるようにすると、パフォーマンスへの影響を抑えられます。
座れる椅子 (add_vrc_chair)
あなた:
バーのスツール 5 脚すべてを VRChat の椅子として設定して。座ったら海の方向を向くようにして
AI の動き: 各スツールに VRC_Station コンポーネントが追加され、プレイヤーが座れるようになります。
あなた:
ビーチチェア 3 つも座れるようにして。リクライニングした姿勢で座れるように
AI の動き: ビーチチェアにも VRC_Station が追加されます。座ったときの姿勢(アニメーション)が設定されます。
持てるオブジェクト (add_vrc_pickup)
あなた:
カウンターの上にグラスを 3 つ置いて。プレイヤーが持てるようにして
AI の動き: add_vrc_pickup が実行され、VRC_Pickup コンポーネント付きのグラスオブジェクトが配置されます。プレイヤーは手に取って持ち歩けます。
あなた:
ビーチボールも 1 つ砂浜に置いて。持てるようにして。直径 40cm の黄色と白のストライプで
AI の動き: ビーチボールが Pickup として配置されます。
ビデオプレイヤー (add_vrc_video_player)
あなた:
バーの壁にビデオプレイヤーを設置して。横 2m のスクリーンで
AI の動き: add_vrc_video_player が実行され、動画再生用のスクリーンと UI が配置されます。プレイヤーは URL を入力して動画を再生できます。
ポータル (add_vrc_portal)
あなた:
砂浜の隅にポータルを 1 つ設置して。別のワールドに移動できるようにして
AI の動き: add_vrc_portal が実行され、ワールド移動用のポータルが配置されます。
ポータルの移動先ワールド ID は、アップロード後に VRChat のワールド設定画面から指定できます。テスト段階ではダミーの ID が設定されます。
ステップ 5: ライティングと雰囲気
海辺のバーらしい、夕暮れの雰囲気を作りましょう。
メインライト
あなた:
ディレクショナルライトを夕日の色に設定して。オレンジがかった暖色で、水平線の方向から低い角度で差し込むようにして
AI の動き: メインライトの色と角度が変更され、夕暮れの雰囲気になります。
装飾ライト
あなた:
バーの屋根の下にストリングライト風のポイントライトを 6 つ並べて。暖色の柔らかい光で、明るすぎないように
AI の動き: バーの屋根沿いに暖色のポイントライトが配置されます。
あなた:
カウンターの下にも間接照明として、弱い暖色のポイントライトを 3 つ追加して
AI の動き: カウンター下に控えめなライトが追加されます。
スカイボックス
あなた:
スカイボックスを夕焼けの海に設定して。水平線が赤とオレンジに染まって、上の方は紫から濃い青に変わっていく感じで
AI の動き: set_skybox が実行され、シーン全体の空が夕焼けの雰囲気に変わります。
ライトマップのベイク
あなた:
ライトマップをベイクして。間接光が自然に回り込むように
AI の動き: ライトマップのベイク処理が実行されます。静的オブジェクトに光の情報が焼き込まれ、リアルタイム計算の負荷が下がります。
ライトマップのベイクには時間がかかることがあります。オブジェクトの配置やライトの設定が確定してからベイクするのが効率的です。配置を変更するたびにベイクし直す必要があります。
あなた:
バーのカウンターに座った視点でスクリーンショットを撮って
ここで最終的な雰囲気を確認します。
ステップ 6: アップロード前検証 (validate_for_upload)
すべてのセットアップが完了したら、アップロード前に問題がないか検証します。
あなた:
VRChat へのアップロード前検証を実行して
AI の動き: validate_for_upload が実行され、以下の項目がチェックされます。
- VRC_SceneDescriptor が正しく設定されているか
- スポーンポイントが存在するか
- コライダー(当たり判定)の抜けがないか
- ライトマップがベイクされているか
- パフォーマンスに問題がないか(ドローコール数、ポリゴン数)
- テクスチャサイズが適切か
AI の返答例:
検証結果: 2 件の警告
- [警告] テクスチャ "SandTexture" のサイズが 4096x4096 です。2048x2048 以下を推奨します
- [警告] バーの屋根にコライダーが設定されていません。雨宿りの演出には影響ありませんが、
プレイヤーが屋根の上に乗れなくなります
エラーはありません。アップロード可能です。
あなた:
砂のテクスチャを 2048x2048 にリサイズして
AI の動き: テクスチャが縮小されます。
あなた:
もう一度検証して
AI の返答例: 「検証結果: エラーなし、警告 1 件(屋根のコライダー)。アップロード可能です。」
完成したワールドの構成
「海辺のバー」ワールドの最終構成をまとめます。
| 要素 | 内容 |
|---|---|
| 地形 | 60m x 60m、砂浜と海面 |
| 建物 | バー小屋(カウンター、棚、ボトル) |
| 家具 | バースツール 5 脚、ビーチチェア 3 つ |
| 植物 | ヤシの木 7 本 |
| ミラー | 1 枚(カウンター裏) |
| 座れる場所 | 8 箇所(スツール 5 + チェア 3) |
| Pickup | グラス 3 つ、ビーチボール 1 つ |
| ビデオプレイヤー | 1 台 |
| ポータル | 1 つ |
| ライト | ディレクショナル 1 + ポイント 9 |
| スポーンポイント | 2 箇所 |
次のステップ
ワールドが完成したら、以下に進んでください。
- アップロード -- VRChat へのアップロード手順
- パフォーマンス最適化 -- ワールドのパフォーマンスを改善する
- VRChat レシピ集 -- ワールドの基本構成を自動化する