ゲームエフェクトデザイナーのブログ | A Real-Time VFX Artist's Blog

About Making Materials on UE, Making Tools with C#, etc

ローカル環境のみでPerforce+P4Vを使用できるようにする

自宅で .NET/C# を使ってファイルのチェックアウトやサブミットを試したいと思ったのですが、そのためにまずは「Perforce + P4V」の環境を構築したいと思いました。

要件としては以下のような感じです。

・私物のデスクトップPC1台のみ
・サーバー用に別のマシンは無い
レンタルサーバーは面倒なので借りたくない
VirtualBox導入で仮想サーバを作るのも面倒なので嫌だ


しかしP4Vの基本操作だけは分かるものの、Perforceのサーバー側のインストールやらセットアップやらはやったことも無いし知識も全く無いので初手から困りましたが、無事にうまくいったのでメモしておきたいと思います。

間違いだらけの可能性あるので、何かあればツッコミいただけると助かります。。


※ちなみに実際に下記手順を試される前に、Helix Core(Perforce)の基本的な概念をまとめた記事2つを先に読んでいただいた方が良いかと思います

Helix Core (Perforce) の基本構成 
Helix Core(Perforce)の主な要素について


ここからが本題になりますが、まず最初に分かったのはこちら。

・Perforce は現在は Helix Core という名称
5ユーザー 20ワークスペースまでは常に無料
 ※1000ファイル以内であれば無制限みたいです!(コチラより)
・Helix Core Server と P4V の2つをインストールする必要がある
・C / C++ / .NET / Python 向けにAIPが公式に用意されている


という訳でまずは2つのインストーラと.NETプラグインをDLしました。
こちらで必要事項を記入すれば全てDL可能です。

こんな感じです。

f:id:moko_03_25:20200821205419p:plain

Helix Core Server


最初は「helix-core-server-x64.exe」からインストールします。

「インストール時の設定はどうすれば良いのだろう‥」と色々ググりつつも迷っていたら、インストーラDL時に入力したメールアドレス宛に東陽テクニカさんからご挨拶メールが届き、ご質問もOKとのことだったのでローカル環境のみでも導入できるのか伺ったところ「できますよ」とのことで、下記マニュアルを教えていただきました。

https://kb.toyo.co.jp/wiki/pages/viewpage.action?pageId=17466656

ちなみにこちらのマニュアル内に記載されているリンク先からインストーラが直接DLできますが、Helix Core 公式サイトからDLできるものよりバージョンが若干古かったのと .NET向けAPIが見当たらなかったので、公式からDLした方をインストールしました。

今回、Cドライブ内のフォルダをサーバーに見立てて Dドライブにワークスペースルートを作成したのですが、Helix Core Server は上記マニュアルと全く同じように「C\P4ROOT\」にインストール。

また、ユーザー名の指定はパソコンのログインユーザ名がデフォルトで入力されており、そのままで進めました。個人ユースならそれで問題ないようです。

コマンドプロンプトもそのまま一通り手順通りに実行(不要ファイル削除だけ手っ取り早くエクスプローラ上で行いました)。

ちなみに「管理者として実行」はインストール時によく忘れることNo.1だと思うのでご注意を。コマンドプロンプトも同様です。

f:id:moko_03_25:20200821205933p:plain

起動と終了のコマンドだけこちらにもメモっておきます。

// Helix Core Server の起動
sc start Perforce

// Helix Core Server の停止

sc stop Perforce

 

P4V(GUIクライアント)


次に「p4vinst64.exe」をインストールして設定します。

こちらに関してはYouTubeやらマニュアルやら漁りましたが今一つよく分からなかったのでダイアログを日本語訳しながら適当にそれっぽい手順を試したらうまくいったので手順をメモっておきます。

まず利用ユーザーを新規登録します。

ここはバージョン管理の利用側としてサーバー管理者名とは別に新規作成してみました。

f:id:moko_03_25:20200821211020p:plain

次に情報を入力します。

f:id:moko_03_25:20200821211029p:plain

ローカルでの個人利用なのでパスワードは無しにしました。
パスワード以外は入力しないと Save できない模様です。

そしてタブを「Personal Server」に切り替えて(ローカルだしPersonal Serverかなと勝手に思ってこちらにしましたが正しいか分かってません‥) Server は「C\P4ROOT\」を入力、User は先ほど登録したばかりのユーザー名を入力します。

2020.8.29追記:

Personal ServerDVCS(分散バージョン管理システム)という機能を使ってGitのようにローカル内の仮のサーバーで作業を反映させてから実際のサーバーに反映させることで、常にサーバーと通信せずに済む方式になるそうです(公式マニュアル)。

なので今回のようにサーバーも含めローカルで完結する場合には機能しないので(一応普通にP4Vは使えましたが)わざわざ Personal Server を指定する意味はないようです。

という訳で Remote Server のタブを選択してOKして進めてください。。

f:id:moko_03_25:20200821211233p:plain

日本語でコメントしたりするために Japanese のままで。

f:id:moko_03_25:20200821211515p:plain

最新バージョンの自動チェックはどちらでも。

f:id:moko_03_25:20200821211606p:plain

匿名の利用データを提供するかについても、どちらでも。

f:id:moko_03_25:20200821211633p:plain

これで無事にP4Vが起動しましたが、まだワークスペースを作成していない状態なのでメニューから New Workspace... を選択して早速作ります。

f:id:moko_03_25:20200821211738p:plain

Workspace name は分かりやすい名前を付けて、Workspace root はDドライブにしました。

f:id:moko_03_25:20200821212002p:plain

しかしサーバ側にはまだ何もファイルが無いため「空だから何か追加しろ」といったダイアログが表示されます(P4Vでアップすればいいと思ってたので用意してなかった)。

f:id:moko_03_25:20200821212111p:plain

デスクトップに適当にフォルダを作ってその中にテキストファイルを2つ用意。

f:id:moko_03_25:20200821212206p:plain

先ほどのダイアログ右端の Brows ボタンでフォルダを読み込みます。

f:id:moko_03_25:20200821212258p:plain

すると Depot Type を選べと言われます。

よく分かりませんが個人で少し試す程度なら何でも良いかなと思ったのと、デフォルトで選択されている新しい方が良いだろうと思って「Use a streams depot」を選択。

※ Streams Depot と Classic Depot の違いについてはコチラに記載しています

f:id:moko_03_25:20200821212644p:plain

「準備できたぜ!」とメッセージが出て、OK > Finish で設定完了です!

f:id:moko_03_25:20200821212724p:plain

無事に反映されています。最初にアップしたファイルは取得済みの状態ですね。

f:id:moko_03_25:20200821212945p:plain

ディポの方は拡張子に「,v」(version の V?)が付いたファイルになっていますね。

f:id:moko_03_25:20200821213152p:plain

中身はこんな感じでした。バージョン情報が記載されたメタデータなんですね。
本体は別フォルダに差分だけ積み上がっていく感じ?

f:id:moko_03_25:20200821213547p:plain

試しに Ctrl + E でチェックアウト。

f:id:moko_03_25:20200821214232p:plain

ワークスペースルート側を見てみると‥

f:id:moko_03_25:20200821214303p:plain

読み取り専用が外れてます。

f:id:moko_03_25:20200821214329p:plain

Ctrl + R でリバートして元に戻して、ひとまずの軽い動作確認はこれにて終了。

それから、途中で入力した「sc start Perforce」で Perforce がサービスとして実行されている状態で、基本的にはWindowsのログインの度に起動>停止せずに良いようです。


‥という訳で手順は以上になります。

やりたいことはここからですが、.NET のプラグインにサンプルのソリューションファイルが入っていたのでそちらを参考にしつつ試したいなと思います。

また、Maya IndyUE4 で Perforce の Python 向けAPIを試したいという人もいらっしゃるのでは(そのまま利用できるのか自分は知らないのですが。。)。

そんな場合などに、本記事がお役に立てたら何よりです!

 

ちなみにGraphicTools(Photoshopなど)向けのプラグインもあるんですね。

それから Hansoft も同様に5ユーザーまで無料なんですね。