Unite2016Tokyoに参加しました(Day1)
- Unite2016とは
- 講演の資料
- 基調講演
- モバイル端末向けのUnityアプリケーションの最適化実践テクニック
- Unityグラフィックス最新機能ガイド
- Unityで音を制す2016
- Unity x PlayStation®VR コンテンツを作ってリリースするまでのお話
- 学校では教えてくれないアセットバンドルのしくみ
- unity上級者を目指すなら知っておくべきデバッグテクニック集
- 講演以外の感想
Unite2016とは
- 年に1度のUnityのお祭りです
講演の資料
- 殆どの資料が現時点で上がっている…だと…!?
- なので全部書かないで、主に印象に残った話をメモ程度に残すとかそういう感じ
基調講演
2016年のUnity
- 品質面では、安定/βバージョンと分割リリースすることで安定化を図る
- ローカライズにも力を入れる
- UnityEditorの日本語化
- ドキュメント/リファレンスにプロおよびレビューチームを設ける
Unity .NET Foundationへの加入
- Unityが.NET Foundationに参加 – Unity Blog
- UnityはこれまでC#3.0相当だったのだが、C#6.0/GC高速化等の対応を行った(行う)とのことで嬉しいニュース
UnityCollaborate
- Unity上で完結するプロジェクトの共有システム
- ディレクターやデザイナー、QA/テスターに最新の状態を共有するためのシステム
- エンジニア以外の人でも容易に更新掛けられるアドバンテージはありそう
- Git等は慣れれば何でもできるけどエンジニア以外の敷居は高そうなので、TPOに応じて使う場面ありそう
教育現場におけるUnity
- 500もの教育機関(専門学校/高専等)でUnityが使用されている
- ただ教育現場でUnityを教えられる人が居ないというのが現状とのこと
- 逆に生徒の方が詳しい現状は容易にあり得る
- UnityCettificationという検定試験、およびコースウェア(学習カリキュラム)
- 2016年6月から渋谷で受けられるとのこと
PSVR
- 44,980円 / 2016年10月発売
- プレゼンス(没入体験)の維持と技術等詳しくない人でも直ぐに遊べる一般消費者向けの支店に力が入ってるのを感じた
- ディスプレイのセパレートモードの体験面白そう
- HMD付けてる人が怪獣役、他のプレイヤーはテレビを見つつコントローラーでプレイヤーを操作しその怪獣を退治する役
THE GIFT
- Unityを使ったピクサー風味のアニメーション
- Unityホントに何でも出来るようになっていくなぁ、と関心
- Unityを使う旨味としてマルチメディア展開の容易さにあるとのこと
- ゲーム/VR/アニメ…etc
モバイル端末向けのUnityアプリケーションの最適化実践テクニック
- 中々ディープなハックだった
プロファイリング
- なんだかんだでInstrumentsが一番優れてる
- Unity用のMemoryProfilerはBitbucketからダウンロード出来る様になっている
最適化
- テクスチャー圧縮しつつ出来るだけ小さめに
- Read/Writeでテクスチャのメモリ2倍になるので無効にする
- AssetPostprocessorを使うとファイルのインポートを検知して設定可能
- Textのperseに時間が掛かる
- Reflectionを使う場合の処理が重い
- Unity側で用意したJsonUtilityはパフォーマンス良い方
- 起動時に全てのReousrceフォルダのインデックスをロードする
- Reosurceから排除してAssetBandle側に映す
- 文字列のヒープ領域の確保に注意
- http://docs.unity3d.com/ja/current/Manual/UnderstandingAutomaticMemoryManagement.html
- Material / Animator / ShaderPropertiesに関してもクラスを作ってプロパティIDを管理し、stringを頻繁に呼び出さない
- foreachよりもfor使う
(個人の感想)
- 直ぐに使えそうなやつは実践しつつ、パフォーマンスに影響が出るようであれば細かいアプローチ掛けて行くのが健全っぽい
- 特に複数人のプロダクトにおいては、複雑なコードは処理に対する可読性を下げる
- パフォーマンスにどのくらい影響があるか常にプロファイリングしつつ、奥の手として知っておくのは有効だと感じた
Unityグラフィックス最新機能ガイド
- 主に上記の映像で使われている技術についての話
- 5.4ではマルチスレッド用に最適化
- TimelineProfilerを見ると全てスレッドが仕事してるのが分かる
- シネマティックイメージエフェクト
- プログレッシブライトマッパー
Unityで音を制す2016
ADX2
BEATWIZ
Unity x PlayStation®VR コンテンツを作ってリリースするまでのお話
実装の話
- UnityのチュートリアルプロダクトTankを置き換えて実践
- PS4向けにビルドするのであればビルド先をPS4に向けてビルドするだけ
- PSVR向けにビルドするだけであれば以下のフローでOK
- UIにまでReprojection掛かる対策
- UI専用のカメラを用意し合成する
販売までの話
- まず契約なのだが、法人登記していない場合はインディーズパブリッシャーに声掛けよう
- 契約後にPS4/PSVR/SDK等の開発に必要なものを入手可能
- 機材に限りがあるので面白い企画がある人は早めに声掛けて!
学校では教えてくれないアセットバンドルのしくみ
- LZ4ベース圧縮(ChunkCompressed)をUnity5.3から対応
- LZMAは伸張処理にファイル全体が必要で、ストリーミングでそのまま読み込めなず、展開状態で保持するしかない
- LZ4は圧縮早い一方、圧縮率では劣る
- しかしチャンクが揃ったオブジェクトから順次処理が可能なので伸張しつつアセットバンドルの生成が出来る
- WWWクラス
- WWW.bytes、manaed領域にバッファ確保してしまい、GCが起きやすい
- UnityWebRequestクラスを使おう
unity上級者を目指すなら知っておくべきデバッグテクニック集
Debug.Log
- console上のCollpaseを有効にして同一参照元のメッセージをまとめる
- Debug.Log(“hoge”, this)
- this指定により、consoleから参照しているオブジェクトのハイライト
- Debug.Log(“<color-red>hoge”)
- リッチテキストによる協調も可能
- Debug.Logger.logEnabled = false;
- 重い処理なのでリリース時等に非表示にしておくことを推奨
Assert
- Assert.IsNotNull(message) のような記載でconsoleに例外表示
- Assertはリリースビルドで取り除かれる
その他
- TestRunnnerでテスト書こう
- テストが実行されるのは現在開いているシーンのみ
- Inspectorに入力した後はソースコードより優先される
講演以外の感想
- Unite3回目くらいの参加だけど、Unityの勢い全然まだまだ衰えない感じ
- 今年はVRが一般流通するということもあり、企業展示はVR多めだった印象
- LT申し込み少なかったのかタイミング合わなかったのか、あまり聴けなかった
- S席3枚買ったけど、並ばないし、待機ゾーンで軽食食べれるの優雅で良い感じ
- 500円高いかなーと思ったけど、ほぼそれに見合った対価は得れたと思う
- 懇親会はコミュ障発揮し過ぎた、もっと適当などこかに顔を突っ込めば良かった
- Unity関連でもっとコネクションというか仲間が欲しい…
- そのためにも覚えてもらうためのタイトルを用意しないとアカン
- 無料UFOキャッチャーで無事にユニティちゃんフィギュアゲット出来た(会社に1つあるので2個目)
- お昼はアクアシティの5,6階のレストランが以外と空いててオススメ
- ローストビーフ丼御馳走様でした///