Unreal Fes 2015 Yokohama
をテンプレートにして作成
[
ホーム
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
#contents
* 概要 [#j421a12f]
https://atnd.org/events/70010
- 間違ってたらすみません。
- 追いつかなくて講演をメモしきれていない箇所もあります。
* 資料とか他の人の纏めとか [#l51167f9]
- クラスメソッドブログ - [UE4] UNREAL FEST 2015 Yokohama ...
http://dev.classmethod.jp/event/unreal-fest-2015-yokohama...
- Let's Enjoy Unreal Engine - UNREAL FEST 2015 YOKOHAMAで...
http://unrealengine.hatenablog.com/entry/2015/10/19/224135
- togetter - 「UNREAL FEST 2015 横浜」まとめ
http://togetter.com/li/888637
- 僕の私のUnrealな日々 - 第4回UE4プチコン総括:3位をいただ...
http://unrealbussan.hatenablog.com/entry/2015/10/19/202653
** 参加外 [#yf819d2d]
*** エディタの拡張とブループリントを使いこなせば、あなた...
https://forums.unrealengine.com/showthread.php?88271-ピン...
* バンダイナムコスタジオはUnreal Wayの夢を見たか?〜ガン...
https://www.unrealengine.com/ja/blog/unreal-fest-2015-yok...
- スライド170枚
- ガンシューチームの話
-- LLA: ロストランドアドベンチャー
-- TC5: タイムクライシス5
- 業務の結果や今回の纏めが極本に。
** 悪いワークフローの例 [#c278cd49]
なにが問題なのか
- 計画の骨子より人員確保が先行している
- 最も変更してはいけない時期に最も変更が発生する
-- 賽の河原。石を積み上げては崩されて、を繰り返す。
- その変更オーダーは全員から出る
- 労力対効果は疑わしい
- ステージの情景が先に上がる。どんな敵が出るかも決まらな...
-- その後に敵が確定し、通路の幅や順番が変わったりする
-- モデルデータの後戻りは大変。作り直しになることも。
** 良いワークフローの例 [#mcc1070d]
- アンリアルウェイ
- ゲームの製作を始める前に、作り方、エンジンの設計思想を...
- ハイレベルコンセプト
↓
ブレスト/ポストイットノート
↓
シェリング(BSPブラシでレベル作る。遊びを確定)
↓
ビジュアル・パス(データ作成)
↓
スクリプティングパス(シーンのつながりとか、シネマとか)
↓
レベルスウォーム(実際に組み上げた後に足りないものを全員...
↓
ファイナルポリッシュ
↓
ビジュアルパス2(ライディングの修正とか9
↓
スクリプティング2(デザインが触った事によって再度調整)
↓
レベルスウォーム2()
↓
バグフィックス
↓
完成
- アンリアルウェイは一般的なワークフロー。UE無しでも実践...
- 物事が手戻りしないための仕組み
- 例えば
-- 1.ライティングアーティストがライティングする
-- 2.次の工程の担当者がこっちの方が良いとライティングを弄る
-- 3.越権行為。業務に支障をきたすとしてクビになることも。
- 纏め
-- 下流は上流の決定物を変更してはならない
-- 上流は下流の決定物を変更してはならない
-- 引き継ぎをきちんとしていない方が悪い
- その自身の工程の中では、裁量は移譲されるので自由に作業...
- 日本だと
-- アニメ業界がこれ
-- 漫画もそうだ
-- 少なくとも日本文化、民族性は関係ない
** ワークフローの実現例 [#zf827b28]
ナムコウェイ
- 改変の理由
-- レベルデザイナに関する懸念
--- フルスキルセットのレベルデザイナは用意が難しいので回避
-- グレーボックスと背景作業の並列化
--- グレーボックス製作が完全に終わってから、背景作業をゼ...
--- 一部は平行して作業する事になる
- グレーボックス完成後はレベル触るの禁止
- モノコック形式からレゴ形式に(パーツを組み合わせる形式に
- TAがシェーダー作業の100%を作業。アーティスト出身
- 工程A
レベル企画
↓
コンセプトアート、不足機能開発(挙動、アニメーター)
↓
PoC/グレーボクシング(ゲームプレイを完成させる)
↓
ディレクターチェック
↓
↓
背景配置作業
↓
第2レベルデザイン(背景と合わせて微調整)
- 工程B
レベル企画
↓
固有プロップデザイン
↓
アウトソース開始
↓
受領確認
↓
インポート作業
↓
↓
不足分追加発注
- 工程AとBが終わった後
背景配置作業2
↓
完成
- 3ないルール
-- プロセスを逆流しない
-- 適当に承認しない
-- 後から言い出さない
- 補足:ライティング
-- 第2レベルデザインの段階でやってる
- ワークフローは2度回せ(極本P.42)
** レベルデザイナ以外のワークフロー [#oad7587d]
- サウンド
wwise使用。
プログラマがロジックを組み込まなくても、速度とかパラメー...
- アニメーター
ステートマシン設計と実作業、ボス戦の一部も作った。
NaturalMtoion
MorphemeNetowrk
CEDECに上がってる
-- (これかな?: youtube - 【CEDEC2015】バンダイナムコス...
https://www.youtube.com/watch?v=uhV8EgmOY_k
- UI
ScaleForm Vfx
* マーケットプレースでアセットを販売してみよう!&Cascade...
https://www.unrealengine.com/ja/blog/unreal-fest-2015-yok...
- 講演スライド - http://www.slideshare.net/frontakk/unrea...
** Cascade Tips [#rb54efb4]
*** Daymicモジュール [#h2a0c75d]
- EmitterからMaterialにパラメーターを
-- Cascadeの「Dynamic」モジュールから、Materialの「Dynami...
-- Materialエディターでプレビューできない
- UVスクロール
-- Pannerでも出来るが、スピードを外から取れないので自前で...
- パーティクルの繰り返し感を無くす
-- GDCのBlizzardのDiablo3資料
-- 炎。通常の炎テクスチャと雲模様テクスチャを合成する
*** LOD作成時の罠 [#i525c68f]
- エミッタをオフにすると
一度離れてオフになり、再度近づいた際オンになるが再生タイ...
-- エミッタをオフにするのではなく、Spawnの放出量をゼロに...
- 全てのエミッタをオフにすると、復活しなくなる
-- どれか一つに「Disable LOD Keep Emitter Active」
*** Meshが回転しない罠 [#e1e45e2f]
- レベルで回転しても回転しない
-- 「Required」の「Use Local Space」をオンにすると回転で...
- MeshRotationRate等のモジュールが機能しない
*** Pivotを変更する [#f60d8947]
- 火花とかで使う。引き伸ばしの中心点を、真ん中ではなく根...
- Pivot Offsetモジュールを使ってオフセットする。
*** responsiveAA有用 [#q558a995]
- デフォルトだと、細い文字とかが潰れる
- Cascade上だと問題ないが、レベル上に配置すると潰れる
- Materialエディター内にある
- 重いかも
* C++コードはいらない!UE4で作るお手軽マルチプレイネット...
https://www.unrealengine.com/ja/blog/unreal-fest-2015-yok...
- 講演スライド - http://www.slideshare.net/masahikonakamu...
**ネットワーク [#wdc2fb9f]
- サーバー・クライアントモデル
- Listenサーバーモード
-- クライアントと同じようにゲームプレイできる。
- Dedicatedサーバーモード
-- クライアントのように画面はなく、コマンドプロンプトのよ...
- サーバーへのログイン1
レベル起動時にオプション。
-- サーバー側:ConsoleCommand[open map?listen]
-- クライアント側:open 127.0.0.1
- サーバーへのログイン2
オンラインサブシステム。プラットフォームごとにある(Steam...
LAN内ならプラットフォームなしでも動かせる。
-- サーバー側でセッション作成:Create Session
-- クライアント側でセッション検索:Find Session
-- クライアントでセッションに参加:Join Session
* アンリアルエンジン4でノンフォトリアル描画しよう! [#o04...
https://www.unrealengine.com/ja/blog/unreal-fest-2015-yok...
- 輪郭線をポストプロセスで。深度差で。
Sobelだと8点サンプリングが必要。重い。
- サンプリング数を減らしたい。
線の太さも変えたい。
- 1点だけ。法線方向にオフセットした1点。
- 稜線。法線の差。
- 法線でオフセットしてピクセルを取るので、太さを調整でき...
深度でも比較できるので、太さ調整できる。
- 水彩画。
彩度をコントロール
* サマーレッスンの制作を支えたUE4 [#v71186ec]
** なぜUE4を採用したのか [#f9b9f131]
- Elementalデモがすごかった。
- 当時考えてたこと
-- VRで重要なのは画面の情報量だ
→ 半分正解
-- 各パートが独立して施策可能な環境
- 最近のVR事情
-- 没入間、プレゼンス
-- 三人称視点、ソーシャル
-- 素早い施策、検証フィードバックが大事
** サマーレッスンの開発環境紹介 [#r0c30908]
- 従来のゲーム表現手法が通用しない。
-- 画角を変えられない。パン、カットを使えない。
-- UIをVR世界に合わせる必要がある。
↓
試作や優先度を変える必要がある
- VRレビュー会
-- 一度に体験できる人数が少ない
-- アニメーション、UI、サウンドの相互作用が多い
- VRコンソール
-- Depthが合わない時は片目で見る
- デモ環境を用意、イテレーションを回す
** UE4の理想と現実 [#ad6b374d]
- BlueprintでC++いらず
→ ほぼBPで完結
- C++を触ることになった主要因
-- プラットフォーム特有の要素
-- 修正パッチ、最適化パッチ
-- 自社製の音響Plug-in
→ C++の考え方を忘れてはいけない。
--- ラッピングのすすめ。printf等のデバッグとか
--- グローバルコンストラクタ問題。シーンに配置した際の順...
→容易にスパゲッティになる。
- マチネを使って演出
-- → マチネ+モンタージュ
--- マチネとAnimBlueprintと連携できない(プレイヤーが寄る...
--- 座標移動だけマチネ制御。
--- バージョンアップの度に挙動が変わる
-- → 2015年版はルートモーションのアニメーション
--- エクセルでシーケンス管理。
-- → Sequencerで解決するかも
- 物理ベースシェーディングで綺麗
-- PBRとUE4での扱い方を知っておく必要がある
-- イテレーションが早くて便利
-- エディターのビューとゲームで見え方が違う
PawnカメラでPostProcessを弄ってた。アーティストはビューで...
- ライティングしない天球はどうするの?
-- 処理負荷の為に、デフォルトの天球を使用しなかった
-- Emissiveに入れる数値は?
- 部屋が暗いんだけど?
-- IndirectLightingCacheの調整
-- ライトマップ解像度の調整
-- レフ版(未使用)
- ライトマップ解像度はほとんど赤(高い)
-- VolumeLightingSamplingの距離は狭くしている
- CustomDepthを利用した凹み表現
- トーンマップバイアスを利用した黒フェード
- EyeAdaptationノードを利用したUI用マテリアル
- ダミーアクタを利用したシャドウマップまとめ
- ボタン一発でPS4起動
-- 比較的安定している
-- パッケージ化は非常に楽。
-- 自動ビルド、Cook環境は必須。
** 想定外だったこと [#x8c37504]
- よかったこと
-- マーケットプレイスで高いクオリティのアセットが見れる。
-- web上に情報がたくさんある
-悪かったこと
-- メジャーバージョンアップのコストが高い
-- 修正パッチがリリースブランチに反映されるまでタイムラグ...
-- レベル遷移は早めに着手。レベルストリーミングありきで組...
** まとめ [#vdaf56f0]
- VR
-- イテレーション速度重視で環境作る。
- UE4
-- 未経験の機能の導入は慎重に
-- バージョンアップコストを考慮した運用を
* 鉄拳にアンリアルを導入した背景 [#zc6a1687]
UE4.4の実装なので、古い話があるかも。
** 業務用鉄拳7制作時の背景 [#md769023]
- タッグトーナメント2の時。
-- 2vs2のタッグバトル
-- 今回は1vs1だしもっと凄いグラフィックスだよね?
- ES3基盤想定。
-- 今回新基盤。もっと凄いよね?
- 鉄拳6から鉄拳7への絵的な進化が求められていた。
- 社内ライブラリの次世代開発と鉄拳7の発売タイミングが乖...
- UE4に至った理由
-- 鉄拳がハイエンド至高
-- エピックゲームスは日本語サポートが優れていた。
-- UE3が優れていたのは分かっていたが、一年後という事もあ...
-- 次世代表現を売りにしたUE4への期待。
*** 検証とその結果 [#i591c97a]
- 求めるグラフィックス
- 鉄拳としての面白さ
- 60fps
- 使い勝手
- 物理ベースのシェーダーが綺麗
-- 背景は良くなる可能性を秘めている
-- エフェクトも色々できそう。
-- でも工夫も必要そう
- ゲームの制御は社内の仕組みで動かす。(通信対戦も)
-- 描画エンジンとしてUE4を使用。
-- 移植コストの低減。
*** 懸念点とその解決 [#ae19fd8a]
- アーケードでの対応実績がない。
- UE4が成長過程。(アップデートによる不具合、ミドルウェア...
- ロケテはUE4.1を使用。製品はUE4.4。
- 問題が発生した際に調べにくい
- 不具合があった時に対応してもらえるのか
*** 完成後の振り返り [#v77df4c1]
** 技術解説 [#sbabbad6]
*** 短期間開発 [#r968dc2e]
- ミドルウェアの採用
-- Scaleform
-- Wwise
-- Bink2
- コア部分。エンジンに依存せず、独立分離したモジュールと...
-- UE4を描画部分として利用
- ゲームコアの実装
-- キー入力を受け手のキャラクタのスクリプト
-- アニメーションの計算、制御
-- コリジョン、ヒットチェック
-- ゲームのカメラ制御
- アプリから起動できるようにする。
-- 1.初期化
-- 2.ファイル読み込み
-- 3.毎フレーム、モジュールのmainを呼び出す
- DLLとしてプロジェクトに追加。エンジンに依存しない。
- 鉄拳モジュールからUE4
-- アニメーションBPのカスタムノードを作成。
-- ゲームカメラ。C++で。
-- パーティクルエフェクトの発生リクエスト→Cascade
-- サウンド発音リクエスト。→wwise
-- 地形のコリジョン情報問い合わせ。Levelに配置された壁Act...
-- 各種バトルイベントの通知。BPのイベントにして適時処理を...
- ゲームシーケンスはすべてC++で記述
-- 独自のタスクシステムをEngineLoopに組み込み
- レベルローディング
-- パーシスタントレベルにすべてのレベルをサブレベルとして...
-- レベルストリーミングで読み込み。
- デメリット
-- ローディングが早くない。
-- 初期化段階はメインスレッドで起こるので処理落ちする。4....
-- 全部をサブレベルにすると、レベルが増えてくると破綻しそ...
*** キャラクタ表現について [#k74c8298]
- キャラクターのカスタマイズ仕様
--共通のベーススケルトンを持つSkeltalMeshをキャラクタのAc...
-- 装備情報(追加される技とか)の管理はBPで実装。
- 不透明と半透明の描画結果の違い
-- 髪の毛、ほつれた胴着の裾を半透明で表現したい。
-- 半透明はライティングとシャドウに差異。
-- 不透明とアルファの2重で書いて解決。不透明にアルファを...
-異方性反射
-- GGXを有効化。
-- シェーディングモデルとマテリアルパラメーターに追加。
- ライトチャンネル
-- キャラクタにだけ適用されるライト
-- 背景に馴染むのはいいが目立たせたい
-- マテリアルとライトにライトチャンネル情報を追加。
-- ライトチャンネル情報をGバッファの空きビットに格納。ラ...
- 苦労した点
-- バージョンアップの追従が大変
--- ミドルウェアのインテグレーション待ち
--- バージョンアップによって、アセットが壊れていないこと...
→ 時間かけて全部確認した。
-- UE4に安定板の概念が無い。
--- 4.8でリリースを決めても、BugFixの4.8.4等の最新版が出...
- 良かった点
-- BP大活躍
--- 早いイテレーション
--- PGでなくても読み書きしやすい
--- 処理速度が問題でC++に書き直したことはない
-- PBRによる美しいグラフィクス
--- アセットが正しく作られていること
--- ライティングやポストプロセスの仕様を把握すること
--- 機能を誤用すると破綻した絵になる
** ビジュアル製作 [#lc34cf1c]
* 感想 [#x1912359]
- 今回自費参加という事で4万円程出費しましたが、面白い講演...
-- お仕事がマスター期間中だったので、当日朝5時に大阪出発...
-- 体調もよろしく無かったので近場に泊まりました。http://w...
-- oO(次こそは前後に休みを取ってハマスタに行くんだ……!)
- VR体験会。知り合いに聞いた所、30分前に並んで整理券取れ...
- 非公式懇親会に参加してきました。
-- 挨拶する人がほとんどTLで見る凄い人ばっかりでした。非常...
-- 開催+誘って頂いて、関係者の方々ありがとうございます。
-- twitterアイコン付きの名札を下げておくのはやっぱり大事...
-- 学生の頃から参考にしていた、もんしょ先生のサイン貰った!
&ref(UnrealFest2015Yokohama_01.png,,30%);
終了行:
#contents
* 概要 [#j421a12f]
https://atnd.org/events/70010
- 間違ってたらすみません。
- 追いつかなくて講演をメモしきれていない箇所もあります。
* 資料とか他の人の纏めとか [#l51167f9]
- クラスメソッドブログ - [UE4] UNREAL FEST 2015 Yokohama ...
http://dev.classmethod.jp/event/unreal-fest-2015-yokohama...
- Let's Enjoy Unreal Engine - UNREAL FEST 2015 YOKOHAMAで...
http://unrealengine.hatenablog.com/entry/2015/10/19/224135
- togetter - 「UNREAL FEST 2015 横浜」まとめ
http://togetter.com/li/888637
- 僕の私のUnrealな日々 - 第4回UE4プチコン総括:3位をいただ...
http://unrealbussan.hatenablog.com/entry/2015/10/19/202653
** 参加外 [#yf819d2d]
*** エディタの拡張とブループリントを使いこなせば、あなた...
https://forums.unrealengine.com/showthread.php?88271-ピン...
* バンダイナムコスタジオはUnreal Wayの夢を見たか?〜ガン...
https://www.unrealengine.com/ja/blog/unreal-fest-2015-yok...
- スライド170枚
- ガンシューチームの話
-- LLA: ロストランドアドベンチャー
-- TC5: タイムクライシス5
- 業務の結果や今回の纏めが極本に。
** 悪いワークフローの例 [#c278cd49]
なにが問題なのか
- 計画の骨子より人員確保が先行している
- 最も変更してはいけない時期に最も変更が発生する
-- 賽の河原。石を積み上げては崩されて、を繰り返す。
- その変更オーダーは全員から出る
- 労力対効果は疑わしい
- ステージの情景が先に上がる。どんな敵が出るかも決まらな...
-- その後に敵が確定し、通路の幅や順番が変わったりする
-- モデルデータの後戻りは大変。作り直しになることも。
** 良いワークフローの例 [#mcc1070d]
- アンリアルウェイ
- ゲームの製作を始める前に、作り方、エンジンの設計思想を...
- ハイレベルコンセプト
↓
ブレスト/ポストイットノート
↓
シェリング(BSPブラシでレベル作る。遊びを確定)
↓
ビジュアル・パス(データ作成)
↓
スクリプティングパス(シーンのつながりとか、シネマとか)
↓
レベルスウォーム(実際に組み上げた後に足りないものを全員...
↓
ファイナルポリッシュ
↓
ビジュアルパス2(ライディングの修正とか9
↓
スクリプティング2(デザインが触った事によって再度調整)
↓
レベルスウォーム2()
↓
バグフィックス
↓
完成
- アンリアルウェイは一般的なワークフロー。UE無しでも実践...
- 物事が手戻りしないための仕組み
- 例えば
-- 1.ライティングアーティストがライティングする
-- 2.次の工程の担当者がこっちの方が良いとライティングを弄る
-- 3.越権行為。業務に支障をきたすとしてクビになることも。
- 纏め
-- 下流は上流の決定物を変更してはならない
-- 上流は下流の決定物を変更してはならない
-- 引き継ぎをきちんとしていない方が悪い
- その自身の工程の中では、裁量は移譲されるので自由に作業...
- 日本だと
-- アニメ業界がこれ
-- 漫画もそうだ
-- 少なくとも日本文化、民族性は関係ない
** ワークフローの実現例 [#zf827b28]
ナムコウェイ
- 改変の理由
-- レベルデザイナに関する懸念
--- フルスキルセットのレベルデザイナは用意が難しいので回避
-- グレーボックスと背景作業の並列化
--- グレーボックス製作が完全に終わってから、背景作業をゼ...
--- 一部は平行して作業する事になる
- グレーボックス完成後はレベル触るの禁止
- モノコック形式からレゴ形式に(パーツを組み合わせる形式に
- TAがシェーダー作業の100%を作業。アーティスト出身
- 工程A
レベル企画
↓
コンセプトアート、不足機能開発(挙動、アニメーター)
↓
PoC/グレーボクシング(ゲームプレイを完成させる)
↓
ディレクターチェック
↓
↓
背景配置作業
↓
第2レベルデザイン(背景と合わせて微調整)
- 工程B
レベル企画
↓
固有プロップデザイン
↓
アウトソース開始
↓
受領確認
↓
インポート作業
↓
↓
不足分追加発注
- 工程AとBが終わった後
背景配置作業2
↓
完成
- 3ないルール
-- プロセスを逆流しない
-- 適当に承認しない
-- 後から言い出さない
- 補足:ライティング
-- 第2レベルデザインの段階でやってる
- ワークフローは2度回せ(極本P.42)
** レベルデザイナ以外のワークフロー [#oad7587d]
- サウンド
wwise使用。
プログラマがロジックを組み込まなくても、速度とかパラメー...
- アニメーター
ステートマシン設計と実作業、ボス戦の一部も作った。
NaturalMtoion
MorphemeNetowrk
CEDECに上がってる
-- (これかな?: youtube - 【CEDEC2015】バンダイナムコス...
https://www.youtube.com/watch?v=uhV8EgmOY_k
- UI
ScaleForm Vfx
* マーケットプレースでアセットを販売してみよう!&Cascade...
https://www.unrealengine.com/ja/blog/unreal-fest-2015-yok...
- 講演スライド - http://www.slideshare.net/frontakk/unrea...
** Cascade Tips [#rb54efb4]
*** Daymicモジュール [#h2a0c75d]
- EmitterからMaterialにパラメーターを
-- Cascadeの「Dynamic」モジュールから、Materialの「Dynami...
-- Materialエディターでプレビューできない
- UVスクロール
-- Pannerでも出来るが、スピードを外から取れないので自前で...
- パーティクルの繰り返し感を無くす
-- GDCのBlizzardのDiablo3資料
-- 炎。通常の炎テクスチャと雲模様テクスチャを合成する
*** LOD作成時の罠 [#i525c68f]
- エミッタをオフにすると
一度離れてオフになり、再度近づいた際オンになるが再生タイ...
-- エミッタをオフにするのではなく、Spawnの放出量をゼロに...
- 全てのエミッタをオフにすると、復活しなくなる
-- どれか一つに「Disable LOD Keep Emitter Active」
*** Meshが回転しない罠 [#e1e45e2f]
- レベルで回転しても回転しない
-- 「Required」の「Use Local Space」をオンにすると回転で...
- MeshRotationRate等のモジュールが機能しない
*** Pivotを変更する [#f60d8947]
- 火花とかで使う。引き伸ばしの中心点を、真ん中ではなく根...
- Pivot Offsetモジュールを使ってオフセットする。
*** responsiveAA有用 [#q558a995]
- デフォルトだと、細い文字とかが潰れる
- Cascade上だと問題ないが、レベル上に配置すると潰れる
- Materialエディター内にある
- 重いかも
* C++コードはいらない!UE4で作るお手軽マルチプレイネット...
https://www.unrealengine.com/ja/blog/unreal-fest-2015-yok...
- 講演スライド - http://www.slideshare.net/masahikonakamu...
**ネットワーク [#wdc2fb9f]
- サーバー・クライアントモデル
- Listenサーバーモード
-- クライアントと同じようにゲームプレイできる。
- Dedicatedサーバーモード
-- クライアントのように画面はなく、コマンドプロンプトのよ...
- サーバーへのログイン1
レベル起動時にオプション。
-- サーバー側:ConsoleCommand[open map?listen]
-- クライアント側:open 127.0.0.1
- サーバーへのログイン2
オンラインサブシステム。プラットフォームごとにある(Steam...
LAN内ならプラットフォームなしでも動かせる。
-- サーバー側でセッション作成:Create Session
-- クライアント側でセッション検索:Find Session
-- クライアントでセッションに参加:Join Session
* アンリアルエンジン4でノンフォトリアル描画しよう! [#o04...
https://www.unrealengine.com/ja/blog/unreal-fest-2015-yok...
- 輪郭線をポストプロセスで。深度差で。
Sobelだと8点サンプリングが必要。重い。
- サンプリング数を減らしたい。
線の太さも変えたい。
- 1点だけ。法線方向にオフセットした1点。
- 稜線。法線の差。
- 法線でオフセットしてピクセルを取るので、太さを調整でき...
深度でも比較できるので、太さ調整できる。
- 水彩画。
彩度をコントロール
* サマーレッスンの制作を支えたUE4 [#v71186ec]
** なぜUE4を採用したのか [#f9b9f131]
- Elementalデモがすごかった。
- 当時考えてたこと
-- VRで重要なのは画面の情報量だ
→ 半分正解
-- 各パートが独立して施策可能な環境
- 最近のVR事情
-- 没入間、プレゼンス
-- 三人称視点、ソーシャル
-- 素早い施策、検証フィードバックが大事
** サマーレッスンの開発環境紹介 [#r0c30908]
- 従来のゲーム表現手法が通用しない。
-- 画角を変えられない。パン、カットを使えない。
-- UIをVR世界に合わせる必要がある。
↓
試作や優先度を変える必要がある
- VRレビュー会
-- 一度に体験できる人数が少ない
-- アニメーション、UI、サウンドの相互作用が多い
- VRコンソール
-- Depthが合わない時は片目で見る
- デモ環境を用意、イテレーションを回す
** UE4の理想と現実 [#ad6b374d]
- BlueprintでC++いらず
→ ほぼBPで完結
- C++を触ることになった主要因
-- プラットフォーム特有の要素
-- 修正パッチ、最適化パッチ
-- 自社製の音響Plug-in
→ C++の考え方を忘れてはいけない。
--- ラッピングのすすめ。printf等のデバッグとか
--- グローバルコンストラクタ問題。シーンに配置した際の順...
→容易にスパゲッティになる。
- マチネを使って演出
-- → マチネ+モンタージュ
--- マチネとAnimBlueprintと連携できない(プレイヤーが寄る...
--- 座標移動だけマチネ制御。
--- バージョンアップの度に挙動が変わる
-- → 2015年版はルートモーションのアニメーション
--- エクセルでシーケンス管理。
-- → Sequencerで解決するかも
- 物理ベースシェーディングで綺麗
-- PBRとUE4での扱い方を知っておく必要がある
-- イテレーションが早くて便利
-- エディターのビューとゲームで見え方が違う
PawnカメラでPostProcessを弄ってた。アーティストはビューで...
- ライティングしない天球はどうするの?
-- 処理負荷の為に、デフォルトの天球を使用しなかった
-- Emissiveに入れる数値は?
- 部屋が暗いんだけど?
-- IndirectLightingCacheの調整
-- ライトマップ解像度の調整
-- レフ版(未使用)
- ライトマップ解像度はほとんど赤(高い)
-- VolumeLightingSamplingの距離は狭くしている
- CustomDepthを利用した凹み表現
- トーンマップバイアスを利用した黒フェード
- EyeAdaptationノードを利用したUI用マテリアル
- ダミーアクタを利用したシャドウマップまとめ
- ボタン一発でPS4起動
-- 比較的安定している
-- パッケージ化は非常に楽。
-- 自動ビルド、Cook環境は必須。
** 想定外だったこと [#x8c37504]
- よかったこと
-- マーケットプレイスで高いクオリティのアセットが見れる。
-- web上に情報がたくさんある
-悪かったこと
-- メジャーバージョンアップのコストが高い
-- 修正パッチがリリースブランチに反映されるまでタイムラグ...
-- レベル遷移は早めに着手。レベルストリーミングありきで組...
** まとめ [#vdaf56f0]
- VR
-- イテレーション速度重視で環境作る。
- UE4
-- 未経験の機能の導入は慎重に
-- バージョンアップコストを考慮した運用を
* 鉄拳にアンリアルを導入した背景 [#zc6a1687]
UE4.4の実装なので、古い話があるかも。
** 業務用鉄拳7制作時の背景 [#md769023]
- タッグトーナメント2の時。
-- 2vs2のタッグバトル
-- 今回は1vs1だしもっと凄いグラフィックスだよね?
- ES3基盤想定。
-- 今回新基盤。もっと凄いよね?
- 鉄拳6から鉄拳7への絵的な進化が求められていた。
- 社内ライブラリの次世代開発と鉄拳7の発売タイミングが乖...
- UE4に至った理由
-- 鉄拳がハイエンド至高
-- エピックゲームスは日本語サポートが優れていた。
-- UE3が優れていたのは分かっていたが、一年後という事もあ...
-- 次世代表現を売りにしたUE4への期待。
*** 検証とその結果 [#i591c97a]
- 求めるグラフィックス
- 鉄拳としての面白さ
- 60fps
- 使い勝手
- 物理ベースのシェーダーが綺麗
-- 背景は良くなる可能性を秘めている
-- エフェクトも色々できそう。
-- でも工夫も必要そう
- ゲームの制御は社内の仕組みで動かす。(通信対戦も)
-- 描画エンジンとしてUE4を使用。
-- 移植コストの低減。
*** 懸念点とその解決 [#ae19fd8a]
- アーケードでの対応実績がない。
- UE4が成長過程。(アップデートによる不具合、ミドルウェア...
- ロケテはUE4.1を使用。製品はUE4.4。
- 問題が発生した際に調べにくい
- 不具合があった時に対応してもらえるのか
*** 完成後の振り返り [#v77df4c1]
** 技術解説 [#sbabbad6]
*** 短期間開発 [#r968dc2e]
- ミドルウェアの採用
-- Scaleform
-- Wwise
-- Bink2
- コア部分。エンジンに依存せず、独立分離したモジュールと...
-- UE4を描画部分として利用
- ゲームコアの実装
-- キー入力を受け手のキャラクタのスクリプト
-- アニメーションの計算、制御
-- コリジョン、ヒットチェック
-- ゲームのカメラ制御
- アプリから起動できるようにする。
-- 1.初期化
-- 2.ファイル読み込み
-- 3.毎フレーム、モジュールのmainを呼び出す
- DLLとしてプロジェクトに追加。エンジンに依存しない。
- 鉄拳モジュールからUE4
-- アニメーションBPのカスタムノードを作成。
-- ゲームカメラ。C++で。
-- パーティクルエフェクトの発生リクエスト→Cascade
-- サウンド発音リクエスト。→wwise
-- 地形のコリジョン情報問い合わせ。Levelに配置された壁Act...
-- 各種バトルイベントの通知。BPのイベントにして適時処理を...
- ゲームシーケンスはすべてC++で記述
-- 独自のタスクシステムをEngineLoopに組み込み
- レベルローディング
-- パーシスタントレベルにすべてのレベルをサブレベルとして...
-- レベルストリーミングで読み込み。
- デメリット
-- ローディングが早くない。
-- 初期化段階はメインスレッドで起こるので処理落ちする。4....
-- 全部をサブレベルにすると、レベルが増えてくると破綻しそ...
*** キャラクタ表現について [#k74c8298]
- キャラクターのカスタマイズ仕様
--共通のベーススケルトンを持つSkeltalMeshをキャラクタのAc...
-- 装備情報(追加される技とか)の管理はBPで実装。
- 不透明と半透明の描画結果の違い
-- 髪の毛、ほつれた胴着の裾を半透明で表現したい。
-- 半透明はライティングとシャドウに差異。
-- 不透明とアルファの2重で書いて解決。不透明にアルファを...
-異方性反射
-- GGXを有効化。
-- シェーディングモデルとマテリアルパラメーターに追加。
- ライトチャンネル
-- キャラクタにだけ適用されるライト
-- 背景に馴染むのはいいが目立たせたい
-- マテリアルとライトにライトチャンネル情報を追加。
-- ライトチャンネル情報をGバッファの空きビットに格納。ラ...
- 苦労した点
-- バージョンアップの追従が大変
--- ミドルウェアのインテグレーション待ち
--- バージョンアップによって、アセットが壊れていないこと...
→ 時間かけて全部確認した。
-- UE4に安定板の概念が無い。
--- 4.8でリリースを決めても、BugFixの4.8.4等の最新版が出...
- 良かった点
-- BP大活躍
--- 早いイテレーション
--- PGでなくても読み書きしやすい
--- 処理速度が問題でC++に書き直したことはない
-- PBRによる美しいグラフィクス
--- アセットが正しく作られていること
--- ライティングやポストプロセスの仕様を把握すること
--- 機能を誤用すると破綻した絵になる
** ビジュアル製作 [#lc34cf1c]
* 感想 [#x1912359]
- 今回自費参加という事で4万円程出費しましたが、面白い講演...
-- お仕事がマスター期間中だったので、当日朝5時に大阪出発...
-- 体調もよろしく無かったので近場に泊まりました。http://w...
-- oO(次こそは前後に休みを取ってハマスタに行くんだ……!)
- VR体験会。知り合いに聞いた所、30分前に並んで整理券取れ...
- 非公式懇親会に参加してきました。
-- 挨拶する人がほとんどTLで見る凄い人ばっかりでした。非常...
-- 開催+誘って頂いて、関係者の方々ありがとうございます。
-- twitterアイコン付きの名札を下げておくのはやっぱり大事...
-- 学生の頃から参考にしていた、もんしょ先生のサイン貰った!
&ref(UnrealFest2015Yokohama_01.png,,30%);
ページ名: