Git + CM3D2

SourceTree(Git)を使った、CM3D2バニラとDLC、MOD、プラグインなどの導入・構成管理講座
4
ましなり@CM3D2 @machinerieJp

プラグインの類はmodset/utilityに全部まとめてマージしてあります。一見面倒くさそうですが、プラグイン単位でブランチ作ってから纏めるのは、新作の追加やバージョンアップがあった時にありがたみが出てきます。

2016-06-28 17:27:05
ましなり@CM3D2 @machinerieJp

さて、実際のプレイ環境ではセーブデータが絡むので、これまで用意した素材ブランチの必要なものを組み合わせて起動環境を作ります。

2016-06-28 17:30:24
ましなり@CM3D2 @machinerieJp

たとえばごちうさ環境を作るとして、masterの最新からPlay/1.32/base ブランチを作って、mod/Sybaris とmod/utility をマージします。baseブランチは他の環境(作品ごととかプラグイン開発用とか新規プラグイン試用環境とか)の土台にします。

2016-06-28 17:33:50
ましなり@CM3D2 @machinerieJp

modset/utilityだった。ともかく、古い環境から新しい環境にマージする分にはほとんどの場合『コンフリクト』は発生しないと思います。

2016-06-28 17:36:03
ましなり@CM3D2 @machinerieJp

下準備の整ったPlay/1.32/baseブランチで、一回ソフトを起動しておきます。やっとかないとあちこちで初期化から始まるので。起動して増えたファイルはコミットしておきます。

2016-06-28 17:38:02
ましなり@CM3D2 @machinerieJp

この段階でUnityInjectorの黒い画面にエラーが出てたら、modset/utilityの作り方にミスがあるので直しておきます。問題なかったらPlay/gochiusa ブランチを作ります。

2016-06-28 17:39:43
ましなり@CM3D2 @machinerieJp

この時大事なのは、ソフト起動したままブランチ切り替えたり操作をしない、ことです。これをやると色々おかしなことになります。

2016-06-28 17:40:37
ましなり@CM3D2 @machinerieJp

Play/gochiusaブランチにmodset/gochiusa ブランチをマージして、他にも必要なもの(ハイポリボディ4KスキンでKUPAしたいぜ!てのならmodset/analkupa_4k入れたりね)マージすれば、環境構築はOK。

2016-06-28 17:44:47
ましなり@CM3D2 @machinerieJp

さて、セーブデータはどうしましょうかね。これには個人の考え方があると思いますが、ブランチはいくらでも作れるので、純粋にプレイとエデットを楽しみたいそのままプレイすればいいブランチと、セーブデータを移植してカンスト環境のブランチと作ってもいいんではと思います。

2016-06-28 17:47:59
ましなり@CM3D2 @machinerieJp

ひとつ言えることは、セーブデータには使用DLC/MODが記録されちゃうので、移植したセーブデータでマージし忘れたらエラーになることですね。これはしょうがないので足りないものをマージして構築、または前の環境で抜いてセーブしてから移植という感じ。

2016-06-28 17:50:33
ましなり@CM3D2 @machinerieJp

もうひとつ『コンフリクト』に触れておかなきゃいけません。アップデーター、アペンド、DLCなどのマージ順によっては時々コンフリクトします。基本的にはバイナリファイルとUpdate.lstとinstall.logがぶつかりますが、コツを覚えたら大して難しくはない作業です。

2016-06-28 17:55:19
ましなり@CM3D2 @machinerieJp

原則、新しい方のファイルがマージ先に残ればいいんです。その判断にはUpdate.lstを眺めるのが手っ取り早いです。同じファイル名の番号が新しい方が残るように、古い方の行を消してマージします。

2016-06-28 17:57:41
ましなり@CM3D2 @machinerieJp

バイナリファイルは、Update.lstと同じように新しい方で古い方を上書きします。install.logはぶっちゃけ適当でもいいんですが、両方の行を残しても何の問題もないです。

2016-06-28 17:59:58
ましなり@CM3D2 @machinerieJp

これが出来るようになると、構築済の環境に最新のアップデーターをマージするのも難しくはなくなります(楽とは言ってない

2016-06-28 18:02:25
ましなり@CM3D2 @machinerieJp

ここまで読んで『なんか面倒くさそうだなあ』と思う人は、まあ従来のやり方でもいいんではないでしょうか。でも個人的には、何のプラグインが入ってるかよく分からなくて、起動に何分も待つ環境にはもう戻りたくないですね。

2016-06-28 18:04:42
ましなり@CM3D2 @machinerieJp

というわけで、需要がどれだけあるんだかわからないカスメ用SourceTreeノウハウでした。ちなみにバニラをマージしてAssembly-Csharp.dllのデコンパイル結果を延々コミットしていくブランチを作ると、プラグイン開発がたいへん捗ります。

2016-06-28 20:07:24