すべての人をクリエイターに電子工作します!

UE4 Style GuideとLinterPlugin

UE4のプロジェクトを共同で開発していくと、どんどんプロジェクトの中が汚くなって、何処に何が置いてあるのか分からなくなります

ファイル名もフォルダもぐちゃぐちゃになっていくと、同じテクスチャがあったり、テクスチャ名が同じでどっちが新しいか分からなかったりとエラーの原因になります

UE4 Style Guideはフォルダ構成やファイル名のプレフィックスを定義してくれているので、設計するときに迷った際には参考になります

【目次】



スポンサードリンク

色んなリンクの中で1番役に立つのはUE4 Style Guide"#"

UE4をより学習するには
http://denshikousakubu.com/2016/07/23/20160724-ue4study00/

昨年度から突然ゲームプログラムの先生をすることになり、勉強がてら参考になったURLを注ぎ足していったQiitaのPrivateページを公開できるようにしたページです
image

UE4の仕事もしていますが、Unityの仕事がメインです。なぜUE4を学習の素材として選んだからはこのページに書いてあります

UE4授業3回目(2016/05/26) ビジュアルスクリプトのススメ c#プログラマがBluePrintを授業に選んだ理由
http://denshikousakubu.com/2017/05/28/20170528_RecommendVisualScript/

1番役に立っているのは、UE4案件が始まった時や、UE4の相談を受けた時に、UE4のサンプルプロジェクトを作ることが多いので、フォルダ構成だったり、ファイル名で悩んだ時に見るUE4 Style Guideのページです
他のリンクは趣味で集めていることとか、UE4を初めて触る人に説明するときに資料作成用に使っています

日本語に翻訳している方がいます
他にも中国語、韓国語、ロシア語に翻訳されています

命名規則、コーディング規則"#"

大規模のプロジェクトになると、命名規則やコーディング規則が存在します。コーディング規則に沿っているかチェックするツールも存在し、チェックツールで100%になるまでは次の工程に行けないということもあります。

「Style Guide 言語名」で検索するとすぐに見つかります

Google C++ スタイルガイド 日本語全訳
https://ttsuki.github.io/styleguide/cppguide.ja.html

Google Java Style Guide(非公式和訳)
https://kazurof.github.io/GoogleJavaStyle-ja/

C# のコーディング規則 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/inside-a-program/coding-conventions

企業やプロジェクトによって文化があるので、様々な規約が存在します。郷に入ったら郷に従えといったところでしょうか

1人で作っている分には特に関係がないのですが、複数人での開発、保守が必要といった沢山の人が関わってくる時には無いと困るのがスタイルガイドです
設計する人にとっては何か足がかりになるものがないと時間がドンドン消費されてしまいます。特にファイル名、変数名、クラス名、メソッド名など名前に関わるところで時間を使うことが多いのではないでしょうか。

UE4 Style Guide"#"

更新が早い"#"

UE4にも公式ではありませんがStyle Guideが存在します

Gamemakin UE4 Style Guide
https://github.com/Allar/ue4-style-guide

image

Airbnb JavaScript Style Guideに影響を受けているようです
https://github.com/airbnb/javascript

このページをお勧めする理由は、更新の早さです
公式ドキュメントにも、Style Guideは存在します

Assets Naming Convention
https://wiki.unrealengine.com/Assets_Naming_Convention

Assets Naming Convention JP
https://wiki.unrealengine.com/Assets_Naming_Convention_JP

シーケンサーが登場した時にファイル名を何にしようと迷った際に、UE4 Style Guideだけが対応していたので、それ以来UE4 Style Guideを基準に設計しています

Epic公式のコーディング標準が公式ドキュメントにあるので、C++で開発する人はこちらも参考になります
https://docs.unrealengine.com/latest/JPN/Programming/Development/CodingStandard/index.html

よく見る場所"#"

よく見る場所としては、ファイル名のPrefix、Suffixとフォルダ構成についてです

1.2 Asset Name Modifiers
https://github.com/Allar/ue4-style-guide#12-asset-name-modifiers-

Prefix
Blueprintだったら、BP_OOOO
Materialだったら、M_OOOO

Suffix
Texture (Diffuse/Albedo/Base Color)だったら、T_OOO_D
Texture (Normal)だったら、T_OOO_N

image

2e1 Example Project Content Structure
https://github.com/Allar/ue4-style-guide#2e1-example-project-content-structure

フォルダ構成に困った時はここを見たり、マーケットプレースで購入した完成したゲームを参考にします

image

書いていて気付いたこと"#"

ファイル名やフォルダ構成用に使っていたので、あまり他のことは見ていなかったのですが、色々と時代に合わせて更新されていました

BlueprintのGraphの書き方について増えていました 他にもUVについてといったデザイナーに関連したことも含まれています
image

Discordにも対応していました
http://discord.gamemak.in

StyleGuidについては、# linter-and-style-guide
image

日本語翻訳ページを見つけたので読んでいたら、引っかかる場所が沢山ありました

まだまだ甘かったんだなぁと勉強になりました

Linter Plugin"#"

Linter Pluginページより"#"

UE4 Style Guideを利用したLinter Pluginがあります(有料:$9.99)
https://www.unrealengine.com/marketplace/linter

image

Linter Plugin UE4 Marketplace Trailer

サンプルプロジェクトを落とすことが出来ます
image

プラグインのインストール"#"

インストールして使うので、全員購入するというより、Linter係を作って1台だけインストールして運用するのがいいのでしょうか

購入すると、マーケットプレースのLinterのページが[エンジンにインストールする]に変わります
image

インストールするバージョンを選択 > インストール
image

プラグインを有効にする"#"

編集 > Plugins
image

Linter PluginのEnabledにチェック > Restart Now
image

使用してみる"#"

プロジェクトがUE4 Style Guideに沿っているかチェック"#"

コンテンツブラウザのコンテンツを右クリック > Linter Actions > Run Linter
image

プロジェクトにUE4 Style Guideに沿っているかチェックが走る
image

結果がHTMLで出力される
image

Dokuwiki形式でも出力できる
コンテンツブラウザのコンテンツを右クリック > Linter Actions > Run Dokuwiki Export
image

Dokuwiki形式での結果が出力される
image

ファイル名の置換"#"

プロジェクトをMaterialでフィルタリングする
image

一つだけPrefixがMat_になっているマテリアルが存在する
マテリアルを全部選択して右クリック > Linter Actions > Batch Rename(Dangerous)…
image

MatをMに置換します
image

MaterialのPrefixがM_で揃いました
image

Ctrl + Z で戻せないので、Linterをかける前にプロジェクトをバックアップした置いた方が良さそうです

## 前工程から設定による解決

UE4に取り込むことが決まっているのであれば、FBXのファイル名、マテリアル名をUE4 Style Guideに合わせておきます
インポートした際に自動的にUE4 Style Guideにあったファイル名が作成されます

マテリアル名: M_(マテリアル名、一つしかない時はFBXファイル名と同じにしてます)
マテリアル名を設定してからFBXに書き出し

スタティックメッシュ: S(FBXファイル名)
スケルタルメッシュ : SK
(FBXファイル名)
FBX名もUE4StyleGuideに従う

テクスチャ名もUE4 Style Guideに合わせておくとLinterでの作業が少なくなります

SubstancePainter2のワークフロー見直し
http://denshikousakubu.com/2017/06/01/20170601_SubstancePainter2Workflow201706/

どのチャンネルのテクスチャか分かるようにSuffixを設定しておくと便利です
SubstancePainterのテクスチャ書き出し設定

SubstancePainterにインポートした際に、マテリアル名(M)になっているので、Tに変えておくと、エクスポート時にUE4 Style Guideに合っています
TextureSetListのPrefixをT_に変更


スポンサードリンク
ゲームエンジン【UE4,Unity】のSubstance PluginからSubstance Sourceのマテリアルを反映させる

  1. 1. 色んなリンクの中で1番役に立つのはUE4 Style Guide"#"
  2. 2. 命名規則、コーディング規則"#"
  3. 3. UE4 Style Guide"#"
    1. 3.1. 更新が早い"#"
    2. 3.2. よく見る場所"#"
    3. 3.3. 書いていて気付いたこと"#"
  4. 4. Linter Plugin"#"
    1. 4.1. Linter Pluginページより"#"
    2. 4.2. プラグインのインストール"#"
    3. 4.3. プラグインを有効にする"#"
    4. 4.4. 使用してみる"#"
      1. 4.4.1. プロジェクトがUE4 Style Guideに沿っているかチェック"#"
      2. 4.4.2. ファイル名の置換"#"