Luminous Engineの プロシージャルへの取り組み スピーカー
Total Page:16
File Type:pdf, Size:1020Kb
オープンワールドを、 自然に意思を持って埋める。 LUMINOUS ENGINEの プロシージャルへの取り組み スピーカー エンジニア アーティスト © Luminous Productions Co., Ltd. 本日の内容 前置き © Luminous Productions Co., Ltd. 広いワールドマップを どう編集するか? への取り組み © Luminous Productions Co., Ltd. © Luminous Productions Co., Ltd. https://youtu.be/TG0q5Xh-efQ © Luminous Productions Co., Ltd. 過去の取り組み © Luminous Productions Co., Ltd. カーブを引く。 植物を塗る。 地形を上げ下げする。 といったことがリアルタイムでできる環境でした。 岩には植物を生やさない。 急斜面には植物を生やさない。 © SQUARE ENIX CO., LTD. All Rights Reserved. といった、少し賢い機能もありました。 FINAL FANTASY XVの時 高速に編集できる環境でした。 © Luminous Productions Co., Ltd. 過去の課題 • 編集コストがまだ高い – 高速に塗れるけど、 それでも追いつかないくらいにワールドマップは広い。 • 少し賢い機能がブラックボックス化 – 拡張するには、プログラマに依頼する必要がある。 • 地形が変わった時、再編集する必要があった。 © Luminous Productions Co., Ltd. 自動化したい。 © Luminous Productions Co., Ltd. 手で1つずつ置く。 塗って、高速に置く 自動で置く。 © Luminous Productions Co., Ltd. 新しいツールの 目標 © Luminous Productions Co., Ltd. 新しいツールの目標 • ミクロからマクロまで • 拡張、応用しやすく • 毎回同じ結果 • 結果をリアルタイムに確認 © Luminous Productions Co., Ltd. ミクロ(手作業)からマクロ(自動)まで 大域の、自動生成まで 細かな、手編集から、 © Luminous Productions Co., Ltd. 拡張、応用しやすく 単純な処理の組み合わせで表現。 ノードベースで プロシージャルの演算を定義 © Luminous Productions Co., Ltd. 毎回同じ結果 • 同じ入力に対しては、同じ結果が生成される。 – ランダムな要素の排除 • ワールド広域を生成しても、カメラに映っている一部のみ 生成しても、結果が同じになるようにする。 © Luminous Productions Co., Ltd. 結果をリアルタイムに確認 リアルタイムで編集して反映される動画 © Luminous Productions Co., Ltd. 詳細 © Luminous Productions Co., Ltd. 本日の内容 • プロシージャルの話 • ワークフローの話 • 処理の中身の話 © Luminous Productions Co., Ltd. 本日の内容 • プロシージャルの話 • ワークフローの話 • 処理の中身の話 演算をどう組み合わせて、プロシージャルを作ってく か?という話。 © Luminous Productions Co., Ltd. 本日の内容 • プロシージャルの話 • ワークフローの話 • 処理の中身の話 プロシージャルと、レベル作業者をどうつなぐか? というワークフローの話。 © Luminous Productions Co., Ltd. 本日の内容 • プロシージャルの話 • ワークフローの話 • 処理の中身の話 どのように処理を回しているか? というプログラマ向けの話。 © Luminous Productions Co., Ltd. プロシージャルの話 © Luminous Productions Co., Ltd. 自己紹介 山本 健斗 エンバイロメント アーティスト 2018年、株式会社Luminous Productions 入社 プロシージャル植生の作成 Env用Shader開発 アセット製作やマップレイアウト © Luminous Productions Co., Ltd. プロシージャル植生 © Luminous Productions Co., Ltd. プロシージャル植生 Foliage マスク&ポイントクラウド Effect 環境設定 Shader用マスク etc.. © Luminous Productions Co., Ltd. プロシージャル植生 © Luminous Productions Co., Ltd. プロシージャル植生 各種ノイズマスク 地形テクスチャ Perlin Noise Ground Normal fBm Ground Occlusion Random Noise Erosion Mask etc.. © Luminous Productions Co., Ltd. プロシージャル植生 © Luminous Productions Co., Ltd. プロシージャル植生 2値化 © Luminous Productions Co., Ltd. プロシージャル植生 減算 2値化 © Luminous Productions Co., Ltd. プロシージャル植生 © Luminous Productions Co., Ltd. プロシージャル植生 © Luminous Productions Co., Ltd. プロシージャル植生 AO TreeArea 減算 Slope Noise OtherArea Artist Paint © Luminous Productions Co., Ltd. プロシージャル植生 ベースの木配置 © Luminous Productions Co., Ltd. プロシージャル植生 木が多い 木が少ない © Luminous Productions Co., Ltd. プロシージャル植生 木の配置マスク 木の配置数 ポイントの生成数 汎用的に生成数を調整可能 マスクから木の密度は判断できない © Luminous Productions Co., Ltd. プロシージャル植生 木のポイントからマスク生成 他の植生と重ならないため 木の密度判断用 © Luminous Productions Co., Ltd. プロシージャル植生 範囲拡大で隙間埋め 外側から範囲が縮小 木のポイントマスク 森のマスク原型 © Luminous Productions Co., Ltd. プロシージャル植生 森マスクの用途 通常の植物 植物 森の植物 森マスク © Luminous Productions Co., Ltd. プロシージャル植生 森マスクの用途 花畑マスク × 森マスク © Luminous Productions Co., Ltd. プロシージャル植生 森マスクの用途 木の根元 + ノイズ 森の堆積物 根っこ 森マスク © Luminous Productions Co., Ltd. プロシージャル植生 森マスクの用途 森の奥地 木のスケール 森植生が占める割合 より鬱蒼とした配置 Etc... © Luminous Productions Co., Ltd. プロシージャル植生 マスクベースのノードネットワーク 工夫次第で色々植生表現できる!! エンジン上でリアルタイム反映 最終Lookがすぐに確認できて超便利!! © Luminous Productions Co., Ltd. ワークフロー化 © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルの課題 部分的な対応に弱い © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルの課題 ネットワークの作成難度 © Luminous Productions Co., Ltd. ワークフロー化 ネットワーク プロシージャル処理 最終結果 アーティストの編集 © Luminous Productions Co., Ltd. ワークフロー化 自由に編集が可能で、自動で自然な見た目へ プロシージャルを レイアウト オリジナル 構成するマスクの との連携 植生の追加 上書き © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き ノイズ・地形テクスチャキーとなる各種エリアマスク 崖 花畑 岩場 出力 草原 茂み 土 下草 森 © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き ノイズ・地形テクスチャキーとなる各種エリアマスク 崖 岩場 花畑 OFF 出力 草原 茂み 土 下草 森 OFF © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き 状況による様々な出力結果 マスク強度値など ポイント生成数崖 岩場 花畑 草原 茂み 土 下草 森 アーティストの各種ペイント © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き サブエリアマスク 森マスク 茂みマスク Etc... エリアマスク 草地面マスク 土地面マスク Etc... © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き 土エリアマスク 茂みエリアマスク © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き 森エリアと土エリアの併用 © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き マスク群A マスクペイントは共通 出力 マスクで マスク群B ブレンド © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き マ マ ス ス ク ク 群 群 A B © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き リージョンマスク Aの地域 Bの地域 各競合 優 先 エリアマスク 草地面 土地面 岩地面 Etc... 各競合 順 サブエリアマスク 森 茂み Etc... 併用可 マスクの塗り分けで、専用の景色に変わる © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き 森ペイント Aの地域 Bの地域 © Luminous Productions Co., Ltd. ワークフロー化 プロシージャルを構成するマスクの上書き 茂みペイント 草地面 枯れ草地面 森の中 © Luminous Productions Co., Ltd. ワークフロー化 自由に編集が可能で、自動で自然な見た目へ プロシージャルを レイアウト オリジナル 構成するマスクの との連携 植生の追加 上書き © Luminous Productions Co., Ltd. ワークフロー化 レイアウトとの連携 コリジョンをマスクとして取得 © Luminous Productions Co., Ltd. ワークフロー化 レイアウトとの連携 状況による様々な出力結果 崖 岩場 花畑 草原 茂み 土 下草 森 モデルから取得した属性 © Luminous Productions Co., Ltd. ワークフロー化 レイアウトとの連携 轍部分は草マテリアル © Luminous Productions Co., Ltd. ワークフロー化 レイアウトとの連携 属性マスク取れるなら.. 連携してもっと絵を強化 © Luminous Productions Co., Ltd. ワークフロー化 レイアウトとの連携 © Luminous Productions Co., Ltd. ワークフロー化 レイアウトとの連携 上面は草マテリアル 大きな石属性モデル周り の特別処理 © Luminous Productions Co., Ltd. ワークフロー化 レイアウトとの連携 自動配置+地面なじませ 自動配置 手配置 © Luminous Productions Co., Ltd. ワークフロー化 レイアウトとの連携 水属性周りの 特別処理 © Luminous Productions Co., Ltd. ワークフロー化 自由に編集が可能で、自動で自然な見た目へ プロシージャルを レイアウト オリジナル 構成するマスクの との連携 植生の追加 上書き © Luminous Productions Co., Ltd. ワークフロー化 オリジナル植生の追加 オリジナル植生セット マスク範囲 + パラメーター + リソース 生成数 リソースウェイト トランスフォーム ランダマイズ 生成閾値 © Luminous Productions Co., Ltd. ワークフロー化 オリジナル植生の追加 キーマスク 花畑 茂み 森 オリジナルマスク © Luminous Productions Co., Ltd. ワークフロー化 レイアウトとの連携 自動化と組み合わせて クオリティと開発速度の両立へ © Luminous Productions Co., Ltd. ワークフローの話 © Luminous Productions Co., Ltd. 自己紹介 濵野 翔平 • 株式会社 Luminous Productions • プログラマー • 「FINAL FANTASY XV WINDOWS EDITION」 プラットフォーム対応、マウス・キーボード対応等を担当 © Luminous Productions Co., Ltd. 目指したのは・・ © Luminous Productions Co., Ltd. よりシンプルな操作で より複雑な結果を © Luminous Productions Co., Ltd. 目指したのは・・ • レベル作業をする全員がネットワーク内の1つ1つのノー ドの処理を把握するのは大変 – 「良い感じ」になっていればOK – 細かいパラメータも簡単に調整できるように © Luminous Productions Co., Ltd. データ作成のワークフロー © Luminous Productions Co., Ltd. セットアップの流れ © Luminous Productions Co., Ltd. データ作成のワークフロー プロシージャル定義 レベル上にゲームオブジェクトとして配置 パラメータ編集 出力ファイル更新 © Luminous Productions Co., Ltd. データ作成のワークフロー プロシージャル定義 レベル上にゲームオブジェクトとして配置 パラメータ編集 出力ファイル更新 © Luminous Productions Co., Ltd. データ作成のワークフロー 必要なのは・・・ • ネットワークのパス • プロシージャルの適用範囲 © Luminous Productions Co., Ltd. データ作成のワークフロー プロシージャル定義 レベル上にゲームオブジェクトとして配置 リアルタイムに結果を パラメータ編集 確認・編集 出力ファイル更新 © Luminous Productions Co., Ltd. データ作成のワークフロー プロシージャル定義 レベル上にゲームオブジェクトとして配置 リアルタイムに結果を パラメータ編集 確認・編集 出力ファイル更新 © Luminous Productions Co., Ltd. データ作成のワークフロー • 編集するのは、「プロシージャルの入力データ」 – 出力データ(=配置データ)ではない。 • 配置データは、専用サーバーで定期ビルド – データのコンフリクト回避 – 特定領域の即時ビルドリクエストも可能 © Luminous Productions Co., Ltd. データの編集、どうやる? © Luminous Productions Co., Ltd. 基本ツール紹介 © Luminous Productions Co., Ltd. Sculpt © Luminous Productions Co., Ltd. Paint © Luminous Productions Co., Ltd. Curve © Luminous Productions Co., Ltd. 基本ツール紹介 © Luminous Productions Co., Ltd. 基本ツール紹介 © Luminous Productions Co., Ltd. カスタムパラメータ © Luminous Productions Co., Ltd. Expose パラメータ Network A Area 1 Network A‘ ✕ Area 2 • リソースだけ変更したい • 無駄が多い • 生成数だけ調整したい • メンテナンスコスト✕ © Luminous Productions Co., Ltd. Expose パラメータ ネットワークの外から 編集可能に © Luminous Productions Co., Ltd. カーブのポイントごとのパラメータ編集 © Luminous Productions Co., Ltd. レイヤーデータ © Luminous Productions Co., Ltd. レイヤーデータ 入力 Network A ペイントデータ ←編集 Network B Area リソース ←編集 生成数 ←編集 Network C 追加はできない © Luminous Productions Co., Ltd. レイヤーデータ • 一つのグラフに同じような ネットワークが複数存在 • 無駄な処理が多い • メンテナンスコスト高い • 追加対応に弱い © Luminous Productions Co., Ltd. レイヤーデータ 1つにまとめる © Luminous Productions Co., Ltd. レイヤーデータ 入力 メタデータA ネットワーク メタデータB 出力ファイル 実際に流れるデータ メタデータC 出力ファイル メタデータD 出力ファイル © Luminous Productions Co., Ltd. レイヤーデータ © Luminous Productions Co., Ltd. 処理の中身の話 © Luminous Productions Co., Ltd. スピーカー • 岩﨑 浩 Hiroshi Iwasaki – 株式会社 Luminous Productions • プログラムセクション ディレクター • システム系プログラマ 2009年 株式会社 スクウェア・エニックス 入社 自社エンジン開発 FINAL FANTASY XV MONSTER OF THE DEEP: FINAL FANTASY XV © Luminous Productions Co., Ltd. 内部処理の話 © Luminous Productions Co., Ltd. 目指したのは、 発展性 応用のしやすさ 拡張のしやすさ メンテのしやすさ © Luminous Productions Co., Ltd. 単純さを保つ © Luminous Productions Co., Ltd. 目標 単純 単純 単純な 複雑そうに 処理 見える結果 単純 単純 単純単純 単純単純 © Luminous Productions Co., Ltd. © Luminous Productions Co., Ltd. 地形を 上げ下げしてるんだね! © Luminous Productions Co., Ltd. 入力 処理 出力 これを上げ下げしてました! © Luminous Productions Co., Ltd. © Luminous Productions Co., Ltd. 何か演算 何か入力 何か出力 エディタ 分離 結果 © Luminous Productions Co., Ltd. どれだけ 一般化出来るか? が大事 © Luminous Productions Co., Ltd. もう一人、大事な人 入力 処理 出力 ノードの間を流れるデータ © Luminous Productions Co., Ltd. 演算 入力 出力 間を流れるデータ © Luminous Productions Co., Ltd. 登場人物 • 入力 • 演算 • 出力 • 間を流れるデータ 演算 入力 出力 間を流れるデータ © Luminous Productions Co., Ltd. 入力 • 外部画像ファイル • 塗るマスク – 汎用 – ハイトマップ • カーブ – 1本カーブ – 複数本カーブ • ノイズ • 地面情報 – 法線、高さ、遮蔽など • レベルのゲームオブジェクト © Luminous Productions Co., Ltd. 処理 いろいろな演算処理 © Luminous Productions Co., Ltd. 出力 • 地形 – 頂点&マテリアル • 植物配置 • ゲームオブジェクト配置 • エフェクト配置 • メッシュ生成 ・・・・ © Luminous Productions Co., Ltd. 入力 演算 出力 どれもたくさん種類がある! でも、このバリエーションは大事。 © Luminous Productions Co., Ltd. 単純さを守るのは、 間を流れるデータ © Luminous Productions Co., Ltd. 演算 演算 入力 出力 入力 間のデータ 出力 真ん中が単純なら、 全体も単純さを維持できる。 入力 出力 演算 演算 © Luminous Productions Co., Ltd. 間を流れるデータ マスク ポイントクラウド 2種類のみ © Luminous Productions Co., Ltd. マスク • 画像みたいな、データ。