Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

第4回UE4勉強会 in 大阪 UE4でのチーム製作

1,127 views

Published on

第4回UE4勉強会 in 大阪
https://ue4study-osaka.connpass.com/event/74910/

Published in: Engineering
  • Be the first to comment

第4回UE4勉強会 in 大阪 UE4でのチーム製作

  1. 1. UE4でのチーム製作 第4回UE4勉強会 in 大阪
  2. 2. 2 自己紹介 ● Twitter: com04 ● ゲームプログラマー ● 趣味でエンジンコード読んでる ● 横浜×酒×UE4
  3. 3. 3 自己紹介 ● 第2回UE4勉強会 in 大阪 - マテリアル基礎・初級 – https://www.slideshare.net/com044/ue4-80326829 ● Unreal Engine 4 Advent Calendar 2017 – ぷちコン与太話-マテリアルでゲーム作った話- ● https://qiita.com/com04/items/3c16415887676d74622c
  4. 4. 4 もくじ ● コメントを書く ● グループ/カテゴリの設定 ● アクセス権 ● その他細かいTips ● 作業の分割 version: UE4.18.2
  5. 5. 5 コメントを書く
  6. 6. 6 コメントを書く ● UE4はワークフロー的に多職種と引き継ぐ事が多くなる – プログラマーが挙動を実装して、レベルデザイナー/アー ティストが組み合わせて使う – アーティストがマテリアル作って、プログラマーが最適化す る – プロトタイピングで試作したアセットを本開発で保守する ● 旧来はプログラマーが実装、引き継いだプログラマーもソースコー ド読めば分かる的な事が多かった – (C++でもコメント書いて)
  7. 7. 7 コメントを書く ● 極力後の人が助かる様にコメントを書こう! ● UE4には様々なコメント機能があります
  8. 8. 8 コメントを書く Blueprint, Material, Animation等のグラフ
  9. 9. 9 コメントを書く-グラフ ● UE4はグラフィカルなノードで処理は見やすい – ただ一連の流れを追うのに時間が掛かる
  10. 10. 10 コメントを書く-グラフ ● Add Comment(ショートカット:「c」キー) – ノードを複数囲んでコメントを付ける事が出来る
  11. 11. 11 コメントを書く-グラフ ● CustomEventを宣言する場合やInterfaceの実装な ど、EventGraphに全部書かないといけない
  12. 12. 12 コメントを書く-グラフ ● どこに何があるの……?
  13. 13. 13 コメントを書く-グラフ ● コメントを書いて可読性を上げる
  14. 14. 14 コメントを書く-グラフ ● コメント自体に色を付けることが出来る
  15. 15. 15 コメントを書く-グラフ ● 個人的な使い方として、種類で色変えたりしてる – 白:ノードや実装コメント – 青:使い方説明、BP自体の実装メモ – 紫:デバッグ機能
  16. 16. 16 コメントを書く-グラフ ● コメントはBlueprint検索にも引っかかる – プロジェクトの全Blueprint検索で一覧できる。 – 実装途中、デバッグ機能とかに固有文字を入れて後か ら探せるようにしたり。
  17. 17. 17 コメントを書く-グラフ ● ※マテリアルのグラフにはプロジェクト一括検索あり ません – (マテリアルアセットを一個ずつ開いて、そのグラフ 内検索しか出来ない……)
  18. 18. 18 コメントを書く Blueprint系
  19. 19. 19 コメントを書く-Blueprint系 ● 変数の詳細タブ、「ツールヒント」欄 – 変数欄でカーソルを合わせた時に出てくる
  20. 20. 20 コメントを書く-Blueprint系 ● 関数の詳細タブ、「説明」欄 – 関数呼び出しの際にカーソル合わせると出て来る – 「@Param <インプット名> 説明」でインプット変数 の説明も書ける
  21. 21. 21 コメントを書く-Blueprint系 ● コンポーネントの詳細タブ、「ツールヒント」欄
  22. 22. 22 コメントを書く-Blueprint系 ● Blueprintアセット – クラス設定、詳細タブの「Blueprint Description」欄 – コンテンツブラウザでアセットにカーソルを合わせる と出て来る
  23. 23. 23 コメントを書く Material系
  24. 24. 24 コメントを書く-Material系 ● マテリアル関数 – 詳細タブのDescription – FunctionInputノードのDescription – FunctionOutputノードのDescription
  25. 25. 25 コメントを書く-Material系 ● マテリアル関数 – Descriptionを書くとマテリアル関数ノードでツール チップが出て来る
  26. 26. 26 コメントを書く-Material系 ● マテリアル – 無い…… – グラフ内にコメントで説明書くしか
  27. 27. 27 コメントを書く ほか
  28. 28. 28 コメントを書く-ほか ● パーティクル(Cascade)全体 ● SoundCueのアセット自体 ● ビヘイビアツリーのアセット自体 – コメントを書く所が無い…… – 結構無いアセットが多い
  29. 29. 29 グループ/カテゴリの設定
  30. 30. 30 グループ/カテゴリの設定-Blueprint ● Blueprintの関数/変数のカテゴリ設定 – していないと全部が並んで見にくい(関数は並べ替え が出来ない)
  31. 31. 31 グループ/カテゴリの設定-Blueprint ● 詳細タブのカテゴリ欄で設定できる – Action|Attack ● のように”|”で区切ると入れ子にも出来る
  32. 32. 32 グループ/カテゴリの設定-Blueprint ● 設定した後。グループ化されて見やすく
  33. 33. 33 グループ/カテゴリの設定-Material ● マテリアルのパラメーターノード系にはGroup設定が 有る
  34. 34. 34 グループ/カテゴリの設定-Material ● マテリアルインスタンスでパラメーターを編集する 際、グループ化されて見やすくなる
  35. 35. 35 グループ/カテゴリの設定-Material ● パラメーターが並ぶ順番も設定出来る – パラメーターノード系のSort Priority ● (デフォルトはアルファベット順)
  36. 36. 36 グループ/カテゴリの設定-Material ● グループ自体の順番も設定できる – マテリアル詳細欄のGroup Sorting ● BPから操作する用のパラメーターは後の方にするとか
  37. 37. 37 アクセス権
  38. 38. 38 アクセス権 ● 自身のBlueprint以外から、変数や関数を呼ばれなくす る機能 – 自身のBlueprint内部だけで使用する変数/関数を間違っ て弄られないように ● 他の人からすると、表に出ているので触っていいのかな、と考 えてしまう事もある – 変数を直接弄られないように ● 変数の値が変わった時に、何か一緒に処理したい時とか – C++/C#等のpublic/protected/private
  39. 39. 39 アクセス権 ● Blueprint関数は詳細タブのアクセス指定子 – パブリック: 外から呼べる – プロテクテッド:継承先から呼べる – プライベート:自身のBlueprintからのみ呼べる
  40. 40. 40 アクセス権 ● Blueprint関数は詳細タブのアクセス指定子 – パブリック: 外から呼べる – プロテクテッド:継承先から呼べる – プライベート:自身のBlueprintからのみ呼べる
  41. 41. 41 アクセス権 ● Issue 42225(4.15~) – https://issues.unrealengine.com/issue/UE-42225 ● > Access Specifies set to private displayed no warning when called ● アクセス権設定を無視して関数呼び出せる。警告も出ない – 4.14だと呼び出そうとすると警告が出る
  42. 42. 42 アクセス権 ● Blueprint変数は詳細タブのプライベートチェック ボックス – ONで外のBlueprintからは アクセスできなくなる
  43. 43. 43 アクセス権 ● カスタムイベント/イベントディスパッチャーにはア クセス権設定が無い……
  44. 44. 44 その他細かいTips
  45. 45. 45 その他細かいTips ● 抽象Blueprint (Abstract Class) – クラス設定の「Generate Abstract Class」 – ONにすると、このBlueprintをワールドに配置出来な くなる。Spawn出来なくなる。 – 基底、Baseクラスを作る際に ONにしておくと間違って 配置するのを防げる – 派生先のBlueprintでOFFにする
  46. 46. 46 その他細かいTips ● ここまで書いたけど、結局機能的に無くてどうしよう もない。とかはやっぱり有る…… – SpawnはOKだけど、Mapに直接配置するのはNG。と かはBPでは設定出来ない(管理クラス系とか) – アクセス権が設定出来ない所とか ● →命名規則でカバーするしかない – Mapに配置したら駄目 – 自分自身でしか使ったら駄目な関数、イベント – BPからのみ操作するマテリアル/Cascadeパラメーター
  47. 47. 47 作業の分割
  48. 48. 48 作業の分割 ● UE4のアセット(.uasset)はバイナリデータ – テキストと違って複数人の作業をマージ出来ない – もし同じアセットを複数人で作業していた場合は目コ ピでマージするしか無い ● →チーム内で1つのアセットにつき同時に作業出来る のはのは1人にする
  49. 49. 49 作業の分割 ● 複数人で作業する際、バージョン管理ツールを使う – UE4的にはソースコントロール – アンリアル エディタ内のソース コントロール ● https://docs.unrealengine.com/latest/JPN/Engine/Basics /SourceControl/InEditor/index.html – 細かい使い方は本題では無いので今回は省略 – UE4 Editorと連携するとエディター上から操作出来る ● GameJam等、導入できない場合は触る際 – フォルダ自体を分ける – 宣言してから行うなど
  50. 50. 50 作業の分割 ● チーム内で1つのアセットにつき同時に作業出来るの はのは1人にする – ソースコントロールをエディターと連携するのは必須 – 作業前にチェックアウト(svn lock)を行う ● もしくはアセット保存時にチェックアウトする ● チェックアウトすると、アセットにロックが掛かり他の人が そのアセットを弄れなくなる ● 他の誰かが既にチェックアウトしていると失敗 – チェックアウト出来ない時は作業出来ない – テスト用に一時的に編集するのは可能
  51. 51. 51 作業の分割 ● チーム内で1つのアセットにつき同時に作業出来るの はのは1人にする – 作業が終わるとサブミット(svn commit)してチェック イン(svn unlock)する ● これで次の人がチェックアウト、作業出来るようになる
  52. 52. 52 作業の分割 ● 1つのアセットに対する作業フロー 作業開始 (チェックアウト) チェックアウトされていて 作業できない 作業終了 (チェックイン) チェックインされたので 作業出来る チェックアウトされていて 作業できない 作業開始 (チェックアウト) 作業終了 (チェックイン) Aさん Bさん BP_Player.uasset
  53. 53. 53 作業の分割 ● 1つのアセットを複数人で分割して作業したい時は? – プレイヤー(Actor)の処理を2人で実装したい時 – マテリアルでアーティスト側とプログラム制御側を実 装したい時 – Mapに背景配置、サウンド配置、エフェクト配置、敵 配置を行いたい時
  54. 54. 54 作業の分割 Actorの分割
  55. 55. 55 作業の分割-Actor ● Componentを使用して実装を分ける – 機能別にコンポーネントを作成する – 処理の実装をコンポーネント側に実装していく – コンポーネントは別アセットになるので、作業者が分 けられる。別々に作業が行える Aさんが作業中 Bさんが作業中
  56. 56. 56 作業の分割-Actor ● Componentを作成する – ブループリントクラスを作成して、Actor Component を親クラスにする – 実装を分けたいActorにコンポーネントを追加する
  57. 57. 57 作業の分割-Actor ● Actor内処理をコンポーネント内処理にする – Actorに呼び出しを追加する時だけチェックアウト ● チェックアウトしている時間は最小限になる
  58. 58. 58 作業の分割-Actor ● コンポーネントに実装する事によって、複数のActor で処理を使いまわすことも出来るようになる ● ただ、コンポーネントを一杯くっつけると処理負荷が 高くなるので注意
  59. 59. 59 作業の分割-Actor ● 参考 – コンポーネント ● https://docs.unrealengine.com/latest/JPN/Engine/Comp onents/index.html
  60. 60. 60 作業の分割 マテリアルの分割
  61. 61. 61 作業の分割-Material ● マテリアル関数を使用して実装を分ける – Actor/Componentと同じような形 – マテリアル関数は別アセットになるので作業者が分け られる
  62. 62. 62 作業の分割-Material ● MaterialFunctionCallノードを使用してマテリアル関 数を呼び出す – こちらも機能別に関数化する事によって処理を使いま わす事が出来る
  63. 63. 63 作業の分割-Material ● 参考 – マテリアル関数 ● https://docs.unrealengine.com/latest/JPN/Engine/Render ing/Materials/Functions/index.html
  64. 64. 64 作業の分割 Mapの分割
  65. 65. 65 作業の分割-Map ● サブレベル機能を使う – メニューバーの「レベル」でレベルウィンドウを出す – レベルメニューの新規作成でレベルを追加する
  66. 66. 66 作業の分割-Map ● サブレベル機能を使う – サブレベルを右クリックからストリーミング方法を 「常にロード済み」にする
  67. 67. 67 作業の分割-Map ● サブレベル機能を使う – レベルウィンドウの項目をダブルクリックでそのレベ ルを編集できる – アウトライナでそのアクターがどのレベルに属してい るか確認できる
  68. 68. 68 作業の分割-Map ● サブレベルもそれぞれ別アセットになるので作業者を 分けられる
  69. 69. 69 作業の分割-Map ● 参考 – サブレベルで連携して作業する ● https://docs.unrealengine.com/latest/JPN/Engine/Levels /CollaborateWithSublevels/index.html
  70. 70. 70 まとめ
  71. 71. 71 まとめ ● 見やすく、使いやすくする設定項目はそこそこある – 誰かに引き継ぐ可能性は高い ● ソースコントロールは必須 – 複数人で作業する可能性が高いところは設計で考慮す る
  72. 72. 72 以上!

×