バージョン管理を使いこなす
セーブとロードのチュートリアルでは基本的な保存と復元を学んだ。ここでは一歩進んで、ブランチ(枝分かれ)を使った実験、マージ(統合)、詳細な履歴の確認、差分比較など、バージョン管理をもっと深く使いこなす方法を学ぼう。
前提条件
- OpenForge MCP が接続済みであること
- セーブとロードの内容を理解していること
- 何かしらのプロジェクトが進行中であること
なぜブランチが必要なのか
シーンに大きな変更を加えたいとき、「失敗したら元に戻せるかな」と不安になることがある。セーブポイントに戻れば復元はできるけど、もっとスマートな方法がある。それがブランチだ。
ブランチを使えば、現在の状態を残したまま「実験用の別の道」を作れる。実験がうまくいったら本筋に取り込む。うまくいかなかったら捨てる。本筋は一切影響を受けない。
ステップ1: 現在の状態を確認する
まずは今の状態を把握しよう。
あなた:
現在のバージョン管理の状態を見せて。どのブランチにいるか、最近の履歴も含めて
AIの動き: 現在のブランチ名(通常は「main」)と、最近のセーブ履歴が表示される。
現在のブランチ: main
最近の履歴:
3. ライティングを調整した
2. 家具を配置した
1. 部屋の壁と床を作った
ステップ2: 実験用ブランチを作る
ライティングを大胆に変えてみたいけど、今の状態も残しておきたい。そんなときにブランチを作る。
あなた:
「lighting-experiment」という名前で新しいブランチを作って。今の状態から枝分かれさせて
AIの動き: 「lighting-experiment」ブランチが作成されて、そちらに切り替わる。mainブランチの状態はそのまま残っている。
あなた:
ライトをすべて赤色に変えて。壁にPoint Lightを10個追加して、強度を3にして
AIの動き: 大胆なライティング変更がされる。mainブランチには影響しない。
あなた:
この状態をセーブして。「赤いライティング実験」というメッセージで
AIの動き: lighting-experimentブランチにセーブが記録される。
ステップ3: ブランチを切り替える
実験の結果を見てから、元の状態に戻ってみよう。
あなた:
mainブランチに切り替えて
AIの動き: シーンがmainブランチの最後のセーブ状態に戻る。赤いライティングはなくなって、元の状態に戻っているはず。
あなた:
スクリーンショットを見せて。元の状態に戻っているか確認したい
あなた:
lighting-experimentブランチに戻って
AIの動き: 赤いライティングの状態に戻る。
「lighting-experiment」「layout-v2」「sound-test」のように、試したいことごとにブランチを分けておくと、複数の方向性を並行して試せるよ。
あなた:
今あるブランチの一覧を見せて
ステップ4: 別の実験ブランチも作る
mainに戻って、別の実験もしてみよう。
あなた:
mainブランチに切り替えて
あなた:
「layout-rearrange」という新しいブランチを作って
あなた:
家具の配置をすべて壁際に寄せて。部屋の中央を広く空けて
あなた:
この状態をセーブして。「家具を壁際に移動」というメッセージで
今、3つのブランチがある状態:
- main -- 元の状態
- lighting-experiment -- 赤いライティング実験
- layout-rearrange -- 家具の配置変更
ステップ5: セーブの差分を比較する
ブランチ間の違いを確認しよう。
あなた:
mainブランチとlayout-rearrangeブランチの差分を見せて。何が変わったか一覧にして
AIの動き: 変更されたオブジェクトの一覧が表示される。
変更されたオブジェクト:
- Sofa: 位置が (3, 0, 2) から (0.5, 0, 4) に変更
- Table: 位置が (0, 0, 0) から (4.5, 0, 0) に変更
- Bookshelf: 位置が (2, 0, 3) から (0.5, 0, 2) に変更
追加: なし
削除: なし
あなた:
lighting-experimentブランチとmainブランチの差分も見せて
AIの動き: ライトの色や追加されたPoint Lightの情報が表示される。
差分比較は「何が変わったか」を正確に把握するのに役立つ。特に時間を空けて作業を再開するとき、前回何をしたか思い出すのに便利だよ。
ステップ6: ブランチをマージする
layout-rearrangeの家具配置が気に入ったので、mainに取り込もう。
あなた:
mainブランチに切り替えて
あなた:
layout-rearrangeブランチの変更をmainにマージして
AIの動き: layout-rearrangeで行った家具の配置変更がmainブランチに取り込まれる。
あなた:
マージした結果をスクリーンショットで見せて
マージの競合(コンフリクト)
もし両方のブランチで同じオブジェクトを別々に変更していた場合、競合が発生することがある。
あなた:
lighting-experimentブランチもmainにマージして
AIの動き: もし競合がなければそのままマージされる。競合がある場合は、AIが競合箇所を教えてくれる。
競合が発生しました:
- PointLight_1: mainでは削除、lighting-experimentでは色を変更
どちらを採用しますか?
あなた:
lighting-experimentの変更を採用して
AIの動き: 競合が解決されてマージが完了する。
マージは大きな変更になることがある。マージ前に現在の状態をセーブしておけば、マージ結果が気に入らなかったときに戻れるよ。
ステップ7: 詳細な履歴を見る
プロジェクトの変更履歴を詳しく確認してみよう。
あなた:
mainブランチの全履歴を詳しく見せて。各セーブで何が変更されたかも含めて
AIの動き: すべてのセーブポイントが時系列で表示される。各セーブの変更内容サマリーも付いてくる。
main ブランチの履歴:
5. [マージ] layout-rearrangeをマージ
- 家具の配置を変更(3オブジェクト)
4. [マージ] lighting-experimentをマージ
- ライトの色と数を変更(12オブジェクト)
3. ライティングを調整した
- Directional Lightの角度を変更
2. 家具を配置した
- Sofa, Table, Bookshelfを追加
1. 部屋の壁と床を作った
- Floor, Wall_N, Wall_E, Wall_S, Wall_Wを追加
あなた:
2番目のセーブの時点でのスクリーンショットを見せて
AIの動き: 履歴の2番目の状態が一時的に復元されてスクリーンショットが撮られる。
ステップ8: 不要なブランチを整理する
マージが終わったブランチは削除して整理しよう。
あなた:
マージ済みのlighting-experimentとlayout-rearrangeブランチを削除して
AIの動き: 2つのブランチが削除される。mainブランチにはマージ済みの変更が残っているので、何も失われない。
チームプロジェクトでのベストプラクティス
複数人で作業する場合、バージョン管理はさらに重要になる。
作業分担とブランチ
チームメンバーごとにブランチを分けて作業しよう。
- 担当A: 「feature/lighting」ブランチでライティング作業
- 担当B: 「feature/furniture」ブランチで家具の配置
- 担当C: 「feature/sound」ブランチでサウンド設定
それぞれの作業が完了したら、順番にmainにマージする。
セーブメッセージのルール
チームで作業する場合、セーブメッセージの書き方を統一すると履歴が読みやすくなる。
[カテゴリ] 変更内容の要約
例:
[ライティング] 室内のPoint Lightを暖色に変更
[配置] 2階の本棚を追加
[サウンド] BGMのループ設定を修正
[修正] 壁の隙間を埋めた
マージの順序
大きな変更を含むブランチから先にマージすると、競合が発生しにくい。細かい調整のブランチは後からマージしよう。
まとめ
このチュートリアルで学んだこと:
- ブランチ -- 実験用の枝分かれを作って安全に試す
- ブランチの切り替え -- 異なる状態を瞬時に行き来する
- 差分比較 -- ブランチ間やセーブ間の変更点を確認する
- マージ -- ブランチの変更を本筋に取り込む
- 競合の解決 -- 同じオブジェクトへの異なる変更を調整する
- 詳細な履歴 -- プロジェクトの全変更を振り返る
- チーム作業のベストプラクティス -- ブランチ分担とセーブメッセージの統一
バージョン管理は地味だけど、プロジェクトが大きくなるほど威力を発揮する。「壊しても戻せる」という安心感があれば、大胆な実験もどんどんできるようになるよ。