⚠️ 注意:この文書は生成AI(Claude Opus 4.6/Sonnet 4.6)によって下書き・構成を作成し、筆者が内容を確認のうえ修正を加えています。
目次
- はじめに
- 1. Perforceってそもそも何?
- 2. 用語をざっくり理解する
- 3. 環境構築 — P4Vのインストールと接続
- 4. 基本操作チュートリアル(P4V編)
- 5. ゲーム開発での重要トピック
- 6. チームで使うときのマナーとTips
- 7. コマンドラインリファレンス(参考)
- 8. さらに学ぶために
- おわりに
- 参考文献
はじめに
この記事は、Perforceをこれから使い始める方に向けて、セットアップから日常操作までを一通りまとめた入門ガイドです。
筆者自身もPerforceは初級者レベルで、まだ知らないことも多くあります。誤りが含まれる可能性もあるため、公式ドキュメントやチームのメンバーとも確認しながら参考にしていただければ幸いです。
「Perforceって名前は聞くけど、何から始めればいいの?」
「P4Vを開いたけど、画面の意味がまったくわからない……」
そんな方の最初の一歩として参考になれば嬉しいです。
この記事の対象読者
- ゲーム開発の現場で「Perforce使って」と言われた人
- バージョン管理自体が初めて、またはGitやSubversionしか使ったことがない人
- コマンドラインよりGUI(P4V)で作業したい人
なお、この記事は主にUnreal Engineと組み合わせてPerforceを使う方を念頭に書いています。他のエンジンや用途でも基本操作は共通ですが、一部の説明やリンク先はUnreal Engine向けの内容が含まれる点はご了承ください。
この記事を読むとできるようになること
- Perforceの基本的な仕組みと用語が理解できる
- P4Vをインストールしてサーバーに接続できる
- ファイルの取得・編集・送信といった日常操作が一人でできる
- トラブルが起きたとき、慌てずに対処できる
「Perforce」の名称について
ネットで調べていると「Perforce」「Helix Core」「Perforce P4」といった名前が出てきて混乱するかもしれません。これらの経緯を簡単に整理しておきます。
もともとはバージョン管理ツールそのものが「Perforce」という名前でした。その後、Perforce社が製品ラインナップを拡充する中で、バージョン管理システム部分は「Helix Core」というブランド名に変更されました。そして現在は再び「Perforce P4」という名称にリブランドされています。
つまり、Perforce → Helix Core → Perforce P4 と名前が変わってきましたが、中身は同じバージョン管理システムの話です。過去の記事やドキュメントでは旧名称が使われていることも多いので、「全部同じものを指しているんだな」と思っておけば大丈夫です。この記事では単に「Perforce」と表記します。
1. Perforceってそもそも何?
バージョン管理とは
バージョン管理を一言で説明すると、「プロジェクトのセーブポイントを自動で管理してくれる仕組み」です。
- 「いつ・誰が・何を変えたか」がすべて記録に残る
- 過去の状態にいつでも戻せる
- 複数人が同じプロジェクトで同時に作業できる
ゲームを作っていると、テクスチャを差し替えたらキャラの見た目がおかしくなった、なんてことがありますよね。バージョン管理があれば「あの正常だった状態」にすぐ戻れます。
なぜゲーム開発でPerforceが選ばれるのか
ゲーム開発ではPerforceが業界標準のひとつになっています。その理由を整理してみます。
- 大容量ファイルに強い — PSD、FBX、WAVなどのバイナリファイルを数千〜数万単位で扱っても安定して動作します。Gitでは大容量バイナリの管理に苦労しがちですが、Perforceはそもそもそういう用途に設計されています。
- 排他ロック(Exclusive Checkout) — バイナリファイルは「テキストのマージ」ができないため、同時編集を防ぐ仕組みが重要です。Perforceにはファイル単位でロックをかけ、他の人の編集を防ぐ機能が組み込まれています。
- GUIクライアント(P4V)が充実 — コマンドラインに慣れていないデザイナーやアーティストでも、GUIで直感的に操作できます。
- ゲームエンジンとの連携 — Unreal EngineやUnityにはPerforceとの統合機能が標準で用意されています。
Git・Subversionとの違い(ざっくり)
他のバージョン管理ツールを使ったことがある方向けに、違いをざっくりまとめます。
| 項目 | Perforce | Git | Subversion(SVN) |
|---|---|---|---|
| 種類 | 集中型 | 分散型 | 集中型 |
| リポジトリ | サーバーに履歴が集約される | ローカルに全履歴を持つ | サーバーに履歴が集約される |
| 大容量バイナリ | 得意(標準機能) | 苦手(LFS で補完) | 扱えるが大規模になると重い |
| ファイルロック | 排他ロック機能あり(より強力) | 標準機能にはない |
svn lock で対応可能 |
| ブランチ操作 | Streams で管理(やや重め) | 軽量・高速 | ディレクトリコピー方式(やや重い) |
| 部分チェックアウト | 可能(Workspace View で制御) | 不可(全履歴を取得) | 可能(特定ディレクトリのみ取得) |
| 学習コスト | 操作は直感的だが用語に慣れが必要 | 概念がやや難しい | 比較的わかりやすい |
| 大規模プロジェクト | 大規模でも安定したパフォーマンス | 履歴が増えると重くなりがち | 規模が大きくなると性能が落ちやすい |
どれが「優れている」ということではなく、プロジェクトの性質によって向き不向きがあります。大容量のアセットを大人数で扱うゲーム開発では、Perforceの特性が活きる場面が多いです。SVNも集中型で考え方は近いですが、大規模プロジェクトでのパフォーマンスやロック機能の充実度でPerforceに軍配が上がるケースが多いです。
2. 用語をざっくり理解する
Perforceには独自の用語が多く、最初はこれだけで混乱します。まずはざっくり意味を掴んでおきましょう。実際の操作を通じて自然に身につくので、今の段階で完璧に覚える必要はありません。
基本用語一覧
| Perforce用語 | 意味 | Git で近い概念 | SVN で近い概念 |
|---|---|---|---|
| Depot | サーバー上のファイル保管庫。プロジェクト全体の「倉庫」のようなもの | リモートリポジトリ | リポジトリ |
| Workspace(Client) | ローカルPC上の作業フォルダとサーバーの対応付け | ワーキングディレクトリ + .git 設定 | 作業コピー |
| Changelist(CL) | 変更のまとまり。複数のファイル変更を1つのセットとして扱う | コミット(に近い) | リビジョン |
| Sync | サーバーの最新ファイルをローカルにダウンロードする | git pull | svn update |
| Checkout | 「このファイルを編集します」とサーバーに宣言する | (Gitにはない概念) | svn lock(に近い) |
| Mark for Add | 新しいファイルをバージョン管理の対象に追加する | git add(未追跡ファイルの追加) | svn add |
| Submit | Changelistをサーバーに送信して確定する | git commit + git push | svn commit |
| Revert | 編集をやめて元の状態に戻す | git checkout -- (復元) | svn revert |
| Shelve | 変更を一時的にサーバーに退避する(Submitはしない) | git stash | (SVNにはない概念) |
| Resolve | 他の人の変更と自分の変更が衝突したとき、解決する操作 | マージコンフリクトの解消 | svn resolve |
| Stream | Perforce版のブランチ管理の仕組み | ブランチ | ブランチ(ディレクトリコピー) |
最初につまずいた用語メモ
💡 よくあるつまずき
「Checkout」はGitと意味が異なります。Gitでは「ブランチを切り替える」意味ですが、Perforceでは「ファイルを編集状態にする(ロックする)」という意味です。Git経験者は混同しやすいので要注意です。
3. 環境構築 — P4Vのインストールと接続
3.1 P4Vのダウンロードとインストール
P4V(Perforce Visual Client)は、Perforceの公式GUIクライアントです。
- Perforce公式サイトのダウンロードページにアクセスします
- 自分のOS(Windows / macOS)に合ったインストーラをダウンロードします
- インストーラを実行し、画面の指示に従ってインストールします
- インストールオプションでは、特に理由がなければデフォルトのままでOKです
- 「P4V」「P4Merge」「P4Admin」などが含まれますが、すべてインストールして問題ありません
3.2 サーバーへの接続
P4Vを起動すると、接続ダイアログが表示されます。以下の3つの情報を入力します。
| 項目 | 説明 | 例 |
|---|---|---|
| Server | Perforceサーバーのアドレスとポート | ssl:perforce.example.com:1666 |
| User | 自分のユーザー名 | yamada |
| Workspace | 作業用ワークスペース名(次の手順で作成) | yamada_dev_pc |
これらの情報はチームのインフラ担当に確認してください。
💡 よくあるつまずき
「Server」の欄に
ssl:をつけ忘れて接続できない、というケースがあります。SSL接続が必要なサーバーではssl:プレフィックスが必須です。接続できないときはまずここを確認しましょう。
3.3 Workspaceの作成
Workspaceは「サーバー上のどのフォルダを、ローカルのどこに対応させるか」を定義する設定です。
- 接続ダイアログの「New」ボタンをクリック
- 以下の項目を設定します:
| 設定項目 | 説明 |
|---|---|
| Workspace name | わかりやすい名前をつける(例:yamada_MyProject_win) |
| Workspace root | ローカルの作業フォルダのパス(例:C:\Perforce\MyProject) |
| Stream | チームが使っているStreamを選択(わからなければチームのインフラ担当の人に聞く) |
- 「OK」で作成を確定
💡 よくあるつまずき
Workspace rootに日本語パスやスペースを含むパスを設定すると、一部のツールで不具合が出ることがあります。
C:\Perforce\ProjectNameのように、英数字だけのシンプルなパスにするのが安全です。
4. 基本操作チュートリアル(P4V編)
ここからは、日常的に使う操作を順番に見ていきます。
4.1 ファイルを取得する(Sync)
まずはサーバーからファイルをローカルにダウンロードします。
手順:
- P4Vの左側にある「Depot」ツリーから、同期したいフォルダを右クリック
- 「Get Latest Revision」を選択
- ダウンロードが完了するまで待つ
初回のSyncではプロジェクト全体をダウンロードするため、プロジェクトの規模によっては数十分〜数時間かかることもあります。
💡 Tips
毎日の作業開始時にSyncする習慣をつけましょう。古い状態のまま作業すると、後でコンフリクト(衝突)が起きやすくなります。
4.2 ファイルを編集する(Checkout)
Perforceでは、ファイルを編集する前に「Checkout」(チェックアウト)する必要があります。これは「このファイルを今から編集しますよ」とサーバーに宣言する操作です。
手順:
- 編集したいファイルを右クリック
- 「Check Out」を選択
- ファイルのアイコンに赤いチェックマークがつけば成功
Checkoutすると、そのファイルは「Default Changelist」に追加されます。あとはいつも通りのツール(Photoshop、Maya、テキストエディタなど)で編集してOKです。
⚠️ 注意
Checkoutせずにファイルを直接編集すると、Perforceがその変更を認識できません。P4Vからの操作を忘れた場合は、後述の「Reconcile」で対処できます。
4.3 新しいファイルを追加する(Mark for Add)
プロジェクトに新しいファイルを追加するには、「Mark for Add」という操作でPerforceに「このファイルを管理対象に加えてください」と伝える必要があります。ローカルにファイルを置いただけでは、Perforceはそのファイルの存在を認識しません。
方法①:P4Vから直接 Mark for Add する
- Workspace root以下の適切な場所にファイルを配置
- P4Vの「Workspace」タブでそのファイルを見つける
- ファイルを右クリック → 「Mark for Add...」を選択
- Changelistを指定(通常は「Default Changelist」でOK)して確認
ファイルのアイコンに追加を示すマークがつけば成功です。この時点ではまだサーバーには送信されていません。Submitして初めてチームに共有されます。
方法②:Reconcile で一括検出する
複数のファイルをまとめて追加したい場合や、すでにローカルにファイルを置いてしまった場合は「Reconcile」が便利です。
- 該当フォルダを右クリック → 「Reconcile Offline Work...」を選択
- P4Vがローカルの変更を自動検出し、追加すべきファイルを一覧表示する(※最新のP4Vだと一覧表示なし(Previewなし)で一括でReconcileできるようになっているようです)
- 追加したいファイルにチェックを入れて「Reconcile」を実行
Reconcileでは新規ファイルの追加だけでなく、ファイルの編集や削除もまとめて検出できます。
💡 よくあるつまずき
新しいファイルをフォルダに入れたのに、他のメンバーから「ファイルがないんだけど?」と言われる、というケースがあります。Mark for Add → Submitの流れを忘れていることが原因です。ファイルを新規作成したら「Mark for Add」を忘れずに!
4.4 変更を送信する(Submit)
編集が終わったら、変更をサーバーに送信(Submit)します。
手順:
- ツールバーの「Submit」ボタン、またはメニューから「Submit Pending Changelist」を選択
- 以下を確認・入力します:
- Description (Write a changelist description):何を変更したかの説明を書く(必須!)
- Files (Choose files to submit):送信するファイルの一覧を確認
- 「Submit」をクリック
良いDescriptionの書き方
[Gameplay] プレイヤーのジャンプ高さを調整
- 最大ジャンプ高さを 300 から 250 に変更
- 二段ジャンプ時の挙動を修正(着地判定が抜ける不具合の対応)
「何を変えたか」だけでなく「なぜ変えたか」「どう変えたか」まで書くと、後から履歴を追うときに非常に助かります。
💡 よくあるつまずき
Descriptionに「修正」とだけ書いてSubmitしてしまうケースがありがちです。後から履歴を見たときに何の修正かわからなくなるので、未来の自分とチームのために丁寧に書く癖をつけましょう。
4.5 変更履歴を見る(History / Revision Graph)
ファイルの変更履歴を確認する方法は2つあります。
File History(ファイル履歴):
- ファイルを右クリック → 「File History」
- 過去のすべてのリビジョンが一覧で表示される
- 各リビジョンの詳細(日時、ユーザー、説明)を確認できる
Revision Graph(リビジョングラフ):
- ファイルを右クリック → 「Revision Graph」
- ブランチやマージの履歴がビジュアルで確認できる
4.6 ファイルの差分を確認する(Diff)
Submit前に「自分が何を変えたか」を確認したいときに使います。
- Changelistの中のファイルを右クリック → 「Diff Against Have Revision」
- テキストファイルの場合は差分がハイライト表示される
- 画像ファイルの場合はP4Mergeの画像比較ビューが開く
5. ゲーム開発での重要トピック
ここはゲーム開発で特に重要になるセクションです。
5.1 排他ロック(Exclusive Checkout)
バイナリファイル(.uasset、.umap、PSD、FBX、WAVなど)は、テキストファイルと違って「2つの変更を自動で統合(マージ)」することができません。そのため、Perforceでは排他ロックを使って「一度に一人だけが編集できる」ようにします。
排他ロックの仕組み:
- Aさんがファイルを Checkout(ロック取得)
- Bさんが同じファイルを Checkout しようとする → ブロックされる
- Aさんが Submit または Revert する → ロックが解放される
- Bさんが Checkout できるようになる
⚠️ よくあるトラブル
「必要なファイルが誰かにロックされていて作業が進まない!」という場面はよくあります。チーム内のチャットで声をかけて、不要なロックを解放してもらいましょう。退社前にCheckoutしっぱなしのファイルがないか確認する習慣も大切です。
5.2 大容量ファイルの扱い方
ゲーム開発では、数百MBのファイルも珍しくありません。以下の点を意識すると、自分にもチームにも優しい運用ができます。
-
不要な中間ファイルはSubmitしない —
.tmp、.bak、キャッシュファイルなどは.p4ignoreで除外設定する(※チームで何かしら.p4ignoreが整備されているはずなので各自が意識する必要はそこまでないはず) - 一度に大量のファイルをSubmitしない — サーバーに負荷がかかり、他のメンバーのSyncにも影響する。可能であれば作業単位で分けてSubmitする
5.3 ゲームエンジンとの連携
Unreal Engine の場合
- UEエディタ画面右下のリビジョンコントロールに接続を押す
- 「プロバイダ」で「Perforce」を選択
- 「サーバー情報」「ユーザー名」「Workspace名」を入力
- 設定を承認を押す
- 接続が成功すると、エディタ内から直接Checkout / Submitが可能に
👍 おすすめ!エディタ連携で日常操作がラクになる
UEエディタとPerforceと接続しておくと、P4Vに切り替えなくてもエディタ上で多くの操作が完結するようになります。
💡 Tips
UEエディタから操作できると便利ですが、細かい操作(Shelve、Resolve、履歴確認など)はP4Vの方が圧倒的に使いやすいです。UEエディタでは簡易操作・Diff確認、P4Vで本格操作、と使い分けるのがおすすめです。
6. チームで使うときのマナーとTips
運用マナー
- 作業開始時にSyncする — 古いファイルで作業するとコンフリクトの元になります
- Descriptionは丁寧に書く — 未来の自分とチームメイトへの贈り物です
- 不要なロックは速やかに解放する — 退社前にPending Changelistを確認しましょう
- 大量ファイルの一括Submitを避ける — 作業内容ごとにChangelistを分けると、履歴が追いやすくなります
- 相談を恐れない — 慣れないうちは操作の前に一声かけると安心です
.p4ignore の活用
.p4ignore ファイルを使うと、バージョン管理の対象外にしたいファイルを指定できます。記法はGitの .gitignore に近いですが、いくつか違いがありますので注意です。基本的にチームで用意されたものがあるはずなので、まずはそちらを使いましょう。以下は参考例です。
# 中間ファイル
*.tmp
*.bak
*.log
# OS生成ファイル
Thumbs.db
.DS_Store
# ビルド出力
/Build/
/Intermediate/
# IDE設定(チームによる)
.vs/
.idea/
環境変数 P4IGNORE に .p4ignore を設定しておくと自動で読み込まれます。設定するには、コマンドプロンプトまたはPowerShellで以下を実行してください。
p4 set P4IGNORE=.p4ignore
設定後は新しいコマンドプロンプト(またはP4V)を起動すると反映されます。
Shelve の活用
作業中の変更を一時的にサーバーに退避できる「Shelve」機能は、以下の場面で便利です。
- 急に別の作業を頼まれたとき
- 変更内容をレビューしてもらいたいとき
- 別のPCで作業を続けたいとき
手順:
- Pending Changelistを右クリック → 「Shelve Files」
- 退避したファイルは他の人も閲覧できる(Unshelveで取り出し可能)
8. コマンドラインリファレンス(参考)
P4Vで十分作業できますが、コマンドラインの方が速い操作もあります。興味が出てきたら試してみてください。
| 操作 | コマンド | 説明 |
|---|---|---|
| 最新取得 | p4 sync |
ワークスペース全体を最新に同期 |
| ファイル取得 | p4 sync //depot/path/file.txt |
特定ファイルだけ同期 |
| 編集開始 | p4 edit file.txt |
ファイルをCheckout |
| 新規追加 | p4 add newfile.txt |
新しいファイルを追加 |
| 送信 | p4 submit -d "説明文" |
変更をSubmit |
| 変更取消 | p4 revert file.txt |
編集を破棄 |
| 状態確認 | p4 status |
ローカルの変更状態を確認 |
| 開いているファイル | p4 opened |
Checkout中のファイル一覧 |
| 履歴確認 | p4 filelog file.txt |
ファイルの変更履歴を表示 |
9. さらに学ぶために
おすすめ学習リソース
一般向け
- PERFORCE 2013.2 P4V 入門:Perforce公式が公開している日本語の入門書(PDF)です。P4Vの基本操作が網羅されており、手元に置いておくと便利です
Unreal Engine
- ヒストリア社 — Helix Core(Perforce)の講演資料と社内運用レギュレーション公開:UE4×Perforceの実践的な運用事例と社内レギュレーションが公開されており、チームでの運用ルール作りの参考になります
- Epic Games 公式ドキュメント — Unreal Editor 内のソース コントロール
- Unreal Game Sync (UGS):PerforceとUnreal Engineを組み合わせて使う現場では、UnrealGameSync(UGS)を導入しているチームも多いです。UGSはPerforceと連携してビルドや同期を管理するツールで、チームの規模が大きくなるほど活躍します。公式ドキュメントで概要を把握しておくと役立ちます
用語クイックリファレンス
記事中で登場した用語をアルファベット順にまとめます。
| 用語 | 意味 |
|---|---|
| Add | 新しいファイルをバージョン管理に追加する |
| Changelist (CL) | 変更をまとめる単位 |
| Checkout | ファイルを編集状態にする |
| Depot | サーバー上のファイル保管庫 |
| Diff | ファイルの差分を確認する |
| Exclusive Lock | 排他ロック。一人だけが編集できる |
| Mark for Add | 新しいファイルをバージョン管理の対象に追加する |
| Reconcile | P4V外で行った変更をPerforceに認識させる |
| Resolve | 変更の衝突を解決する |
| Revert | 変更を破棄して元に戻す |
| Shelve | 変更を一時退避する |
| Stream | ブランチの管理単位 |
| Submit | 変更をサーバーに送信する |
| Sync | サーバーから最新ファイルを取得する |
| Workspace | ローカルの作業環境の設定 |
おわりに
ここまで読んでいただき、ありがとうございます。
この記事で紹介した内容をすべて一度に覚える必要はありません。日常的に使うのは以下の操作がほとんどです。
- Sync — 最新を取得する
- Checkout / Mark for Add — 編集を宣言する/新規ファイルを追加する
- Submit — 変更を送信する
まずはこの3つを確実にできるようになれば、Perforceと仲良くやっていけます。


















