Unityではじめるオープンワールド入門 アーティスト編

1.1K Views

September 10, 19

スライド概要

2019/9/5に開催されたCEDEC2019の講演スライドです。
講師:大下岳志(ユニティ・テクノロジーズ・ジャパン合同会社)
  :山村達彦 (ユニティ・テクノロジーズ・ジャパン合同会社)

Unityのイベント資料はこちらから:
https://www.slideshare.net/UnityTechnologiesJapan/clipboards

profile-image

リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

アーティスト編 Generative Art — Made with Unity Unityではじめる オープンワールド制作

2.

自己紹介 大下岳志 山村達彦 Unity Technologies Japan エバンジェリスト Unity Technologies Japan エバンジェリスト ・前職は関西の開発会社Artist、TA ・パイプライン・ワークフロー構築 ・Game Creators Conference 実行委員 ・CEDEC 2014~2018 運営委員 ・フィールドエンジニアとして Unityユーザーのサポート

3.

Unityではじめるオープンワールド制作 広域で大量のオブジェクトを扱うオープンワールド風フィールドをUnityで、 アーティスト編 エンジニア編 どう作る? どう動かす? 3

4.

アーティスト編・アジェンダ サンプル紹介 ワークフローの構築 工程とデータの作り込み LWRP アーティスト編・まとめ

5.

サンプル紹介

7.

Open World Demo ・1000m×1000m×500m ・約42000個の配置オブジェクト ・Terrain機能による地形作成 ・データ制作 2人月 ・モバイル向け調整 1人月 PC版、iOS版 プレイアブルデモ展示中 7

8.

Open World Demo Unity 2019.1.x ・LightWeight Render Pipeline ・Post Processing Stack V2 ・Shader Graph ・Terrain / Terrain Tools ・H-LOD ・DOTS 8

9.

DOTS? Data-Oriented Technology Stack Unityで大量のオブジェクトを 効率よく動かす機能群 C# Job System Entity Component System(ECS) Burst Compiler 詳しくはエンジニア編で 9

10.

ワークフローの構築

11.

ワークフローの構築 オープンワールド背景を作ろう! ・プロジェクト… Standard-Asset-Characters ・広さ… とりあえず1km四方 ・配置物量… まずは必要なだけ ・配置物種類… まずは必要なだけ やってみないとわからない事だらけ (締め切りだけは決まっている) Unityの機能、特にTerrainの確認から 11

12.

ワークフローの構築 Unity Terrain ・画像ベースの地形生成機能 Heightmap …地形の高さ情報 Splatmap …質感の分布 Treemap …樹木の分布 Detailmap …草など小物の分布 ・ただしデータは独自形式 ・ランタイムで3D化。LODが強力 12

13.

ワークフローの構築 Unity Terrain ・画像ベースの地形生成機能 Heightmap …地形の高さ情報 Splatmap …質感の分布 Treemap …樹木の分布 Detailmap …草など小物の分布 ・ただしデータは独自形式 ・ランタイムで3D化。LODが強力 広範囲の地形生成に向いている機能 13

14.

ワークフローの構築 Unity TerrainTools ・Terrainの不足を拡充する機能セット Package Managerからインストール ・Terrainエディターにスカルプトなど機能追加 ・Terrain Tool Box …プロジェクト全体のTerrain ユーティリティー。Terrainの分割、結合、 グループ化、プリセットの設定など 14 「新機能のTerrain Toolsパッケージで 作業を高速化させよう」 https://blogs.unity3d.com/jp/2019/05/2 8/speed-up-your-work-with-the-newterrain-tools-package/

15.

ワークフローの構築 Unity TerrainTools ワークフロー構築に重要な機能 ・Replace Splatmaps ・Export Splatmaps ・Export Heightmaps import Raw… Export Raw… TreemapとDetailmapは現状入出力できない 15

16.

ワークフローの構築 Unity TerrainTools ワークフロー構築に重要な機能 ・Replace Splatmaps ・Export Splatmaps ・Export Heightmaps import Raw… Export Raw… TreemapとDetailmapは現状入出力できない 16

17.

ワークフローの構築 Unity Terrain / TerrainTools 地形生成 Heightmap:import / Export 可 Unity、他ツールでの作成も可能 質感設定 Splatmap:import / Export 可 Unity、他ツールでの作成も可能 オブジェクト配置 Detailmap import / Export 不可 Unityでの作成は可能 DOTSを活かすためにも、GameObjectでの配置を検討 17

18.

ワークフローの構築 FBX Asset 何らかの方法 ??? Placement Bitmap Height Splat 18

19.

ワークフローの構築 FBX Asset ??? Placement Bitmap Height Splat 19

20.

ワークフローの構築 Substance Designer ノードベースのテクスチャコンポジットツール SBS / SBSAR形式、Bitmap出力 PBR用テクスチャ生成 Bitmap Bitmap Height Road Height Splat Detail 20

21.

ワークフローの構築 Substance Designer 【検証結果】 PNG・TGAは〇、RAWは× →PhotoshopでPNG(16Bit)に変換すれば〇 Possible Bitmap Bitmap Height Road Height Splat Detail 21

22.

ワークフローの構築 Houdini ・プロシージャルコンテンツ作成ツール ・柔軟なノードベースワークフロー Bitmap Height Splat Detail ??? Placement 22

23.

ワークフローの構築 Houdini 【検証結果】 ・各種mapをFileノードで入力 ・Point Attributeを使って配置情報を生成 ・CSV Exporter (GameDevelopmentToolset) CSV? Bitmap Height Splat Detail ??? Placement 23

24.

ワークフローの構築 Unity エディタ拡張 Houdini CSV importer ・CSVファイルからAssetPrefabのインスタンスを生成 ・対応するPrefabがない場合はCubeを作りインスタンス CSV Placement 24

25.

ワークフローの構築 Houdini 【検証結果】 ・配置情報をCSV Expoeterで出力 ・Unityエディタ拡張でCSVファイルから配置を生成 Possible Bitmap Height Splat Detail CSV Placement 25

26.

ワークフローの構築 Maya 総合3DCG制作ソフト ・UnityへのFBX入出力 ・キャプチャー素材の編集 Possible FBX Asset FBX Asset 26

27.

ワークフローの構築 FBX Asset ??? Placement Bitmap Height Splat 27

28.

ワークフローの構築 FBX Asset FBX Asset Bitmap Height Splat Detail CSV Placement Bitmap Height Splat Bitmap Height Road 28

29.

工程とデータの作り込み

30.

工程とデータの作り込み FBX Asset FBX Asset Bitmap Height Splat Detail CSV Placement Bitmap Height Splat Bitmap Height Road 30

31.

工程とデータの作り込み FBX Unity 地形生成Asset FBX Asset Bitmap Height Splat Detail CSV Placement Bitmap Height Splat Bitmap Height Road 31

32.

工程とデータの作り込み Unity 地形生成 ・プレイアブルな確認環境 →ビジュアルだけではない、 プレイフィールドとしての地形 32

33.

工程とデータの作り込み Unity 地形生成 ・プレイアブルな確認環境 →ビジュアルだけではない、 プレイフィールドとしての地形 階層構造による迷路 ・Terrain、TerrainToolBox →フィールド全景の起伏(Heightmap)作成 →街道の大まかな情報(Roadmap)作成 33

34.

工程とデータの作り込み Unity 地形生成 ・Raise or Lower Terrain →おおまかな形状を作成 34

35.

工程とデータの作り込み Unity 地形生成 ・Raise or Lower Terrain →おおまかな形状を作成 ・Sculpt/Terrace →フィールド部分を階層化 35

36.

工程とデータの作り込み Unity 地形生成 ・Raise or Lower Terrain →おおまかな形状を作成 ・Sculpt/Terrace →フィールド部分を階層化 ・Set Height →階層構造の微調整 36

37.

工程とデータの作り込み Unity 地形生成 ・Raise or Lower Terrain →おおまかな形状を作成 ・Sculpt/Terrace →フィールド部分を階層化 ・Set Height →階層構造の微調整 ・Sculpt/Bridge →階層同士をスロープで接続 37

38.

工程とデータの作り込み Unity 地形生成 ・階層構造の作成後、大小の 演出的な起伏を追加 ・Paint Texture →本来はSplatmapを作る機能 白黒でおおまかな道の情報を作成 38

39.

工程とデータの作り込み FBX Substance Designer Asset FBX Asset Bitmap Height Splat Detail CSV Placement Bitmap Height Splat Bitmap Height Road 39

40.

工程とデータの作り込み Substance Designer 40

41.

工程とデータの作り込み Substance Designer Heightmapと Roadmapの スロット ・4枚のHeightmapを1枚に ・イテレーション向上のため サンプルイメージを固定 SD作業時に 結果を確認する ためのテスト画像 本番とテスト画像を 切り替えるノード 41

42.

工程とデータの作り込み Substance Designer ・傾斜が大きい箇所 =周囲との輝度差 ・基準より高い場所 =しきい値より輝度の高い箇所 傾斜が大きい 箇所を抽出 基準より高い場所を 抽出 Roadmapを加工し、 自然な街道を生成 ・Roadmapの加工 歪み、濃淡、ノイズなどで 自然な街道を形成 42

43.

工程とデータの作り込み Substance Designer 草原の発生する Densityを生成 ・傾斜、高地、街道を除外した 箇所が草原の候補地 ・草原からさらに条件を絞った 箇所に樹木を生成 ・傾斜、樹木、街道の近くが 茂みの候補地 樹木の発生する Densityを生成 茂みの発生する Densityを生成 43

44.

工程とデータの作り込み Substance Designer Splatmapを 生成 ・必要な情報をまとめて画像化 ・Hegihtmapは街道の影響を 加味して再出力 Detailmapを 生成 Heightmapを 生成 44

45.

工程とデータの作り込み Substance Designer Unity Houdini Input Heightmap × 4 (L16) Heightmap (L16) Detailmap (RGB8) SplatmapRGB (RGB8) SplatmapA (L8) Heightmap × 4 (L16) Roadmap (L8) Splatmap × 4 (RGBA8) 45

46.

工程とデータの作り込み Substance Player ・Substanceのプレビュー ・Bitmapのエクスポート 公式の無償ツール 46

47.

工程とデータの作り込み Substance Player ・Substanceのプレビュー ・Bitmapのエクスポート 公式の無償ツール 47

48.

工程とデータの作り込み Substance Player ・Substanceのプレビュー ・Bitmapのエクスポート 公式の無償ツール 48

49.

工程とデータの作り込み FBX Asset FBX Asset Bitmap Height Splat Detail CSV Placement Bitmap Height Splat Bitmap Height Road 49

50.

工程とデータの作り込み Houdini 50

51.

工程とデータの作り込み Texture解像度に 合わせたGridを生成 Houdini 各マップを インポート Splatmapと Detailmapの 情報を付加 Terrain形状を、 Houdini内で復元 51

52.

工程とデータの作り込み Houdini Densityが 低い箇所を 削除 面積を測定 ポイント散布 Prefabの割り振り 52 崖配置 樹配置 草配置 茂み配置

53.

工程とデータの作り込み Houdini 全ポイント統合 Attributeを整理 53

54.

工程とデータの作り込み Houdini 全ポイント統合 Attributeを整理 54

55.

工程とデータの作り込み Houdini プレビュー生成 55

56.

工程とデータの作り込み Houdini プレビュー生成 56

57.

工程とデータの作り込み Maya FBX Asset FBX Asset Bitmap Height Splat Detail CSV Placement Bitmap Height Splat Bitmap Height Road 57

58.

工程とデータの作り込み Maya スキャンデータの加工 Unity Asset Store ・Book Of The Dead: Environment ・Buried Memories Volume 1: Yggdrasil - Icon Pack ・The Blacksmith: Environments 58

59.

工程とデータの作り込み Maya スキャンデータの加工 Unity Asset Store ・Book Of The Dead: Environment ・Buried Memories Volume 1: Yggdrasil - Icon Pack ・The Blacksmith: Environments 59

60.

工程とデータの作り込み Maya スキャンデータの加工 ・Houdini仮モデルに合わせた 形状調整 ・Soft Selectionで頂点移動 Meshの継ぎはぎ UVとTextureを改変しない (時間短縮のため) 60

61.

工程とデータの作り込み Maya スキャンデータの加工 ・Houdini仮モデルに合わせた 形状調整 ・Soft Selectionで頂点移動 Meshの継ぎはぎ UVとTextureを改変しない (時間短縮のため) 61

62.

工程とデータの作り込み Maya スキャンデータの加工 ・Houdini仮モデルに合わせた 形状調整 ・Soft Selectionで頂点移動 Meshの継ぎはぎ UVとTextureを改変しない (時間短縮のため) 62

63.

工程とデータの作り込み Maya スキャンデータの加工 ・Houdini仮モデルに合わせた 形状調整 ・Soft Selectionで頂点移動 Meshの継ぎはぎ UVとTextureを改変しない (時間短縮のため) 63

64.

工程とデータの作り込み FBX Unity インポート/修正作業 Asset FBX Asset Bitmap Height Splat Detail CSV Placement Bitmap Height Splat Bitmap Height Road 64

65.

工程とデータの作り込み Unity インポート/修正作業 65

66.

工程とデータの作り込み Unity インポート/修正作業 作 業 効 率 66

67.

工程とデータの作り込み Unity インポート/修正作業 非可逆的作業 作 業 効 率 67

68.

工程とデータの作り込み Unity インポート/修正作業 草 × Objectの大きさ、配置量に課題 接地がシビアなので処理の作り込みが必要 樹木 ◎ 接地面積が小さく法線にも沿わないので低難度 分布のバリエーションもイメージ通り 茂み 〇 ほぼ現状で問題なし。形状が街道を塞ぐ事が 多かったので配置制限を調整したい 崖 △ スキマや重なりが不均一。法線への追従も 要調整 68

69.

工程とデータの作り込み 69

70.

LWRP

71.

LWRP 2019.3から名称が変わります Universal Render Pipeline 71

72.

LWRP(Universal RP) Lighting ・Directional Light ×1 ・Light Probes ・Refrection Probe ・Shadow map ・Lit Shader(Physically based) Post Processing Stack V2 ・Color Grading ・Bloom ・Vignette ・(Depth Of Field) 72

73.

LWRP(Universal RP) Shader Graph Unity道場8月〜イケてるエフェクト の作り方と、Uniteを256倍楽しむ為 に知っておくべき知識〜 Unity Learning Materials https://learning.unity3d.jp/3007/ 73

74.

アーティスト編・まとめ

75.

アーティスト編・まとめ ・Unityで大量のオブジェクトが扱える ・グラフィックス表現、Terrain機能も進化 ・様々なDCCツールと柔軟に連携 ・Unityで大規模なゲーム開発を! 今後もフィールド生成のプロジェクトは 継続したいと考えています。興味のある方、 すでに作られている方などいましたら ぜひ情報交換しましょう。 75

76.

DAY2 15:30~ Unityとプロシージャルで作るオープンワールド背景 76

77.

エンジニア編に続く Generative Art — Made with Unity Thank you.