【Unite 2017 Tokyo】3次元CAD VR化最速ツールの秘密

105 Views

June 07, 17

スライド概要

講演者:高田 知典(DVERSE Inc.)

こんな人におすすめ
・VR開発に興味がある人
・Unityをビジネス用途で使いたい人
・ゲーム/コンテンツの海外展開に興味がある人

受講者が得られる知見
・VRのパフォーマンスチューニング
・ビジネス向けVRソフトウェアの設計勘所

講演動画:https://youtu.be/P_rw6-K-ZmQ

profile-image

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

CTO, DVERSE Inc.

2.

3 CAD VR

3.

• SYMMETRY • SYMMETRY alpha • SYMMETRY

4.

SYMMETRY

5.

DVERSE Inc.

6.

SYMMETRY VR IT • BIM, i-Construction • VR http://symmetryvr.com/

7.

https://twitter.com/tipatat/status/839639362572800001

8.

SYMMETRY alpha HTC Vive SketchUp CAD VR • 2017/02/14 Steam • 90 • CAD VR http://store.steampowered.com/app/585340/ 3D

9.

3D Basecamp 2016: June 13-15 in Steamboat Springs ※SketchUp ユーザの2年に1度のお祭り(コロラド州) AIA Conference on Architecture 2017 April 27-29, Orlando ※アメリカ建築家協会主催の展示会(フロリダ州) グローバル市場を獲りに行く

10.

SYMMETRY alpha

11.

3 • CAD⇒VR • •

12.

CAD⇒VR CADで VDC ( Virtual Design and Construction ) 設計 ⇒ VRで確 認 ⇒ VR

13.

A Cloud Convert CAD VR Editor Save Import 数分

14.

SYMMETRY alpha Import CAD (SketchUp) Save SYMMETRY alpha Import 数秒~数十秒 VR

15.

3 • CAD⇒VR • •

16.

SYMMETRY alpha Import 数秒~数十秒

17.

SketchUp インポート時間(秒) 60 50 40 30 20 10 0 Face:5567, Material:23, Layer:4, Group:233, Comp. Definition:21, Comp. Instance:511 ⇒ 50 3.5

18.

SketchUp SketchUp SDK (C++ DLL) Unity Native Plugin (C DLL) SYMMETRY alpha (C#) JSON GameObject / Mesh Texture Material Unity

19.

テクスチャ JSON JSON 書き出し シリアライズ デシリアライズ SYMMETRY alpha VR ⇒ HTC Vive ⇒1 ⇒ ⇒ マテリアル生成 90 fps 0.011 1 1 Update() GameObject / Mesh 生成

20.

Unity コルーチン メリット デメリット ・一つの関数を複数のフレームにまた がって処理できる ・一つのCPUを時間分割するだけ ・効率良くフレームに分割するのが難しい ・プログラミングが楽 マルチスレッド ⇒ ・マルチコアCPUを生かして、複数の処 理を同時に実行できる ・Unity APIが使えない (Unity APIはメインスレッドでしか使えない) ・Unityのフレームを意識しなくてよい ・排他制御が必要

21.

テクスチャ JSON JSON 書き出し シリアライズ デシリアライズ マテリアル生成 GameObject / Mesh 生成 Native Plugin を別ス Unity API の JsonUtility は、マルチスレッドに対応している! レッドで呼び出す https://docs.unity3d.com/jp/current/Manual/JSONSerialization.html

22.

JsonUtility JSON • ⇒ • Dictionary ⇒ Key/Value List ※ISerializationCallbackReceiver 7 • http://answers.unity3d.com/questions/1123311/jsonutilityfromjson-depth-limitation.html ⇒ SketchUp …

23.

SketchUp Unity SketchUp Transform JSON SketchUp List ※ISerializationCallbackReceiver ⇒ JsonUtility OnAfterDeserialize()

24.

JSON JSON I/O • JSON • JSON Pretty public class SUComponentDefinition { public string N; public string Name { get { return N; } set { N = value; } } ⇒ JSON ⇒ … 1

25.

SketchUp LZ4 BuildPipeline.BuildAssetBundles(outputPath, BuildAssetBundleOptions.ChunkBasedCompression | BuildAssetBundleOptions.ForceRebuildAssetBundle, EditorUserBuildSettings.activeBuildTarget);

26.
[beta]
GameObject
yield
…

※

Stack
IEnumerator makeNode(SUNode node, GameObject nodeObject) {
if (nodeIndex % 10 == 0)
yield return null;
makeMeshComponents(node, nodeObject);
foreach (var group in node.Groups) {
GameObject groupObject = new GameObject();
groupObject.transform.parent = nodeObject.transform;
nodeIndex++;
yield return makeNode(group, groupObject);
}

IEnumerator makeNodes(SUModel model, GameObject modelObject) {
Stack<SUNode> nodeStack = new Stack<SUNode>();
Stack<GameObject> nodeObjectStack = new Stack<GameObject>();
nodeStack.Push(model.NodeList[0]);
nodeObjectStack.Push(modelObject);
while (nodeStack.Count != 0) {
if (nodeIndex % 10 == 0)
yield return null;

SUNode node = nodeStack.Peek();
GameObject nodeObject = nodeObjectStack.Peek();

}

…

⇒
⇒

暗黒すぎるので略

27.

3 • CAD⇒VR • •

28.

LOD (Level Of Detail) SketchUp LODGroup … SYMMETRY alpha ⇒ ⇒ GPU ⇒

29.

SYMMETRY

30.

• SYMMETRY alpha • 2017 3Q • 2018 1Q • SYMMETRY ****** • 2017 4Q

31.

http://dverse.me/ja/recruit/ • Unity • • UI / UX • VR • • • 3D • CAD • AI • /

32.

Thank you!