>100 Views
July 15, 17
スライド概要
Unity 5.4からUnity 5.5で新しく追加された機能を軽く紹介します。
リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。
Unity 5.4 & 5.5 新機能キャッチアップ講座(前)
自己紹介 山村 達彦 ユニティ・テクノロジーズ・ジャパン - フィールドエンジニア - エヴァンジェリスト - サポート Blog:テラシュールブログ Twitter:@tsubaki_t1
Unity 5.4の新機能
PostEffectの強化
Cinematic Image Effect ・次の標準アセットとなる予定の Image Effect ・Bitbacketにて OpenSourceで開発中 シネマティックイ メージエフェクト (プレリリース) Unity Essentials/Beta Content Unity Technologies ★★★★★ (265) 無料 Unityで開く Unity 5.3.5 以降のバージョンが必要 Unity 5.3以降でお試しいただける、現在α 版あるいはβ版のイメージエフェクト集で す。 このイメージエフェクトの概要は公式ブログ
Depth Of Field
Ambient Occlusion
Screen Space Reflection
Tone mapping Color Grading OFF ON
Bloom
Cinemati Image Effect • Ambient Occlusion • AntiAliasing • Bloom • DepthOfField • LensAberrations • Motion Blur • ScreenSpace Reflection • Tonemapping ColorGrading
Scene ViewでImageEffectの動作を確認 Skybox Fog Flares Animated Materials Image Effects
Motion Vector • スクリーン上でピクセルの要素が どの程度動いたかを計算して記録する • モーションブラーやTemporal AAのような 表現に使用する
Motion Vector Field • Motion Vectorの作成は、 Mesh Renderer単位 • 設定されていた場合、 Motion Vectorを作る時に 利用する 5.4はONかOFFの設定のみ、 5.5はPreObjectMotionと CameraMotion、OFFが設定可能 Mesh Renderer Cast Shadows Receive Shadows Motion Vectors Materials Light Probes Reflection Probes Anchor Override On Per Object Motion Blend Probes Simple None (Transform)
VR周りの強化
Single Path Stereo Rendering • 左右の目に表示するオブジェクトを 一度のパスでレンダリング • =両眼にレンダリングする物を 最適化する機能 • Image Effectを使用する場合、 対応する処理が必要 (現Standard Assetsのエフェクトは対応済) GPU Skinning* Graphics Jobs (Experimenta Virtual Reality Supported Virtual Reality SDKs Oculus OpenVR Single-Pass Stereo Renderir Configuration Scripting Backend Disable HW Statistics Mono2x
VRのマルチデバイスサポート Virtual Reality Supported Virtual Reality SDKs Oculus OpenVR Single-Pass Stereo Configuration Scripting Backend Disable HW Statistic Scripting Define Symbols Oculus Stereo Display (non head-mounted) Split Stereo Display (non head-mounted) OpenVR None
処理のマルチスレッド化
Main thread 5.3 10.6 5.4 7.4 5.4+DW 4.0 5.4+DW+R 1.9 Render thread 5.3 14.3 5.4 11.0 5.4b+DW 7.3 5.4B+DW+R 7.2 Time in MS DW: Double wide rendering RL: Render Loop Jobs (Experimental)
Job System • パーティクル、スプライト表現、フレア、ライン、トレ イル等の表現と同じようにマルチスレッド化
GPU Instancing
GPU Instancing 同一メッシュ・同一マテリアルを GPUにお願いして一括描画する 幾つかのパラメータをユニークにする事も 出来なくもない Skinned Meshを使う場合は 工夫が必要 5.5でSpeedTreeに対応 5.5b6でモバイルにも対応
...工夫
ライティング
Final Gatherにノイズ除去フィルターを追加 BEFORE AFTER
Light probe Proxy Volume
Light probe Proxy Volume • メッシュにLightprobeの影響を受けるグリッドを作り 段階的に影響を受けられるようにする仕組み (通常1メッシュにつき1つのLightprobeしか持たない) • 部分的な影響を与えられるので、動的に配置した オブジェクトでも結構綺麗に見える
Light probe add direct lightの追加
Shadow Custom Resolution
Open GL Coreのサポート
Open GL Core • Shader Model 5 • Compute Shader • テッセレーション • Macで動く(個人的に重要
Mesh Mesh with Phong Tess Mesh with Phong Tess Mesh with Phong Tess
Mesh Mesh with Phong Tess Mesh Mesh with Phong Tess
AndroidのIL2CPP対応 Identification Bundle Identifier Version* Build iOS Developer Team ID com.Company.ProductName 1.0 0 Configuration Scripting Backend Target Device Target SDK Target minimum iOS Versio Mono2x IL2CPP iPhone + iPad Device SDK 6.0
AndroidのIL2CPP対応 • MonoのコードをIL2CPPでC++ → NDK • 現状、ファイルサイズは若干monoより大きい • 5.3までExperimentalで、debug情報込 • ビルド時間は長い(ので開発はMono推奨)
その他細かい変更
Playable API Legend AnimationMixerPla AnimationClipPlay Edge weight 0
Playable API • 単一のアニメーションクリップを 再生する • アニメーションコントローラー不要 • アニメーションコントローラー同士の ブレンドも可能 • スクリプト操作必須
Transform制御の強化
Transform制御の強化 • Transformの処理にSIMDを利用する • 親子関係の解決にOnTransformChildrenChangedを 使用するように
小話 • SIMD=コンピュータやマイクロプロセッサで並列処理を 行なうための設計様式の一つで、一つの命令を同時に複 数のデータに適用し、並列に処理する方式。 • 他には、物理演算やスキニング、幾つかの処理に使用
Prefabをインスタンス化して、オブジェクト 下に配置するケース Create Untitled* Prefab GameObject A GameObject B Root
OnTransformParentChanged (5.3以前) Hierarchy Create Untitled* Root Prefab GameObject A GameObject B 親の状態変わった 親の状態変わった 親の状態変わった
OnTransformChildrenChanged (5.4以降) Hierarchy Create Untitled* Root Prefab GameObject A GameObject B 子の状態変わった
Unity 5.5の新機能
新しいAnimation Window
新しい Splash Screen
新しいスプラッシュスクリーン • 新しいスプラッシュスクリーン • iOS/Androidの場合、本来の スプラッシュスクリーン後に呼ばれる • Personalでも変更が可能 但し、その場合は小さいUnityロゴ もしくはUnityロゴを順番に表示する
Full Binary Shader Serialisation
Full Binary Shader Serialisation Graphics APIに渡すシェーダーを バイナリとして保持、受け渡しする。 5.3と比較して、消費メモリが減少、 かつロードが高速化。
Standard Shaderの品質設定 Standard Shaderの品質が GraphicsSettingsより設定出来るように。 モバイルは今まで通りLOW推奨 VR向けの場合、場合によってはLOWにする のもアリかもしれない。
Standard Shader : High Standard Shader : Low
新しい画像フォーマット
追加で画像フォーマットに対応 • iOS • ASTC 6x6 ~ 12x12 (要A8以上のCPU) • PC • BC7, BC6H Default Override for iOS Max Size Compression Format Compressor Quality 1024 RGBA Compressed ASTC Best
ASTC 4 x 4 1 MB ASTC 6x6 0.49 MB ASTC 8x8 0.25 MB ASTC 16x16 0.1MB PVRTC 0.5 MB True Color 3.2 MB
PVRTC ASTC 6x6
2D物理演算の改良
Rigidbody2Dの強化 • Rigidbody 2Dを停止 するSimulatedを追加 • SimulatedがOFFの時 物理演算に参加しない Rigidbody 2D Body Type Material Simulated Use Auto Mass Mass Linear Drag Angular Drag Gravity Scale Collision Detection Sleeping Mode Interpolate Constraints Info Dynamic None (Physics Material 2D) 1 0 0.05 1 Discrete Start Awake None
物理演算に参加しない...の意味 simulated:OFF simulated : ON
新しい設定「static」 staticは動かないオブジェクトに設定 動かす時はIsKinematicもしくは Dynamicに必ず切り替える。 rigidbody2dの無いcollider2dは 暗黙的なstatic Collider Rigidbody 2D Body Type Material Simulated Info Static None (Physics Material 2D)
Cancel Collider 2D 上のBoxColliderと 噛み合う事がある 多分大丈夫
Scene制御
Scene Set シーンを一括でロードする エディタ専用(何故…)
AssetBundle構築の強化
AssetBundle 構築強化 link.xmlを記述せず、スクリプトをStripしない設定を追加する。 ストリップの判定は、Manifestに記述されていた内容も考慮される。 スクリプトのBuildPipeline.BuildPlayerでビルドした場合にのみ対応 Build OptionでManifestがあるフォルダを指定必要がある。
Asset Bundle uGUIを使う Built In uGUIを使わない Player uGUI 含まない 出力
Asset Bundle uGUIを使う Built In uGUIを使わない Player uGUI 含まれる 出力 Manifest確認
Linear Space モバイルのリニアカラー対応 Gamma Space
Linear Colorの設定 使用条件 - AndroidはOpenGL 3かつAndroid 4.3以上 - iOSはMetalかつiOS 8以上で使用可能 Debugging and crash reporting Other Settings Rendering Color Space* Auto Graphics API Graphics APIs Metal Force hard shadows on Met
ライン&トレイルレンダラー拡張
5.4
5.5
色、幅・太さ、角の丸めなど、すべてスク リプトからも制御可能 Line Renderer Cast Shadows Receive Shadows Motion Vectors Materials Size Element 0 Lightmap Parameters Positions Size Element 0 Element 1 Element 2 Use World Space Width Color Corner Vertices End Cap Vertices Reflection Probes VertexColor None (Lightmap Parameters) 10 10 10 -10 20 20 20 Line Renderer Cast Shadows Receive Shadows Motion Vectors Materials Size Element 0 Lightmap Parameters Positions Size Element 0 Element 1 Element 2 Use World Space Width Color Corner Vertices End Cap Vertices Reflection Probes VertexColor None (Lightmap Parameters) 10 10 10 -10 20 20 20 20 10
PBRチェックエディタ
Look Devツール • アーティスト向けの モデル(Prefab)確認ツール • 色々な環境に対して どう見えるかを比較して チェックできる
その他…
Gizmoがアウトラインに変更 選択中のオブジェクトにアウトライン 従来のワイヤーフレームに戻す事も出来る アウトラインの色も変えられる
Local Cache Server キャッシュサーバーをローカルに インストール プラットフォームを切り替えた時やインポートの際、 GUIDとフォーマット・プラットフォームが一致するならば、 キャッシュよりリソースをダウンロードする。
And NEW...
Monoのバージョンアップ .NET 4.6 .NET 2.0 Subset .NET 4.6
Mono 4.6 + C#6 • 現状エディタのみ動作 • Seen GCは動作が安定したら搭載する予定 https://forum.unity3d.com/forums/experimental-scripting- previews.107/
2D
• Atlas Assets(フォルダやグループで纏めてAtlas化) • Axis Distance Sort(z軸でTransparentをソート) • Composit Collider(コライダーの結合) • Pyscis Shape Editor(コライダーがどう作られるかを制御) • Tilemap https://forum.unity3d.com/forums/2d- experimental-preview.104/
Progressive Lightmapper
Progressive Lighmapper SceneViewが見ている部分を優先して ベイクするライトマッパー 少しの変更を確認するのが容易
その他
その他 • Daydream対応 • Valkan対応 • 新しいinput system • Mixed想定のライティングシステム
Thank you!