📑

Perforce Helix Coreワークスペースの作成方法

13 min read

はじめに

Helix Core (旧名Perforce)とは、大規模バイナリデータを高速で扱えることを強みとする。アセット(ファイル)のバージョン管理ツールです。

このHelix Coreを使い始めるうえで一番の関門になるのが ワークスペース です。
Helix Coreでアセット群のバージョン管理を始めるためには、各ユーザが ワークスペース を作成しなければならないのですが、Helix Core固有の用語および概念であるため、何から手を付けて良いのか戸惑ってしまいます。

そこで、この記事ではWindows上で制作活動を行う場合を例にして、ワークスペースワークスペースの作成方法 を解説します。

説明を簡素化するために、制作したアセット群のみをバージョン管理するという想定で話を進めます。
アセット群の制作に使用したツールのプロジェクトファイル一式や中間データなどをバージョン管理対象に含めることもありますが、これらのケースは対象外とします。

押さえるべきポイント

制作環境と格納庫

ワークスペースを理解するうえで重要になるのが、次の2つとその関係性です。

  1. アセット群の制作環境である手元のマシン
  2. アセット群の格納庫であるHelix Coreサーバ

制作環境と格納庫

制作したアセット群の格納場所

より具体的には、次の2つを正しく理解して関係性を把握する必要があります。

  1. 手元のマシンのどこに制作したアセット群があるのか?
  2. 制作したアセット群をHelix Coreのどこに格納したいのか?

制作したアセット群の場所

以降でこれらのポイントをさらに具体化します。

どこから来て、どこへ行くのか

手元のマシンのどこに制作したアセット群があるのか?

制作したアセット群は通常以下のディレクトリに存在します。

  • 制作したアセット群の出力先を明示的に指定していない場合は、制作に使用しているツールのプロジェクトディレクトリ内
  • 制作したアセット群の出力先を明示的に指定している場合は、指定ディレクトリ内

このディレクトリを探して覚えておきます。

以下では、D:\mywork\project1\assetsが制作したアセット群の格納場所であると仮定します。
手元のマシンの状態

制作したアセット群をHelix Coreのどこに格納したいのか?

  • 自分自身が管理しているHelix Coreサーバの場合は、自分自身で自由に格納場所を決定することができます。
  • 自分以外が管理しているHelix Coreサーバの場合は、管理者またはチームメンバに推奨の格納場所を確認して下さい。

この格納場所を理解するうえで、格納庫の理解が欠かせません。

Helix Coreでは格納庫のことをディポ(depot)と呼びます。
他のバージョン管理ツールではリポジトリと呼ばれます。

格納庫の確認

ワークスペースを作成しない限りアセット群のバージョン管理はできませんが、格納庫の状態は確認できます。
専用GUIクライアントであるP4VでHelix Coreにログインすると、下図のように画面左に参照可能な格納庫の一覧(depotなど)がドラムのアイコンと共に表示されます。
格納庫の状態

さらに、ドラムを展開すると下図のように格納庫内のディレクトリが表示されます。
格納庫内のディレクトリ

格納庫と格納場所の決定

ここまでを理解したうえで、格納場所のディレクトリを決めます。
ただし、格納庫内に目的の格納場所が存在していなくても構いません。
むしろ、アセット群を一度も登録していない場合は、中間のディレクトリも含めてHelix Coreサーバ内に格納場所のディレクトリが存在していない可能性の方が高くなります。

格納場所のディレクトリは //格納庫名/ディレクトリパス と表記し、P4Vでは下図のように表示されます。
格納場所の表記法

このディレクトリが存在する場合は覚えておきます。
存在しない場合は目的の格納先を決めて、その //格納庫/ディレクトリパス を控えておきます。

//depot はHelix Coreがデフォルトで作成しますので、ここを格納庫に決めたと仮定します。
そして、格納場所のディレクトリパスはproject1/assetsに決めたと仮定します。
この場合、//depot/project1/assetsが制作したアセットの格納場所になります。

ワークスペースの作成

ようやくワークスペースを作成するための準備が整いました。
今までのことを踏まえてワークスペースの役割を説明し、ワークスペースを作成します。

ワークスペースの役割

Helix Coreでは、格納庫の中にあるアセット群のうち、一部のアセット群のみを取り出してバージョン管理をすることができます。
この取り出し範囲の情報や、取り出し範囲内のファイルを現在どのように扱っているのかといった情報は、Helix Core側で管理してくれる仕組みになっています。

Helix Coreに限った話ではありませんが、管理のための仕組みには管理台帳が不可欠です。
この管理台帳に相当するものがワークスペースになります。

Helix Coreは管理台帳であるワークスペースの作成を必須とし、Helix Core側で管理することによって、次のことをチームメンバ全員が共有できるようにしています。

  • 誰がどのアセット群を取り出して制作活動を行っているのか?
  • 現在どのアセットが編集されているのか?
  • 現在どのアセットがロックされているのか?

ワークスペースの作成方法

ここまでのおさらい

ワークスペースを作成する前に、押さえておくべきポイントをおさらいします。

押さえておくべきポイント ポイントへの回答例
手元のマシンのどこに制作したアセット群があるのか? D:\mywork\project1\assets に格納されている
制作したアセット群をHelix Coreのどこに格納したいのか? //depot/project1/assets に格納する
ワークスペースとは何か? 取り出し範囲の情報などを管理するための管理台帳である

作成手順

まず、ワークスペースの作成ダイアログを表示します。

  1. P4Vを起動して、Open Connectionダイアログが現れたらServerUserを入力してOKを押します。
    Open Connectionダイアログ
  2. 次にView > Workspacesの順で操作して、Workspacesタブを表示します。
    Workspacesタブ
  3. Workspacesタブの中でマウス右クリックでコンテキストメニューを表示し、New Workspaceを選択します。選択後に、Workspace: Newダイアログが表示されます。
    Workspace Newダイアログの表示

次に、ワークスペースの作成条件をダイアログに入力していきます。

  1. Workspace nameワークスペースの名称(管理台帳の名称)を入力します。
    名称には、英数字、マイナス(-)、アンダーバー(_)のみを使用した方が良いでしょう。
    ここでは、例としてsample_workspaceと入力します。

  2. Workspace rootに「手元のマシンのどこに制作したアセット群があるのか?」の答えを入力します。
    ここでは、D:\mywork\project1\assetsと入力します。
    これで、Helix CoreはD:\mywork\project1\assetsの中にバージョン管理をするべきアセット群が格納されていると理解します。

  3. Workspace Mappingsに取り出し範囲の情報を入力しますが、操作を簡単にするためにいったん内容をすべて削除します。
    ここまでで下図の状態になります。
    Workspace Mappingsのクリア

    格納庫としてストリームディポを使用している場合は、Workspace Mappingsを設定する必要はありません。この値は自動的に設定されます。

  4. Workspace Mappingsに記述する内容を整理していきます。

    1. 「制作したアセット群をHelix Coreのどこに格納したいのか?」の答えを記述します。

      //depot/project1/assets
      
    2. 「手元のマシンのどこに制作したアセット群があるのか?」の答えを横に入力します。

      //depot/project1/assets D:\mywork\project1\assets
      

      これで概ね//depot/project1/assetsD:\mywork\project1\assetsを対応付けてバージョン管理したい!という意思表明ができました。

    3. D:\mywork\project1\assetsWorkspace rootに記述済みであるため、二重に提示する必要はありません。
      ワークスペースの名称を使って、この冗長さを次の置き換えで解消します。

      D:\mywork\project1\assets
           ↓
      //sample_workspace
      

      この置き換えによって、次の通りになります。

      //depot/project1/assets D:\mywork\project1\assets
           ↓
      //depot/project1/assets //sample_workspace
      
    4. 最後におまじないになりますが、それぞれのパスの末尾に /... を付与します。

      //depot/project1/assets //sample_workspace
           ↓
      //depot/project1/assets/... //sample_workspace/...
      

      この ... はHelix Coreにおけるワイルドカード表現で、
       「サブディレクトリ内のファイルも含むすべてのファイル」
      を表します。

  5. 整理した内容をWorkspace Mappingsに記述します。
    Workspace Mappingsを記述

    これで正式に//depot/project1/assets内の全ファイルを D:\mywork\project1\assets内の全ファイルに対応付けてバージョン管理したい!という意思表明ができました。

  6. 最後にAdvancedタブでいくつかの役立つオプションを設定しておきます。

    1. Allwrite
      このオプションを設定しない場合、Helix Coreはファイルを読み取り専用で取得します。
      このオプションを設定しておくと、ファイルが読み書き可で取得されます。
    2. Modtime
      このオプションを設定しない場合、Helix Coreはファイルのタイムスタンプをファイルの取得日時に設定します。
      このオプションを設定しておくと、ファイルのタイムスタンプがファイルの登録日時に設定され、ファイルの鮮度を確認しやすくなるなどのメリットがあります。
    3. Rmdir
      このオプションを設定しない場合、Helix Coreの機能を使用して手元のファイル群をいったん削除してクリーンな状態にしたときに空のディレクトリが残ってしまいます。
      クリーンな状態にするときは、通常空のディレクトリも不要になるため、このオプションを設定してHelix Coreに削除させます。
      Advancedオプション
  7. OKをクリックすると、Workspace rootで指定したディレクトリが既に存在しているため、別のディレクトリを指定するかどうかを確認されます。
    ディレクトリの確認

  8. この記事の手順では「手元のマシンのどこに制作したアセット群があるのか?」を確認したうえでWorkspace rootを入力していますので、Noを選択して構いません。
    作成に成功すると下図のようにワークスペースが作成され、ツリーの上部にワークスペース名が表示されます。
    ワークスペースの選択

  9. 最後に漏斗ボタンを選択し、Tree restricted to Workspace Viewを選択します。
    ワークスペースの表示制限
    すると、ワークスペースに覚えさせた対応関係以外のディレクトリが非表示になるため、次のことが確認できます。

    • Helix Coreサーバ側(Depotを選択した状態): 指定した格納場所(//depot/project1/assets)の中にアセット群が存在するのかどうか
    • 手元のマシン側(Workspaceを選択した状態): 指定した格納場所(D:\mywork\project1\assets)の中にアセット群が存在するのかどうか

    繰り返しになりますが、アセット群を一度も登録していない場合は、中間のディレクトリも含めてHelix Coreサーバ内に格納場所のディレクトリが存在していない可能性の方が高くなります。
    このため、//depot/project1/assetsに相当するディレクトリは表示されなくても問題ありません。

まとめ

この記事では ワークスペースワークスペースの作成方法 を解説しました。
ワークスペースは作成と削除を繰り返しても、チームメンバに何も迷惑をかけません。
作成方法を間違えたままバージョン管理を始めるよりも、理解度を上げてから制作活動を始めた方が良いので、何度か作成の練習をして次のことを正しく理解できるようにしましょう。

  1. 手元のマシンのどこに制作したアセット群があるのか?
  2. 制作したアセット群をHelix Coreのどこに格納したいのか?
  3. 作成したワークスペースはこの関係性を正しく定義できているのか?

追記 (2020/9/28)

参考情報を以下に記します。


Helix Coreに関する情報は以下でもまとめていますのでご参照下さい。

Discussion

ログインするとコメントできます