UnrealEngine4ではSVNとPerforceが対応しているとのことだが、プラグインによってGitも使えるとのことなのでGitを使う。
状況
- UE歴:4分
- Git歴:10分
想定
- Windows7以上
- Git未導入
- UE4Gitプラグイン未導入
- 中央リポジトリは自鯖(CentOS)に作る
Git本体の導入
インストール中に何か聞かれたけど、全部デフォルトにした。
エクスプローラの右クリックメニューにGitを統合したくない場合は、「Windows Explorer integration」のチェックを外した方がいいかも。
Gitクライアントの導入(SourceTree)
Git本体にGUIクライアントや黒画面でコマンドいれるGitBashがついてくるけど、もうちょっと格好いいクライアントを入れたい。
よさげなものを探す。
日本語に対応していて神っぽいのがあった。
- SourceTree http://www.sourcetreeapp.com/
インストーラをダウンロードしてきて実行。
自前でGit本体を内蔵しているみたい。
UE4から使わないのであれば、SourceTreeだけで使えるんですね。
バージョン管理したくないファイルを設定する.gitignoreファイルのグローバル設定について聞かれる。
後から変えられるのでyes
Bitbuket、GitHub、Stashは今回使わない(自鯖にリポジトリ作る)為、スキップ
SSHキーもってないし、後から設定できるのでNo
インストールできた。かっこいい。
ついでにユーザ名とメールアドレスと登録しておく。
ツール>オプション
デフォルトユーザ情報を記入
UnrealEngineを立ち上げて、プロジェクトを作る。
Gitプラグインを有効にした後、エディタを再起動する。
再起動した後。
バージョン管理システムにGitを指定して、接続する。
最後に接続を承認ボタンを押して終わり。
プロジェクトフォルダを開いてみると.gitフォルダができている。
エディタ内のコンテンツブラウザにも?マークがでている。
↑↓マークが緑になった。
これにて導入完了。
先ほどInitialize Gitしたプロジェクトフォルダを指定します。
追加後。でました。
Gitではバージョン管理の対象としたくないファイルやフォルダを.gitignoreというファイルに書きます。
以下のフォルダ内のファイルは管理する必要がないみたいなので.gitignoreに記入しておきます。
https://answers.unrealengine.com/questions/16787/how-to-setup-git-for-an-ue4-project.html
.gitignoreで指定したフォルダ内のファイルがバージョン管理から除外され、?マークの横の数字が減りました。
(Gitのことについてはちゃんとした書籍や解説サイトを読むことを(私に)お勧めします。)
作業ツリーからコミットしたいファイルのチェックボックスを選択して上の枠に移動します。(ステージングというそうです。)
その後、コミットコメントを書いてコミットボタンを押します。コミット完了です。
試しに、先ほど作った.gitignoreファイルをコミットしてみました。
masterブランチの中に入りました。
残りの作業ツリーのファイルは、UE4のプロジェクト作ったときに作られた初期ファイルなので一気にコミットしてしまいました。
新規にブループリントを作りました。最初は?マークとなっています。
保存を行ったり、右クリック>ソースコントロール>追加用にマークを選択すると+マークになります。
+マークがついている状態で右クリック>ソースコントロール>チェックインを押すとコミットできます。コミットされたファイルは✔マークがつきます。
アセットを削除した場合は、UnrealEngineのエディタからはコミットできない(と思われる)為、外部でコミット行います。
メンバーが中央リポジトリにプッシュした内容を自分のローカルリポジトリに取り込むにはプル(ダウンロード)を行います。
自前でGit本体を内蔵しているみたい。
UE4から使わないのであれば、SourceTreeだけで使えるんですね。
バージョン管理したくないファイルを設定する.gitignoreファイルのグローバル設定について聞かれる。
後から変えられるのでyes
Bitbuket、GitHub、Stashは今回使わない(自鯖にリポジトリ作る)為、スキップ
SSHキーもってないし、後から設定できるのでNo
インストールできた。かっこいい。
ついでにユーザ名とメールアドレスと登録しておく。
ツール>オプション
デフォルトユーザ情報を記入
UnrealEngine4にGitプラグインを導入
- UE4GitPlugin https://github.com/SRombauts/UE4GitPlugin/releases
プラグイン開発をされている皆様には本当に頭が下がります。
UnrealEngineのバージョンは4.6.1を使用するので、対応するプラグインをダウンロード。
Readmeに書いてある通り(英語読めない)の場所に配置するだけで、導入完了。
私の場合 C:\Program Files\Epic Games\4.6\Engine\Plugins\Developer\UE4GitPlugin-0.6.0-beta\
UnrealEngineを立ち上げて、プロジェクトを作る。
Gitプラグインを有効にした後、エディタを再起動する。
再起動した後。
バージョン管理システムにGitを指定して、接続する。
最後に接続を承認ボタンを押して終わり。
プロジェクトフォルダを開いてみると.gitフォルダができている。
エディタ内のコンテンツブラウザにも?マークがでている。
↑↓マークが緑になった。
これにて導入完了。
使う
(※私はUE4とGitをほとんど使ったことがないので、ここから先は信憑性が低いです。).gitignoreの設定
せっかくSourceTreeをインストールしたので、使ってみます。先ほどInitialize Gitしたプロジェクトフォルダを指定します。
追加後。でました。
Gitではバージョン管理の対象としたくないファイルやフォルダを.gitignoreというファイルに書きます。
以下のフォルダ内のファイルは管理する必要がないみたいなので.gitignoreに記入しておきます。
/Binaries参考:
/DerivedDataCache
/Intermediate
/Saved
https://answers.unrealengine.com/questions/16787/how-to-setup-git-for-an-ue4-project.html
.gitignoreで指定したフォルダ内のファイルがバージョン管理から除外され、?マークの横の数字が減りました。
ファーストコミット
何かコミットしてみます。(Gitのことについてはちゃんとした書籍や解説サイトを読むことを(私に)お勧めします。)
作業ツリーからコミットしたいファイルのチェックボックスを選択して上の枠に移動します。(ステージングというそうです。)
その後、コミットコメントを書いてコミットボタンを押します。コミット完了です。
試しに、先ほど作った.gitignoreファイルをコミットしてみました。
masterブランチの中に入りました。
残りの作業ツリーのファイルは、UE4のプロジェクト作ったときに作られた初期ファイルなので一気にコミットしてしまいました。
UnrealEngine内からファイルをコミットする
UnrealEngine内からファイルをコミットしてみます。新規にブループリントを作りました。最初は?マークとなっています。
保存を行ったり、右クリック>ソースコントロール>追加用にマークを選択すると+マークになります。
+マークがついている状態で右クリック>ソースコントロール>チェックインを押すとコミットできます。コミットされたファイルは✔マークがつきます。
アセットを削除した場合は、UnrealEngineのエディタからはコミットできない(と思われる)為、外部でコミット行います。
UnrealEngine内から比較を行う
- できる
中央リポジトリにプッシュする
まだ何もゲームはできていないが、このプロジェクトを先輩にも使ってもらうために、中央リポジトリを作ってプッシュ(アップロード)する。
CentOSのサーバがあるのであらかじめリポジトリを作成しておいた。
cd /var/lib/git/public/
mkdir ue4gittest
cd ue4gittest
git init --bare --shared=true
これで、サーバーに/var/lib/git/public/ue4gittest.git という中央リポジトリができたはず。
これに今までプロジェクトをコミットしてきたローカルリポジトリをプッシュ(アップロード)する。
黒い画面にコマンドを打つのが苦手なので、SourceTreeから行う。
これにてプッシュ完了。
作業(ファイルに差分が発生)
↓
ステージング(コミットするファイルを選択)
↓
コミット(ローカルリポジトリに登録)
↓
プッシュ(リモートの中央リポジトリにアップロード)
これを繰り返すことになると思います。
中央リポジトリからクローン
さて、先輩に開発に参加してもらうにはどうすればいいでしょうか。
クローンです!
プロジェクトを保存しておくフォルダを新規作成してください。
あとは以下のように、先ほどプッシュしたリポジトリを設定すれば、クローン(リポジトリの複製をダウンロード)できます。
起動できた。
以上で私と先輩が同じプロジェクトを開発できるようになりました。(そう思いたい。)
お互いがプッシュした修正内容をプルする
プルって書いてあるボタンを押す
pullは使わない方がいいみたい。
参考
フェッチ⇒マージを行うのがよいのか。
この辺りは普通にGitを勉強してから考えよう。
よろしくお願い致します。
以上