Skip to main content
#ue4fest
"有翼のフロイライン Wing of Darkness“
と歩むUE4の世界
Production Exabilities / 一柳 守
X
#ue4fest
“有翼のフロイライン Wing of Darkness”
は開発中のタイトルです
・なるべく正確な内容を伝えられるよう心がけますが、
間違い等は(やさしく)ご指摘ください。
・リリースに向けて、
当スライドの内容とは異なる物になる可能性が大いにあり得ます。
#ue4fest
自己紹介
フリーランス3Dアーティスト
一柳 守
(Hitotsuyanagi Mamoru)
Twitter: yanagiya2058
https://www.exabilities.com/
※現時点で法人ではありません。
インディーゲーム開発チームです。
#ue4fest
ゲーム制作に必要な物
・プログラム
・アセット(山ほどの)
・上記各セクションに対する理解
・根気
#ue4fest
開発メンバー構成 (声優さんやパブリッシャーさんは除いてます)
プロデューサー
(凪良)
モブ
(一柳)
アーティスト(3D) x 5人
コンポーザー x 1人
アニメーター(3D) x 1人
アーティスト(2D) x 2人
プログラマー x 1人
UE4に触るのはここだけ
計12人(現状)
#ue4fest
開発メンバー構成 (声優さんやパブリッシャーさんは除いてます)
プロデューサー
(凪良)
モブ
(一柳)
アーティスト(3D) x 5人
コンポーザー x 1人
アニメーター(3D) x 1人
アーティスト(2D) x 2人
プログラマー x 1人
UE4に触るのはここだけ
計12人(現状)
“普通”に開発をしてたら
日も年も暮れる!
(+少人数である事を隠蔽したい)
#ue4fest
ゲーム制作に必要な物(今日のお品書き)
・プログラム
・アセット(山ほどの)
・上記各セクションに対する理解
・根気
システム概要
アセット概要
#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
ゲームのシステム概要 –AI
#ue4fest
ゲームのシステム概要 –AIまとめ
AIのまとめのまとめ
・AIだからといって必ずしも
Behavior Tree等を使っている訳ではありません。
(極論、BPでもロジックを組めば”AI”になります。)
・数百単位でアクターが駆動する場合は、
何かしら対策が必要。
(とりあえずくっ付ければ…の考えで先ほどの結果です。)
#ue4fest
ゲームのシステム概要 –まとめ
・Blueprint は強力
→非エンジニアでも(気合があれば) ゲームを構築できるほど強力
・基本は”情報のやり取りあい”
→“やり方”を押さえれば大体なんとかなる
・近道は大体重い処理
→誰でもさわれる反面、重い処理も簡単に実装できる
#ue4fest
ゲームのアセット構成 (ざっくり)
• ゲームのグラフィック
• カットシーン(CS)のグラフィック
• オーディオ
#ue4fest
ゲームのグラフィック
#ue4fest
お褒めのお言葉ありがとうございます
4Gamer.netさま IGN Japanさま AUTOMATONさま ファミ通.comさま
#ue4fest
お褒めのお言葉ありがとうございます
4Gamer.netさま IGN Japanさま AUTOMATONさま ファミ通.comさま
ごめんなさい
UE4含め、グラフィックはかなりソフトの力に頼っています
#ue4fest
ゲームのグラフィック構成
• キャラクターモデル(兵装)
• アニメーション
• 背景モデル
• 空と大気
• ユーザーインターフェース(UI)
• ポストプロセス
• エフェクト(Cascade) 多い!
#ue4fest
ゲームのグラフィック構成
• キャラクターモデル(兵装)
• アニメーション
• 背景モデル
• 空と大気
• ユーザーインターフェース(UI)
• ポストプロセス
• エフェクト(Cascade) 多い!
速度重視で取り組まないと…
#ue4fest
したがって、グラフィック設計思想
• 少ない手数で大きなインパクトを
• 車輪の再発明はしない (既にあるものは既にあるものを使う)
• マシンに任せられる箇所はマシンに任せる
• どうしようもなくなった時が人の出番
#ue4fest
グラフィックの構成に移る前におさらい
UE4は”PBR(Physically-based rendering)”を備える
逆に“非写実的な表現”をするには幾つかステップが必要
PBRに逆らう為の仕込みが必要=コスト増加
=写実的な表現が得意
#ue4fest
最初期からUE4の得意とする
PBRに寄りそったアセットを作成
(あとは好みの問題)
試行錯誤を要する表現は無し
#ue4fest
ゲームのグラフィック -キャラクターモデル(兵装)
全てゲームの為に”オリジナル”のモデルを制作
アーティスト:一柳・ヤマタカ氏・くるつ氏
ソフト:Maya, Blender, Substance Painter
#ue4fest
Substance
Painter
ゲームのグラフィック -キャラクターモデル(兵装)
Maya (Blender)
ゲームモデル作成
ハイモデル作成
(ノーマル作成)
質感設定
(テクスチャ作成)
UE4
組み込み
※一部ZBrush
各アーティストさん 一柳
#ue4fest
ゲームのグラフィック -キャラクターモデル
質感の“制約”
・公式ドキュメントにもある作法に則り、Metallicはゼロかイチで指定
・金属質の場所をモデル全体で2~3割ほどに抑える
→黒ずみ、ディティールつぶれ対策
・表出している箇所は何かしら“加工・処理”がされている
→中身は金属でも塗装されていれば非金属(生の金属が見える割合は少ない)
・アーティストの取り扱える情報は、
色(Base Color)、ラフネス(Roughness) のほぼ2点に絞られる。
#ue4fest
ゲームのグラフィック –アニメーション
全てゲームの為に”オリジナル”のアニメーションを制作
アニメーター:Midzuki氏
ソフト:Maya
Mayaの”Human IK”を使用し、
アニメーション制作を依頼
#ue4fest
#ue4fest
ゲームのグラフィック –アニメーション
次からはカスタムリグか、
UE4上のリグを検討してください。
…と遠回しに怒られました。
(本当にごめんなさい)
ただしHuman IKはあまり効果的でなかった
#ue4fest
ゲームのグラフィック -背景モデル
地形はオリジナル
+マーケットプレイスのテクスチャ・Foliageを使用
ソフト:World Machine
#ue4fest
World Machine
Heightfield Map
各種マスク作成
UE4
Landscape作成
(テクスチャを読み込むだけ)
ゲームのグラフィック -背景モデル
Foliage配置
(ほぼ自動)
テクスチャ設定
質感調整
(マーケットプレイスを活用)
※Procedural Foliage ツールを使用
(しかしまだ実験的機能扱い…)
World Machineの操作以外を
ほぼ流れ作業化
#ue4fest
World Machine
Heightfield Map
各種マスク作成
ゲームのグラフィック -背景モデル
実は…重要なのはこちら
(UE4外部にデータを残すこと)
#ue4fest
ゲームのグラフィック -空と大気
“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のグラフィック
https://www.unrealengine.com/ja/blog/unreal-engine-4-22-released
4.22と言えば…
#ue4fest RTX- OFF
#ue4fest RTX- ON
#ue4fest RTX- ON
#ue4fest
CSのグラフィック
https://www.unrealengine.com/ja/blog/unreal-engine-4-22-released
4.22と言えば…見送らせて頂きました
#ue4fest
CSのグラフィック
• キャラクターモデル
• 背景モデル
• プロップ
#ue4fest
CSのグラフィック –キャラクターモデル
髪や瞳など、
Paragonから改造または参考に
※貴重なデータありがとうございます!
#ue4fest
CSのグラフィック –キャラクターモデル
ゲームモデルを改造し流用+衣装モデルを新規に制作
アーティスト:一柳
ソフト:Maya, Zbrush, Substance Painter
#ue4fest
ZBrush Substance
Painter
Maya
CSモデル転用
(ハイポリ化)
衣装ベースモデル
作成
質感設定
(テクスチャ作成)
UE4
組み込み
衣装CSモデル
作成
衣装ハイモデル
作成
CSのグラフィック –キャラクターモデル
#ue4fest
CSのグラフィック –キャラクターモデル
ZBrush Substance
Painter
Maya
CSモデル転用
(ハイポリ化)
衣装ベースモデル
作成
質感設定
(テクスチャ作成)
UE4
組み込み
衣装CSモデル
作成
衣装ハイモデル
作成
わかりづらいので
#ue4fest
#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
オーディオの区分け
• BGM – (バックグラウンドミュージック)
• SE – (サウンドエフェクト)
• ユーザーインターフェース用のSE
• ボイス
#ue4fest
オーディオの区分け
• BGM – (バックグラウンドミュージック)
• SE – (サウンドエフェクト)
• ユーザーインターフェース用のSE
• ボイス
“FMOD”を導入し、
ループ可能な音楽を再生しています。
#ue4fest
シューティングパートはオリジナルの物を作曲
コンポーザー:Junta氏
オーディオ - BGM
・おっ!と思わせること
・未体験のサウンドを届けたい