KYな雑記帳

個人的なメモ帳

Unite2016で受けたセッションたち

4レンダァ!

4月4日5日に2日間開催されたUnite2016 Tokyo に参加してきました。
今回はそれでうけたセッショの軽いまとめです。
一部を除いて資料は公開されるし動画も公開されるので、特に印象に残ったセッションや資料が公開されないセッションを中心に載せます。
今回のUniteで行われたセッションや公開されている資料はこちら。
japan.unity3d.com


Unity+スマホで3Dゲーム開発/最適化するための考え方

開発実績を通じて、ゲーム開発の現状を紹介や最適化の考えやポイントを紹介が主な内容でした。
中々にディープな内容でした。
主に企業が多くの人・端末向けに出すときに様々な端末の性能に対してどうチューニングするか?といった内容のように思えました
この3Dゲームは60fpsを目標にしていたが、端末によって性能が違うのでユーザーで設定できるようにした。
CPUの負荷測定にはFPSは目安程度に使って、特定の処理にどれくらいの時間がかかっているかという実時間を計測した。
Directシーンを活用して、測定しやすい専用の環境を用意しておくのがポイント。
GPUの負荷測定にはGPU Profilerを利用するのがおすすめ。
もし○○したらどうなる?という観点は大事なので、各要素を簡単にon/offできるようにしておくといろいろ試せて開発効率は上がる。
原理を知らないとどこが悪いのか、どこまでリッチにしてもいいのか、という事が分からないので、エンジニアの皆さんは原理を勉強しましょうという言葉が印象的でした。
その際に、「ゲームアプリの数学」と「Computer Graphics Gems JP 」の二つの本をおすすめしていました。

実践!Oculus Rift - VR開発テクニック

Unityを使ってOculusで動くVRゲーム・アプリを作って、プラットフォームに出してみましょう、といった内容でした。
開発を行うには、以下のサイトから登録して、SDKをゲームに導入する。
developer.oculus.com

SDKでは、非同期タイムアウトのサポートやプラットフォームのSDKやoculusリモコンのサポートができるみたいです。
利用するためには、Unity5.3.4.p1以上のバージョンにして、OVRPlugin for Unity5のプラグインの導入が必要との事でした。
多くの場合、すでにあるものをVR化してもVR酔いなどで快適ではない。
まずは、Oculus Sample Framework や VRのサンプルを体感してノウハウを体感するのが良いとの事でした。
また、VRコンテンツを配信するプラットフォームですが、α版β版の配信の際にはユーザー指定での配信ができるて実際に本番(?)環境で試せるのが魅力的に思えました。

Unity x PlayStation VR コンテンツを作ってリリースするまでのお話

Unityで作ったものをPSVRに対応させる方法の話と、それをPSVRのストアでどうやって販売するかという話でした。
アピール面のほうが強い印象でしたね。
Unityで作られたものならば、設定を変えたり、スクリプトを少したしただけで、簡単にPSVRに対応させることができるようです。

  • Player Settingsから解像度を変更
  • Virtual Reality Supportedにチェック
  • AudioOutからAudioOuot3Dに変更
  • カメラ構成をTarget EyeをBothに
  • スクリプトを修正する

という手順でした。
ただし、PSVR用の開発機材が必要なので、「まずは契約を」とのことでした。
UnityコンテンツをPSVRのストアで売るためにも、「まずは契約」が必要とのことでした。
契約できるのは、日本に法人登録されている企業が条件とのことでしたが、個人で出したい場合はインディパブリッシャーを通して配信できるようです。
どちらにせよ、個人で配信したいのなら、企画案やデモを持ち込んで相談してくださいとのことでした。

Unity上級者を目指すなら知っておくべきデバッグテクニック集

このセッションは資料が上がっているので、詳しくは資料を見た方がいいです。
http://japan.unity3d.com/unite/unite2016/files/DAY1_1900_Room1_Yamamura.pdf

バグの検証は「入力の方法」→「参照しているデータ」→「ソースコード」→「OSやソフトなど動いているルール」の順で確認すると楽に検証できるとのことでした。

"Age of Empires: World Domination" 開発の創意工夫

このセッションは資料が上がっているので、詳しくは資料を見た方がいいです。
http://japan.unity3d.com/unite/unite2016/files/DAY2_1400_room2_SatoYuichi.pdf

工夫として以下のポイントを挙げられていました。

  • 多言語対応の判断を早めにして、画像にテキストは埋め込まないようにする。
  • プロパティの変更→AssetBundleの流れを自動化しておくと、調整のフェーズが楽
  • 自動化を見越した命名規則を初期に決めておく
  • 描画負荷の設定は、Unityの設定やプロパティの変更で対応可能にしておくと作り直しが発生しない

Fate/Grand Orderにおける、ディライトワークス流Unity活用術

FGOのバトルアニメーション、宝具演出でのUnityの活用を紹介されていました。
バトルアニメーションは、PlayMakerやuSequencerを利用して作成し、それを動画・アニメーションの知識・ノウハウのある人に監修してもらって、そのフィードバックから修正をしてブラッシュアップしているとのことでした。
バトルモーションは、クラスごとに共通化して量産しやすい形にしたかったそうですが、やっぱり批判があったようですね。
(低レアはともかく、高レアのキャラのモーションも共通化する案もあったみたいです…)
実装の際には、横方向に振り回すなど立体的な動きを出すために、Mayaで2Dのキャラを作ってモーションを付けているとのことでした。
バトルモーションのエフェクトはUnityのパーティクルを利用しているようでした。
エフェクトを載せる可能性がある部分にダミーノードを載せ、ノードにエフェクトのプレハブを載せるスクリプトを書いて、エフェクトを出しているようです。
このゲームはキャラを再臨させるとイラストが大きく変わるため、バトルキャラの見た目も大きく変える必要があります。
ただし、その分キャラデータを用意すると容量がすごく大きくなるため、1枚のテクスチャに再臨分のテクスチャを埋め込み、共通のボーンを利用してMayaの方でテクスチャを重ねてモーションを出力、プログラムで表示・非表示を制御しているとのことでした。
「努力と根性です」の言葉でセッションをまとめていました。
巨大なIPを借りて作っているので、クオリティ関連はいろいろとあったんだろうなぁと、言葉にはしていませんでしたが、そう感じられましたね…

Unityを使った個人ゲーム開発における「収益化」の現状と未来

このセッションも資料が上がっていますので、詳しくは資料を見た方がいいです。
http://japan.unity3d.com/unite/unite2016/files/DAY2_1700_Room2_IchijoTakaaki.pdf

タイトルに収益化とうたっていますが、実際はそのために、完成させる・販売するために人に知ってもらうために、開発経験からくるポイントの内容でした。
技術面に関しては、ブログに書いたからブログを読んでね。とのことでした。
歪んだコードは投げ捨てろ

資料をみれば全部書いてあるのですが、以下のことが印象に残っています。

  • 仕事:7・個人開発の創作:3、あるいは半々ぐらいの力の入れようでもいいのではないか
  • 自分に鞭を打つために、コワーキングスペースで作業、休日を殺せ、展示会ドリブン開発
  • 自分の狂気を見つけ、狂気を軸にした作品を

感想

講演中にもっとうまくポイントを抑えたメモをとれるように意識してとっていかないと、あとからまとめるときに大変だ…