目次
はじめに
「プロジェクトのバージョン管理してますか?」
普段使い慣れたGitで管理してみると、バイナリファイルのあまりのデカさに同期が遅いし、我慢して使ってたらリポジトリぶっ壊れるしでどうしたらいいものかと頭を抱えつつ、何かあってからじゃ遅いとわかっていつつも、なんとなく管理しないでそのままの人が多いのではないでしょうか。
バージョン管理について
UnityならばAssetServerが超おすすめ。
以前はProライセンス約16万円に合わせ、チームライセンス(月$20か、一括$500)が必要で合計20万円以上しましたが、3/4からはProライセンスにチームライセンスが含まれるようになりました。
GitでもOK
betaではありますがUnrealEngineでも対応済み。Unityでももちろんのこと、Gitで何の問題もないし。やることやっていれば
むしろ既存のCIがあるのであれば運用を工夫すればよいし、gitのforkであるgit annexかgit-bigfilesへ移行する手もある。
ちなみに容量無制限を謳うbitbucketは2GBを超えると読み取り専用になるため実質2GB
BitBucket容量制限あるじゃねーかよ!!! https://t.co/gsgpy6NxgZ pic.twitter.com/4QZ8olF8H3
— ゆーじ (@yuujii) 2014, 7月 26
ちょっとリッチなVRコンテンツを作ろうとバイナリデータをpushしていると、2GBの容量制限なんてすぐにオーバー
また、何年か前に使っていたGitのリポジトリが10G越えたあたりでぶっ壊れたということもあり、デカいコミットをpushするときの待ち時間に甦るトラウマがつらい。
なぜPerforceなのか。そもそもPerforceとは?
軽量、大容量のバイナリデータの管理に向いたバージョン管理ツールだそうな。
Googleでも採用されているPerforce社製のマージツールPerforce Visual Merge Tool (P4Merge)を使ってみる – 大人になったら肺呼吸 (id:replication / @id_replication)
2009年の記事で、今となってはgitもshallow cloneが使えるものになってきて超巨大な歴史でも問題なくなってきてるらしい。
日本代理店のナウさは一気にやる気が削がれるので閲覧注意。
UE4での導入について
Unreal Engine | UE4 内のソース コントロールとして Perforce を使用する
https://docs.unrealengine.com/latest/JPN/Engine/Basics/SourceControl/Perforce/index.html
また、UE4の中の人である @junyah さんが作成された UE4でPerforceと連携するための手順.pdf – Google ドライブ https://drive.google.com/file/d/0B1ux4tmFqksyVUxCNFBqTGF6U2c/view
が参考になる。
サーバー構築
自分で鯖を立てます。
Azureとかでもよさそう、ギガ単価5円くらい。
自鯖なら古いノートPC(電気代的に)へHDDつないだり、QNAPなどのNASや
Raspberry Piあたりがおすすめ
QNAP TS-469PROで立てる
以下完全に俺得メモ
hhttps://twitter.com/yuujii/status/569136209106046977
port確認 lsof -i:1666
>> QNAP TurboNASのautorunについて – デジカシ http://mimimopu.com/blog/2013/05/qnap-autorun.html
vi /share/MD0_DATA/.qpkg/autorun/autorun.sh
#!/bin/sh # P4 ln -sf /share/MD0_DATA/.qpkg/perforce /usr/local/perforce echo "export PATH=$PATH:/usr/local/perforce" >> /etc/profile PATH=$PATH:/usr/local/perforce p4d -xi p4d -d -p 1666 -r /usr/local/perforce & # tmpfs mount -t tmpfs tmpfs /tmp -o remount,size=512M
http://htlab.net/blog/2013/05/14/qnap-dnsmasq/
http://sakopc.myqnapcloud.com/wordpress_ks/2013/05/50
vi /share/MD0_DATA/.qpkg/Optware/etc/dnsmasq.conf address=/qnap/192.168.0.200 user=admin group=administrators no-hosts addn-hosts=/share/MD0_DATA/.qpkg/Optware/etc/dnsmasq.hosts vi /share/MD0_DATA/.qpkg/Optware/etc/dnsmasq.hosts
>> QNAP NAS Community Forum • View topic – Perforce http://forum.qnap.com/viewtopic.php?t=4085
PerforceをLinuxサーバーへ入れる
※perforceユーザーは作るべきかも。自宅内で適当にやるので端折る。
mkdir -p /usr/local/perforce cd /usr/local/perforce
wget ftp://ftp.perforce.com/pub/perforce/r14.2/bin.linux26x86/p4 wget ftp://ftp.perforce.com/pub/perforce/r14.2/bin.linux26x86/p4d chmod +x p4 p4d
p4d -d -p 1666 -xi -r /usr/local/perforce & p4 set P4USER=yuji p4 set P4PORT=1666 p4 -P password typemap
TypeMap:
binary+w //depot/....exe
binary+w //depot/....dll
binary+w //depot/....lib
binary+w //depot/....app
binary+w //depot/....dylib
binary+w //depot/....stub
binary+w //depot/....ipa
binary //depot/....bmp
text //depot/....ini
text //depot/....config
text //depot/....cpp
text //depot/....h
text //depot/....c
text //depot/....cs
text //depot/....m
text //depot/....mm
text //depot/....py
binary+l //depot/....uasset
binary+l //depot/....umap
binary+l //depot/....upk
binary+l //depot/....udk
>> Unreal Engine | UE4 内のソース コントロールとして Perforce を使用する
https://docs.unrealengine.com/latest/JPN/Engine/Basics/SourceControl/Perforce/index.html
UE4で複数開発者でプロジェクト制作する場合の管理ツールの話題がちょこちょこありましたので、GGJのチームで利用したPerfoce設定ドキュメントにちょっと加筆修正したものを公開しておきますね。 https://t.co/UKFChxtTdU
— シモダジュンヤ Jun Shimoda (@junyash) January 30, 2015
>> UE4でPerforceと連携するための手順.pdf – Google ドライブ
https://drive.google.com/file/d/0B1ux4tmFqksyVUxCNFBqTGF6U2c/view
UE4からPerforceへ接続
ソースコントロールの設定画面を開く
※もし表示されない場合はPluginsでPerforceが入っているか確認(デフォルトON)
鯖で設定した内容を入力。
ほかにローカルのP4Vから接続してみることで確認が可能。
設定が完了するとSourceControlのアイコンが変わる。
アセットをコミットする(Submit)
エラーが起こった場合
エラーの詳細をメッセージログで確認します。
通知内の「メッセージログを表示」をクリックするか、ツールバーから探してクリック。
エラー The filesystem ‘TEMP’ has only 63.57M free, but the server configuration requires at least 250M available.
これはtmpfsの割り当ての容量不足だそうで、とりあえずsshでログインしてmount -t tmpfs tmpfs /tmp -o remount,size=512Mとか、適当に割り当て直します。
で、QNAPは再起動のたびに巻き戻るのでこの設定をautorun.shへ追加。
それで改めてUnreal Engine4でSubmit。3分くらいで完了。
基本操作
>> アンリアル エンジン 4 内のソース コントロール
https://docs.unrealengine.com/latest/JPN/Engine/Basics/SourceControl/InEditor/index.html
>> UE4 内のソース コントロールとして Perforce を使用する
https://docs.unrealengine.com/latest/JPN/Engine/Basics/SourceControl/Perforce/index.html
>> ソース コントロール
https://docs.unrealengine.com/latest/JPN/Engine/UI/SourceControl/index.html
>> UE4でPerforceと連携するための手順.pdf – Google ドライブ
https://drive.google.com/file/d/0B1ux4tmFqksyVUxCNFBqTGF6U2c/view
コミットコメントで日本語が??に文字化ける
QNAP上のp4dサーバ起動前にp4d -xi で Unicode モードへ変えればOK
p4d -xi p4d -d -p 1666 -r /usr/local/perforce &
>> ソースコントロールのコメントで日本語が使えない – UE4 AnswerHub
https://answers.unrealengine.com/questions/106944/%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%A6%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%8B%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%84.html