「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』

16.6K Views

November 16, 19

スライド概要

2019年11月6日に行われた「Perforce on Tour 2019 TOKYO」にて発表させていただいたHelix Core(Perforce)の事例講演です。
ヒストリア内のHelix Coreの使い方、および社内レギュレーションを元にした運用事例のご紹介です。

社内運用ドキュメントのDLはこちら。
http://historia.co.jp/distribution/docs/historia_Perforce_Regulation.zip

イベント詳細
https://www.toyo.co.jp/ss/seminar/detail/p4ontour2019

profile-image

株式会社ヒストリアは、Unreal Engine専門のソフトウェア開発会社です。ゲーム事業とエンタープライズ事業、2 つの軸でソフトウェアの企画、開発を行っています。また、Unreal Engine の学習を目的とした作品制作コンテスト『UE5ぷちコン』や、『出張ヒストリア! ゲーム開発勉強会』を主催、技術ブログを毎週更新など、Unreal Engine コミュニティを盛り上げる活動も行っております。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

小~中規模事例 Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介 2019/11/06 historia Inc.

2.

Helix Core 導入事例 • Unreal Engine 4 環境の紹介と Unreal Engine 4 環境ならではの悩みどころ • Helix Core 自体の設定ではなく、 プロジェクトでの運用に焦点を当てた講演 historia Inc.

3.

おしながき ヒストリアの開発体制 UE4 と Helix Core ヒストリア運用レギュレーション historia Inc.

4.

略称 • Unreal Engine 4 → UE4 • Helix Core → HC historia Inc.

5.

ヒストリアの開発体制 historia Inc.

6.

開発体制 • 社内スタッフ 45人(外部常駐スタッフ含む) • グラフィックは外部企業との協業が多い • インフラエンジニアは専任では置いていない historia Inc.

7.

案件特性 • 案件はすべて Unreal Engine を使用 • プロジェクト数が多い(現在も10ライン以上) • 小規模:1人~ / 数週間~ • 中規模:~40人(外部含む) / ~2年 historia Inc.

8.

インフラ環境 Partner Win10 Project Team Backup Access Project Team Server Room Win10 Win10 Linux Project A Project B : Project G Project H : Project X Project Y : Access Win10 Win10 Project Team Access 社内 historia Inc. Win10 Auto Build Win10 NAS

9.

Helix Core サーバー環境 • サーバーは3つ運用 • プロジェクトごとにサーバーは立てない – 小規模プロジェクトのスピード感に対応 – 個別に立てたらバックアップ環境の設定が大変 – 各プロジェクトのエンジニアがDepotの直下にプロジェクト名 でディレクトリを作成 – ディスクがいっぱいになりそうになったら次のサーバーを立て るという雑な運用 historia Inc.

10.

管理者環境 • 専任が居ないので極力コストを低く運用 • 基本はP4Adminを使用 – たまにしか触らないので、使い慣れたWindowsのGUIがいい – P4Adminで出来ないことは、コマンドラインで対応 • アカウントの発行とHDD容量チェックが主な仕事 historia Inc.

11.

外部からのアクセス • 社内メンバーのリモートワークはVPN • 外部協力会社は P4Admin でIP制限 – アカウントライセンスは貸出 historia Inc.

12.

UE4 と HELIX CORE historia Inc.

13.

UE4 と Helix Core • 開発元の Epic Games が Helix Core を採用している • UE4 Editor に公式プラグインが標準で付いている • 最初の環境セットアップは公式ドキュメントに従えばOK historia Inc.

14.

historia Inc.

15.

historia Inc.

16.

historia Inc.

17.

UE4 Editor historia Inc.

18.

UE4 Editor – コンテントブラウザ historia Inc.

19.

公式プラグイン • 変更しようとしたアセットをチェックアウト • エディター上からサブミット • ファイル履歴が見られる • Blueprint(以下、BP)の差分閲覧とマージが可能 historia Inc.

20.

BPとは? historia Inc.

21.

BPのDiff historia Inc.

22.

C++とBPの使い分け C++ 割合 Blueprint 小規模 大規模 プロジェクトの性質により例外は多いが、大まかにはこのような認識 historia Inc.

23.

Point プログラマーがC++(Text)とBP(Binary)を同時に扱う historia Inc.

24.

UE4のゲーム開発で扱うデータの種類 外部ツールで 扱うデータ C++ ini BP Photo shop Illustra tor Texture UMG Maya Sub stance Static Mesh Skeletal Mesh Motion Seque ncer Movie Wave Movie Audio Data Level Data Data Table historia Inc. Excel

25.

バイナリデータだらけ! historia Inc.

26.

UE4 × Helix Core の難しさ • プログラマーがバイナリでも機能を実装する • UE4で実装するもののほとんどがバイナリデータ • 巨大サイズの中間データ historia Inc.

27.

ヒストリアの運用方針 historia Inc.

28.

運用方針のレギュレーション • プロジェクト数が多いため、統一方針を決めた – メンバーのPJスイッチコストを下げる – どのファイルを HC で管理するべきか決める • 以下の3篇に分かれる – P4V / UE4Perforceプラグイン の運用 – HC のディレクトリ構造 – ネットワークドライブ(NAS)のディレクトリ構造 historia Inc.

29.

↓こちらから社内レギュレーションのドキュメントがDLできます。 http://historia.co.jp/distribution/docs/historia_Perforce_Regulation.zip historia Inc.

30.

ブランチ・Streamの方針 • ほとんどのデータがマージ不可 • Streamは使用していない • ブランチは”体験版”などのときのみ – 極力ブランチを切るタイミングは遅らせる – 本流へのインテグレーションは基本的に想定しない – 同じバグを直すときはそれぞれに実装する historia Inc.

31.

UE4公式プラグインの方針 • プラグインを使用している – チェックアウトにはプラグインを使用 – ファイル追加 – BPの差分を見る • プラグインを使用していない – BPのマージ – サブミットはP4Vを使用 – RevertはP4Vを使用 historia Inc.

32.

ロックの方針 • チェックアウトしてもロックはかけない • 複数人のチェックアウトは許可 • 誰がチェックアウトしているかわかるので、声を掛け合 い対処 – Perforceプラグインを使用すると、コンテントブラウザからマ ウスオーバーで誰がチェックアウトしているかわかる – ロックせずにこれが分かる点がHCを導入している理由の一つ historia Inc.

33.

サブミットコメント • コメントの先頭に以下のタグを付ける タグ 内容 ADD 新規ファイルの追加 UPDATE 機能実装・機能修正 DELETE ファイルの削除 BUGFIX バグ修正 REFACTORING リファクタリング そのサブミットが複数にまたがるときは、一番主となるものを記入 historia Inc.

34.

Shelveの推奨 • リポジトリにアップせずに 他人にファイルを渡す機能 Server リポジトリ • Changelistごとに渡せる 一時 ファイル • 機能とアセットをセットの実装や デバッグ機能の受け渡しに便利 • 個人的には、ファイルの バックアップに使うことも historia Inc. Aさん Bさん

35.

HC ディレクトリレギュレーション historia Inc.

36.

HC ディレクトリレギュレーション depot └─<ProjectCode> ├─Docs ←ドキュメント類 │ ├─Management ←マネージメント関連。進捗管理のリスト系などもこの場所に置く。 │ ├─Schedule ←スケジュール関連 │ └─Tech ←クラス図などテクニカルなドキュメント ├─Resources ←インポート元のアセットデータや、グラフィックの元データ。容量が大きい場合はNASを使用する。 │ ├─DataTables ←Excel等のパラメータ系の元データ置場。 │ ├─Characters │ ├─Effects │ ├─Environments │ ├─Sound │ └─UI ├─Tools ←ツール類。ミドルウェアのプロジェクトや、自作ツール。 │ └─Wwise ←Wwise導入時のみ。Wwiseプロジェクトなどを置く場合は、このディレクトリ。 ├─UE4 ←実行環境のルートフォルダ。このディレクトリ以下のみ取得すれば、ビルドが動作するようにする。 │ ├─GenerateProjectFiles.bat │ ├─<ProjectCode> │ │ ├─Binaries │ │ ├─Config │ │ ├─Content │ │ │ └─<ProjectCode> ←このディレクトリ以下はプロジェクトごとのレギュレーションに従う。 │ │ │ ├─Maps │ │ │ ├─Movies ←パッケージに含むムービー。uassetではないが、パッケージ時に必要なのでここに入れる。 │ │ │ ├─XXXX │ │ │ : │ │ │ └─XXXX │ │ ├─Plugins │ │ ├─ThirdParty │ │ └─Source │ │ └─<ProjectCode> │ │ ├─XXXX │ │ : │ │ └─XXXX │ ├─BatchFiles ←特殊なパラメーターでUE4.exeを起動するなどのバッチファイル。コンバートバッチファイルはここには置かない。 │ └─Engine │ ├─XXXX │ : │ └─XXXX └─UE4_XXX ←バージョン違いやブランチなどはこのように追加する。 ├─XXXX : └─XXXX historia Inc.

37.

HC ディレクトリレギュレーション depot └─<ProjectCode> ├─Docs ←ドキュメント類 ├─Resources ←インポート元のアセットや、グラフィックの元データ。容量が大きい場合はNASを使用する。 ├─Tools ←ツール類。ミドルウェアのプロジェクトや、自作ツール。 ├─UE4 ←実行環境のルートフォルダ。このディレクトリ以下のみ取得すれば、ビルドが動作するようにする。 │ ├─GenerateProjectFiles.bat │ ├─<ProjectCode> │ │ ├─Binaries │ │ ├─Config │ │ ├─Content │ │ ├─Plugins │ │ ├─ThirdParty │ │ └─Source │ │ └─<ProjectCode> │ ├─BatchFiles ←特殊なパラメーターでUE4.exeを起動するなどのバッチファイル。 │ └─Engine └─UE4_XXX ←バージョン違いやブランチなどはこのように追加する。 historia Inc.

38.

HC ディレクトリレギュレーション • UE4以下のみ取得すれば最新のエディター環境が手に入 り、パッケージも行えるようにする。 • 以下のものはHCには置かずに、NASに置く – 容量が膨大なもの • 動画の元素材、Substance Painterのファイルなど – パッケージデータ – PJメンバー同士の個人的な受け渡しファイル historia Inc.

39.

NAS ディレクトリレギュレーション historia Inc.

40.

NAS ディレクトリレギュレーション Projects └─<ProjectCode> ├─Build │ ├─Milestone │ └─Daily ├─Docs ←ドキュメント類。NASは履歴が残らない&バックアップが脆弱なため、基本的にConfluence/P4を使用。 ├─From │ └─From_XXXX ←外部から受け取ったものを日付を付けてフォルダー分けし、入れる。 │ └─<8桁の日付>_<受け取った内容> ←例「20190101_SDKドキュメント」 ├─To │ └─To_XXXX ←外部へ送ったものを日付を付けフォルダー分けし、入れる。 │ └─<8桁の日付>_<送った内容> ├─Records ←講演用や記録用に、過去の動画やスクリーンショットを残しておく場所。 │ └─<8桁の日付>_<記録の内容> ←例「20190101_プロト版動画」「20190215_初出用スクリーンショット」 ├─References ←参考資料の置場。実データとして使うものは、ここではなくResourcesに置く。 ├─Resources ←インポート元のアセットやグラフィックの元データ。基本はP4を使用するが、容量が大きい場合はここ。 │ ├─Characters │ ├─Environments │ ├─Movies │ ├─ ・・・ │ ├─ ・・・ │ └─ ・・・ ├─Tools └─QA historia Inc.

41.

ご清聴ありがとうございました! historia Inc.