ユーザ用ツール

サイト用ツール


ue4:perforce

文書の過去の版を表示しています。


Perforce

Perforce とは

Git, Mercurial, SVN のようにファイルのバージョン管理を行うためのソフトウエアです。 Git, Mercurial といった分散型とは異なり、中央サーバーが必要な集中型1)となっています。 集中型なので、排他的ロックが可能でバイナリデータの扱いに向いています。 また非常に高速であり、UE4 のような巨大なエンジンや、膨大な PC/コンソールゲームのリソースなどをまとめて管理する用途に向いています。 UE4 では標準で Perforce をサポートしており、ゲーム開発でも Perforce と組み合わせて用いられるケースが増えています。

Perforce を利用するにはライセンスの購入が必要です。 ただし 5 user までは無料で利用できるので、個人などの小規模な場合はコストが掛かりません。

Server を起動する

Windows の場合

Windows PC をサーバーにする場合の手順です。一人で使う場合は作業 PC にそのまま入れてください。

  1. helix-versioning-engine-x64.exe を実行
  2. Port Number はそのまま 「 1666 」
  3. Server は「 ssl:1666 」に変更
  4. インストールが終わったら、以下 Command プロンプト (cmd.exe や powershell.exe) から作業します

すでに起動しているサーバーを一旦停止します。

p4 admin stop

データベースと ssl の設定を行います。管理者権限でなくても構いません。先に P4ROOT , P4SSLDIR のフォルダを作っておいてください。

p4 set -s P4ROOT=C:\Perforce\root
p4 set -s P4SSLDIR=C:\Perforce\ssl
p4 set -s P4CHARSET=utf8
p4 set -s P4PORT=ssl:localhsot:1666
p4d -xi
p4d -Gc

データベースの場所や文字コードなど、各種設定を行います。 これはサーバー(Service)側の設定になります。 管理者権限が有効な Console (cmd.exe や PowerShell) で実行してください。( -S オプションの大文字、小文字の違いに注意してください)

p4 set -S perforce P4PORT=ssl:1666
p4 set -S perforce P4ROOT=C:\Perforce\root
p4 set -S perforce P4SSLDIR=C:\Perforce\ssl
p4 set -S perforce P4CHARSET=utf8

サーバーを起動します。これも管理者権限が必要です。

svcinst start -n perforce

ユーザーを追加します。ここから先は管理者権限でなくても構いません。

p4 trust のあとに yes を入力します。

p4 trust

任意のユーザーを追加します。エディタ (メモ帳) が立ち上がるのでそのまま閉じます。(必要ならメールアドレスの修正)

p4 user <ユーザー名>

下記のコマンドで、ユーザーが追加されているかどうか確認できます。

p4 users

アクセス権限を有効化します。 下記のコマンドを実行するとエディタ (メモ帳) が開くので、下の方で自分のユーザーが “super” になっていることを確認してください。 問題なければ何もせずに閉じます。

p4 protect

これで終わりです。 あとは P4V などの client から Perforce Server を利用することができます。

また P4Admin を使うとサーバーの管理も GUI 上で行うことができます。

Linux の場合

Windows よりも高速なので、可能なら Linux をサーバーにした方が良いようです。

  1. p4d と p4 command を download しておいてください

下記手順ではとりあえず一般ユーザー権限でサーバーを起動しています。

サーバー起動

$ mkdir $HOME/perforce
$ mkdir $HOME/perforce/root
$ mkdir $HOME/perforce/ssl
$ chmod 700 $HOME/perforce/ssl
$ export P4ROOT=$HOME/perforce/root
$ export P4SSLDIR=$HOME/perforce/ssl
$ export P4PORT=ssl:1666
$ export P4CHARSET=utf8
$ cd $HOME/perforce/root
$ p4d -xi
$ p4d -Gc
$ p4d

ユーザー作成など

$ export P4PORT=ssl:localhost:1666
$ export P4CHARSET=utf8
$ p4 trust
$ p4 user admin
$ p4 users
$ p4 protect

あとは P4Admin を使って gui 上で設定可能です。

P4V を使う

  • P4V の install
    1. p4vinst64.exe を実行します
    2. Server には 「 ssl:<サーバー名>:1666 」を入れます。同じ PC でサーバーを起動した場合は「 ssl:localhost:1666 」になります。
  • 初回起動時
    1. start menu から P4V を起動します
    2. “Open Connection” 画面では Perforce の User 名を入力します。
    3. Workspace 列の右側にある [ New ] をクリックします。
    4. もし “Perforce Fingerprint Required” ダイアログが出たら Trust this fingerprint にチェックを入れて [Connect]
    5. “Workspace: New” のダイアログが表示されるので下記のように入力して [OK] をクリック
      • Workspace name: <任意>
      • Workspace root: <任意の作業フォルダのパス>
    6. “Open Connection” 画面に戻るので、そのまま [OK]
    7. “Choose Character Encoding” が出たら「UTF-8」

UE4/UE5 向けの設定

Typemap

UE4 のアセットを扱う場合は typemap の設定が必要です。

p4 typemap

テキストエディタ (メモ帳) が開くので、下記のページにある TypeMap の一覧をコピペします。

上記以外にも、排他ロックが必要な binary file は “binary+l” で追加しておいてください。

UE5 からは json への “+w” が必要なので注意。

TypeMap:
	binary+w //....exe
	binary+w //....dll
	binary+w //....lib
	binary+w //....app
	binary+w //....dylib
	binary+w //....stub
	binary+w //....ipa
	binary+w //....pdb
	binary+w //....obj
	binary+w //....a
	binary+w //....response
	binary+w //....o
	binary+w //....bin
	binary+w //....so
	text+w //....target
	text+w //....modules
	text+w //....version
	text+w //....generated.h
	text+w //....xml
	text+w //....log
	text+w //....exe.config
	text+w //....tps
	text+w //....csproj
	text+w //....csproj.References
	text+w //....dev.json
	text+w //....deps.json
	text+w //....runtimeconfig.json
	text+w //....tlh
	text+w //....tli
~

P4IGNORE

Git/Mercurial と違い、除外指定ファイルはフォルダに置いておくだけでは機能しません。 予めコマンドで設定しておく必要があります。 またプロジェクトではなくユーザー単位の判定になるので、使用する方が各自設定を行ってください。

p4 set P4IGNORE=<除外設定ファイルのパス>

p4 set P4IGNORE=D:\Workspace\UE\.p4ignore.txt

除外指定は Git/Mercurial ほど柔軟ではなくかなり制限があります。

git のようなより厳密な除外判定を行いたい場合は、p4 add するための外部ツールを用意した方が良いでしょう。

CHARSET と P4V を使用する場合の注意点

コマンドラインから設定する P4CHARSET は、“utf8” を設定すると BOM 無しになります。BOM を使用する場合は “utf8-bom” を設定します。

P4V で設定する CHARSET の “utf-8” はコマンドラインの設定と逆になるので注意してください。デフォルトの “Unicode (UTF-8)” は BOM 付きです。BOM 無しにするには、“Unicode (UTF-8, no BOM)” を選択する必要があります。

P4 Command Line P4V
UTF-8 BOM 無し utf8 Unicode (UTF-8, no BOM)
UTF-8 BOM あり utf8-bom Unicode (UTF-8)
  • P4V の場合はメニューの Connection → “Choose Character Encoding…” で設定できます。

Perforce の改行コード変換

Perforce ではファイルタイプが text の場合改行コード変換が行われます。

ファイルタイプ判定が間違っているとバイナリファイルでも CR (0x0d) が挿入されてしまうので注意してください。 そのため typemap の設定は重要になります。

例えば utf16 のファイルが unicode ではなく text で登録されてしまうと 「00 0D 00 0A」 → 「00 0D 00 0D 0A」と余計なバイト文字が挿入さ文字化けします。

1)
最新版では分散型としても使えるようです
ue4/perforce.1646036274.txt.gz · 最終更新: 2022/02/28 17:17 by oga