4.9K Views
October 08, 19
スライド概要
講演動画:https://youtu.be/B8OsjCxK8qc
2019年10月6日に行われた「UNREAL FEST EAST 2019」における「""有翼のフロイライン Wing of Darkness""と歩むUE4の世界」の登壇資料です。
●公式サイト
https://unrealengine.jp/unrealfest/
===
""有翼のフロイライン Wing of Darkness""はUnreal Engine 4(UE4)を採用し今にいたります。UE4を選択した理由を筆頭にUE4を利用する事の利点、逆に苦戦した点など、開発における利点と欠点の双方を今まさに開発中の実タイトルを例に挙げて解説していきます。
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
X "有翼のフロイライン Wing of Darkness“ と歩むUE4の世界 Production Exabilities / 一柳 守 #ue4fest
“有翼のフロイライン Wing of Darkness” は開発中のタイトルです ・なるべく正確な内容を伝えられるよう心がけますが、 間違い等は(やさしく)ご指摘ください。 ・リリースに向けて、 当スライドの内容とは異なる物になる可能性が大いにあり得ます。 #ue4fest
自己紹介 https://www.exabilities.com/ ※現時点で法人ではありません。 インディーゲーム開発チームです。 フリーランス3Dアーティスト 一柳 守 (Hitotsuyanagi Mamoru) Twitter: yanagiya2058 #ue4fest
ゲーム制作に必要な物 ・プログラム ・アセット(山ほどの) ・上記各セクションに対する理解 ・根気 #ue4fest
開発メンバー構成 (声優さんやパブリッシャーさんは除いてます) コンポーザー x 1人 プロデューサー (凪良) 計12人(現状) #ue4fest モブ (一柳) アニメーター(3D) x 1人 プログラマー x 1人 アーティスト(3D) x 5人 UE4に触るのはここだけ アーティスト(2D) x 2人
開発メンバー構成 (声優さんやパブリッシャーさんは除いてます) コンポーザー x 1人 モブ (一柳) プロデューサー (凪良) アニメーター(3D) x 1人 “普通”に開発をしてたら 日も年も暮れる! プログラマー x 1人 アーティスト(3D) x 5人 (+少人数である事を隠蔽したい) UE4に触るのはここだけ 計12人(現状) #ue4fest アーティスト(2D) x 2人
ゲーム制作に必要な物(今日のお品書き) ・プログラム システム概要 ・アセット(山ほどの) アセット概要 ・上記各セクションに対する理解 ・根気 #ue4fest
有翼のフロイラインは”ネット上の情報だけ”で制 作できます。 #ue4fest
ゲームのシステム概要 #ue4fest
ゲームのシステム概要 UE4のバージョン・スペック ・4.21.2ベースのエンジンビルド版を使用 +下記ミドルウェアを組み込み済み ・True Sky 4.1a ・FMOD 1.10.10 エンジンビルド版を運用している理由は今回は割愛させて頂きます。 #ue4fest
ゲームのシステム概要 #ue4fest
ゲームのシステム概要 (分かりづらいので) ゲーム制作は基本的に各Blueprint(BP)間での “情報のやり取りあい”を構築・制御することです。 #ue4fest
ゲームのシステム概要 #ue4fest
ゲームのシステム概要 キャスト イベントディスパッチャー インターフェース #ue4fest –情報のやり取り合い
ゲームのシステム概要 –情報のやり取り合い 各Blueprint(BP)間のやりとりは 基本的に “Blueprint Interface” を使用 特に理由がない限り、 キャストの使用はしていません。 #ue4fest
ゲームのシステム概要 –情報のやり取り合い イベントディスパッチャー インターフェースで事が足りたので使ってません #ue4fest
ゲームのシステム概要 –情報のやり取り合い インターフェースの実装とは? alweiさんが下記で(書籍でも)解説しています。 http://unrealengine.hatenablog.com/entry/2014/09/23/201458 対象となるBPに“機能・役割”を与える事 ・情報を共有or開示できるようにする ・イベントを実行できるようにする →なんとなく役所の窓口の人みたいですよね? #ue4fest
ゲームのシステム概要 インターフェースの例 #ue4fest –情報のやり取り合い
ゲームのシステム概要 インターフェースの例 #ue4fest –情報のやり取り合い
ゲームのシステム概要 #ue4fest –情報のやり取り合い
ゲームのシステム概要 –機能の細分化 機能は可能な限り細分化した方が良い BP問わず、イベント、関数、マクロ…等々 #ue4fest
ゲームのシステム概要 –毎フレーム処理 Event Tick + Widget の Binding (毎フレーム処理) 誰でも簡単に実装できる+簡単に重たくできる→落とし穴 UE4はイベントドリブン方式を推奨しています。 (著名な方々が何度も、何度も言っています) フロイラインでは本当に必要な所に絞って使用しています。 #ue4fest
ゲームのシステム概要 –毎フレーム処理 Event Tick + Widget の Binding (毎フレーム処理) Tickを組み込んだ例 ・プレイヤーキャラクター自身 →ステータス+周辺情報の更新 ・ユーザーインターフェース →Widgetのアニメーションで補えなかった部分 ・敵のAI (一部) →自他ともに高速で位置情報が変わるためTickを追加 (ただし毎フレームではないです) #ue4fest
ゲームのシステム概要 –毎フレーム処理 Event Tick + Widget の Binding (毎フレーム処理) Widget の Binding は? 使う理由が無くなったのですべて排除 #ue4fest
ゲームのシステム概要 –AI 大きく分けて以下2つ ・敵性・味方フロイラインなど空を飛ぶもの ・設置型の兵器 #ue4fest
ゲームのシステム概要 –AI ・敵性・味方フロイラインなど空を飛ぶもの AI Controller (AIC) Behavior Tree (BT) Black Board (BB) を使用した、UE4標準の機能で実装 ※Environment Query System (EQS)の使用は見送りました… #ue4fest
ゲームのシステム概要 –AI Behavior Tree(BT) + Black Board(BB) ・Serviceで自分や相手の位置、回転等をコントロール ・基本的に、“移動する位置“とそれに対する”向き” の組み合わせで制御 ・攻撃+リアクションはTaskにより、 AIキャラクター専用のインターフェースを介して アクターへイベントを流した #ue4fest
#ue4fest
ゲームのシステム概要 –AI 参考(にした)資料 ・第5回 UE4ぷちコン作品を作りました (alwei氏ブログより) ・AI Behavior Toolkit (Marketplaceより) #ue4fest
ゲームのシステム概要 –AI じつはAIの制約を設けてますが…… あまり話すと面白みがなくなるので、 リリース後に改めて! #ue4fest
ゲームのシステム概要 –AI 設置型の兵器 ・各アクターにプレイヤー接近を判定するコリジョンを配置 ※100以上のアクター ・各アクターがそれぞれ各個行動(攻撃)を行う しかも場合によっては”Tick”処理を行う ※100以上のアクター #ue4fest
ゲームのシステム概要 –AI 設置型の兵器 ・各アクターにプレイヤー接近を判定するコリジョンを配置 ※100以上のアクター 普通に考えて処理負荷が重い! ・各アクターがそれぞれ各個行動(攻撃)を行う しかも場合によっては”Tick”処理を行う ※100以上のアクター #ue4fest
#ue4fest
ゲームのシステム概要 –AI 設置型の兵器 UE4はイベントドリブン方式を推奨 現在はかたまり毎に“親”を設定して、 親から子へ必要な分だけイベントを流すように設計。 #ue4fest
ゲームのシステム概要 #ue4fest –AI
ゲームのシステム概要 –AIまとめ AIのまとめのまとめ ・AIだからといって必ずしも Behavior Tree等を使っている訳ではありません。 (極論、BPでもロジックを組めば”AI”になります。) ・数百単位でアクターが駆動する場合は、 何かしら対策が必要。 (とりあえずくっ付ければ…の考えで先ほどの結果です。) #ue4fest
ゲームのシステム概要 –まとめ ・Blueprint は強力 →非エンジニアでも(気合があれば) ゲームを構築できるほど強力 ・基本は”情報のやり取りあい” →“やり方”を押さえれば大体なんとかなる ・近道は大体重い処理 →誰でもさわれる反面、重い処理も簡単に実装できる #ue4fest
ゲームのアセット構成 (ざっくり) • ゲームのグラフィック • カットシーン(CS)のグラフィック • オーディオ #ue4fest
ゲームのグラフィック #ue4fest
お褒めのお言葉ありがとうございます 4Gamer.netさま #ue4fest IGN Japanさま AUTOMATONさま ファミ通.comさま
お褒めのお言葉ありがとうございます ごめんなさい UE4含め、グラフィックはかなりソフトの力に頼っています 4Gamer.netさま #ue4fest IGN Japanさま AUTOMATONさま ファミ通.comさま
ゲームのグラフィック構成 • • • • • • • #ue4fest キャラクターモデル(兵装) アニメーション 背景モデル 空と大気 ユーザーインターフェース(UI) ポストプロセス エフェクト(Cascade) 多い!
ゲームのグラフィック構成 • • • • • • • #ue4fest キャラクターモデル(兵装) アニメーション 背景モデル 空と大気 速度重視で取り組まないと… ユーザーインターフェース(UI) ポストプロセス 多い! エフェクト(Cascade)
したがって、グラフィック設計思想 • 少ない手数で大きなインパクトを • 車輪の再発明はしない (既にあるものは既にあるものを使う) • マシンに任せられる箇所はマシンに任せる • どうしようもなくなった時が人の出番 #ue4fest
グラフィックの構成に移る前におさらい UE4は”PBR(Physically-based rendering)”を備える =写実的な表現が得意 逆に“非写実的な表現”をするには幾つかステップが必要 PBRに逆らう為の仕込みが必要=コスト増加 #ue4fest
試行錯誤を要する表現は無し 最初期からUE4の得意とする PBRに寄りそったアセットを作成 (あとは好みの問題) #ue4fest
ゲームのグラフィック -キャラクターモデル(兵装) 全てゲームの為に”オリジナル”のモデルを制作 アーティスト:一柳・ヤマタカ氏・くるつ氏 ソフト:Maya, Blender, Substance Painter #ue4fest
ゲームのグラフィック -キャラクターモデル(兵装) Maya (Blender) ゲームモデル作成 Substance Painter ハイモデル作成 (ノーマル作成) 質感設定 (テクスチャ作成) UE4 組み込み ※一部ZBrush 各アーティストさん #ue4fest 一柳
ゲームのグラフィック -キャラクターモデル 質感の“制約” ・公式ドキュメントにもある作法に則り、Metallicはゼロかイチで指定 ・金属質の場所をモデル全体で2~3割ほどに抑える →黒ずみ、ディティールつぶれ対策 ・表出している箇所は何かしら“加工・処理”がされている →中身は金属でも塗装されていれば非金属(生の金属が見える割合は少ない) ・アーティストの取り扱える情報は、 色(Base Color)、ラフネス(Roughness) のほぼ2点に絞られる。 #ue4fest
ゲームのグラフィック –アニメーション 全てゲームの為に”オリジナル”のアニメーションを制作 アニメーター:Midzuki氏 ソフト:Maya Mayaの”Human IK”を使用し、 アニメーション制作を依頼 #ue4fest
#ue4fest
ゲームのグラフィック –アニメーション ただしHuman IKはあまり効果的でなかった 次からはカスタムリグか、 UE4上のリグを検討してください。 …と遠回しに怒られました。 (本当にごめんなさい) #ue4fest
ゲームのグラフィック -背景モデル 地形はオリジナル +マーケットプレイスのテクスチャ・Foliageを使用 ソフト:World Machine #ue4fest
ゲームのグラフィック World Machine -背景モデル UE4 テクスチャ設定 質感調整 (マーケットプレイスを活用) Heightfield Map 各種マスク作成 Landscape作成 (テクスチャを読み込むだけ) World Machineの操作以外を ほぼ流れ作業化 #ue4fest Foliage配置 (ほぼ自動) ※Procedural Foliage ツールを使用 (しかしまだ実験的機能扱い…)
ゲームのグラフィック -背景モデル World Machine Heightfield Map 各種マスク作成 #ue4fest 実は…重要なのはこちら (UE4外部にデータを残すこと)
ゲームのグラフィック -空と大気 “True Sky”を使用し、空と大気のすべてを担保 (一部を除いてUE4標準のフォグやスカイライトは使用しません) 「エースコンバット7」UE4×TrueSkyでの「雲」の表現について #ue4fest
#ue4fest
#ue4fest
#ue4fest
#ue4fest
ゲームのグラフィック -UI UE4のWidget Blueprintを使用 +マーケットプレイスのシステムを流用 #ue4fest
#ue4fest
ゲームのグラフィック -UI マーケットプレイスのシステム • Multi Lock-on System • Radar Minimap • Screen Indicator #ue4fest
ゲームのグラフィック -UI マーケットプレイスのシステム • Multi Lock-on System いずれも素では使わずカスタマイズしてます • Radar Minimap • Screen Indicator #ue4fest
ゲームのグラフィック –ポストプロセス • UE4標準の”ポストプロセスボリューム” + 局所的にChameleon を使用(これもカスタマイズ) #ue4fest
ゲームのグラフィック –パーティクル(Cascade) 専門のエフェクト制作者はチームに居ないので、 マーケットプレイスに頼ってます! ※Epic Gamesさんが提供している サンプルでもほとんど事足ります。 #ue4fest
カットシーン(CS)のグラフィック #ue4fest
CSのグラフィック ゲームとは別のプロジェクトで制作・管理しています。 ・4.22.3を使用 #ue4fest
CSのグラフィック 4.22と言えば… https://www.unrealengine.com/ja/blog/unreal-engine-4-22-released #ue4fest
#ue4fest RTX- OFF
#ue4fest RTX- ON
#ue4fest RTX- ON
CSのグラフィック 4.22と言えば… 見送らせて頂きました https://www.unrealengine.com/ja/blog/unreal-engine-4-22-released #ue4fest
CSのグラフィック • キャラクターモデル • 背景モデル • プロップ #ue4fest
CSのグラフィック –キャラクターモデル 髪や瞳など、 Paragonから改造または参考に ※貴重なデータありがとうございます! #ue4fest
CSのグラフィック –キャラクターモデル ゲームモデルを改造し流用+衣装モデルを新規に制作 アーティスト:一柳 ソフト:Maya, Zbrush, Substance Painter #ue4fest
CSのグラフィック Maya –キャラクターモデル ZBrush CSモデル転用 (ハイポリ化) 衣装CSモデル 作成 衣装ベースモデル 作成 衣装ハイモデル 作成 #ue4fest Substance Painter 質感設定 (テクスチャ作成) UE4 組み込み
CSのグラフィック Maya –キャラクターモデル ZBrush Substance Painter CSモデル転用 (ハイポリ化) 衣装CSモデル 作成 衣装ベースモデル 作成 衣装ハイモデル 作成 #ue4fest 質感設定 (テクスチャ作成) わかりづらいので UE4 組み込み
#ue4fest
#ue4fest
#ue4fest
#ue4fest
#ue4fest
#ue4fest
#ue4fest
#ue4fest
#ue4fest
CSのグラフィック –背景モデル ここぞとばかりにマーケットプレイスに頼ってます! #ue4fest
#ue4fest
#ue4fest
#ue4fest
CSのグラフィック –プロップ 残念ながら、マーケットプレイスに無かったものを 制作して頂きました。 アーティスト:INAMI YUKI氏・ぽっと氏・(一柳) ソフト:Maya, Zbrush, Substance Painter #ue4fest
CSのグラフィック #ue4fest –プロップ
CSのグラフィック 全部を解説していくと ネタバレになるので今回はここまで #ue4fest
グラフィックのまとめ ・UE4のマーケットプレイスは強力 ・UE4のレンダリングは綺麗 ・できない事はやらない or 代替する ・(過程はどうであれ) プレイヤーさんに良い評価していただければOK #ue4fest
グラフィックのまとめのまとめ ・UE4のマーケットプレイスは強力 →ただし、システムに組み込む場合はそのままは無理 ・UE4のレンダリングはやっぱり綺麗 →ただし、欲しい絵にする為の前提知識が多い ・できない事はやらない or 代替する →背伸びして届かないものはすっぱり諦める ・(過程はどうであれ) プレイヤーさんに良い評価していただければOK #ue4fest
オーディオ #ue4fest
オーディオの区分け • • • • #ue4fest BGM – (バックグラウンドミュージック) SE – (サウンドエフェクト) ユーザーインターフェース用のSE ボイス
オーディオの区分け • • • • BGM – (バックグラウンドミュージック) SE – (サウンドエフェクト) ユーザーインターフェース用のSE ボイス “FMOD”を導入し、 ループ可能な音楽を再生しています。 #ue4fest
オーディオ - BGM シューティングパートはオリジナルの物を作曲 ・おっ!と思わせること ・未体験のサウンドを届けたい コンポーザー:Junta氏 #ue4fest
#ue4fest
オーディオの区分け • • • • BGM – (バックグラウンドミュージック) SE – (サウンドエフェクト) ユーザーインターフェース用のSE ボイス 全部SEのカテゴリで良いのでは…? #ue4fest
オーディオ - Sound Class + Sound Mixの利用 Sound ClassとSound Mixで カテゴリ分けすることで、 ボリュームの一括調整+ピッチ調整を行っています。 #ue4fest
オーディオのまとめ ・UE4はイントロ~ループの音楽を取り扱うのが苦手 →BPではどう頑張ってもコンマ秒レベルの音ズレが発生 →どうしても使う場合、 FMOD, CRI ADX2, Wwiseの導入も視野に入れたい (導入はできる事が増える=夢が膨らみがちなので計画的に…) ・それ以外は基本的に Sound Class, Sound Mixの存在だけ 押さえれば十分だと思います #ue4fest
大まかな概要は以上です リリース後、各社の秘密・機密保持契約を侵害しない範囲で、 技術情報を全て公開する予定です (冗談ではないです) #ue4fest
ゲーム制作に必要な物 ・プログラム ・アセット(山ほどの) ・上記各セクションに対する理解 ・根気 #ue4fest
各セクションに対する理解を深める #ue4fest
ゲーム制作者は(ほぼ)全ての要素を取り扱う 3Dモデル アニメーション エフェクト 2Dイラスト UI オーディオ ゲームバランス プログラム シナリオ …他多数 #ue4fest
UE4には各セクションの理解に 必要な物が全て揃っている 以下、極端な例です モデラーなら… モデル作成~実装~各キャラのBP・マテリアルを触って 究極のモデルに仕上げられる アニメーターなら… アニメーション作成~Animation BPまで触わって、挙動の調整も可能 コンポーザーなら… 楽曲制作~組み込みだけでなく、BPも触れば動的な音も作れる #ue4fest
逆に誰でも何でもいじれるので、 やるなら バージョン管理、編集等ルール決めは厳密に (ただしバージョン管理は保険でなく、弄っても良いという保証です) #ue4fest
さいごに告知 #ue4fest (ダイレクトマーケティング)
10月末にある告知があります #ue4fest
公式アカウント 日本語 Twitter P_Exabilities English Twitter P_ExabilitiesEN facebook Production Exabilities #ue4fest
パブリッシャー Web https://unties.com/ Web https://www.ukiyostudios.com/ #ue4fest
"有翼のフロイライン Wing of Darkness"と歩む UE4の世界 ご清聴頂きありがとうございました。 掲載されている会社名、商品名等は、各社の商標または登録商標です。 当スライドには、”いらすとや”さまのイラストを使用しております。 タイトルイラスト:雅(まさ) ちびきゃらイラスト:箱舟 みかん #ue4fest