Top > Unite 2016 Tokyo
#contents ---- * 概要 [#yc52e720] http://japan.unity3d.com/unite/unite2016/ * 資料 [#g611ed72] - http://japan.unity3d.com/unite/unite2016/schedule - Toggeter: http://togetter.com/li/959271 - "THE GIFT" (created using "MARZA Movie Pipeline for Unity") 本編 https://www.youtube.com/watch?v=FQhlnsbgrL0 - Unity GDC demo - Adam - Part I https://www.youtube.com/watch?v=44M7JsKqwow * Visual Studio 2015 & Graphics Design Tool [#p6728b30] Visual studioで絵を描く ** Visual Studio [#c68bc724] *** Image Editor [#qc871399] 新規作成→ファイル→グラフィクス→bmpとか - dds保存して開くと、mipmapを生成して見ることが出来る。加工もできる。 *** Model Editor [#v7cda238] モデルを編集して保存すれば、Unity側にリアルタイム反映できる。 法線がおかしいとかは直せないので、その点では確認ツール。 ** Shader Designer [#t07921b9] ノードベースでシェーダー作成 * Unityグラフィクス最新機能ガイド [#j65d3321] ** Multithreading Rendering [#f8e0bc08] 5.4で最適化した。 Double Wide Rendering対応。(VRの両目同時レンダリング) Multithread Render Loop。 CPUで最適化している。 ** テクニカルデモの右腕の布を破ったところ。 [#k4682d5e] Alembic使った。マーズさんのThe GIFTのスライドにツールある ** Cinematic Image Effects [#g02d0078] BitBucketへのリンクがスライドに入ってる - SSR - AO - BLOOM - DOF - ToneMap - Vignette - AA ** Progressive Light Mapper [#sdde9685] (LightmassのProbe計算) Imagination Tec.と連携 シーンビューの見えている所から順次リアルタイムにベイクしていく。 ライトを動かすと、その時点からベイクが開始される。 ** Roadmap [#c4ce8b34] Cinematic Image Effectを一纏めにパッケージングしたい * 実践!Oculus Rift - VR開発テクニック [#bc3357dc] ** Unityによる開発 [#w05b71c1] SDK 1.3 *** 非同期タイムワープ対応 [#b616e2e7] FPSが落ちても、HMDのトラッキングだけは維持する。 処理落ち発生しても、頭のトラッキングは滑らか ロード中でも滑らかに。ただ万全ではない。 Unityだと特に何もしなくても反映される *** PlatgototmSDK [#a3515621] - フレンド - リーダーボード - アチーブメント - マッチメイク - アプリ内課金 - P2P通信 - エンタイトルメントチェック → アプリの使用権限チェック 申請に必須。 Platformの機能を使うにはAppIDの申請が必要 *** リモコン [#qf0b1971] - 4方向のデジタルボタン - 決定 - バック *** アプリライフサイクル [#h8d1345c] - アプリからホームやユニバーサルメニューを呼び出す仕組み - Unityだと自動で処理される - オンラインマルチプレイは注意。レンダリングは止めて、ロジックだけは回さないといけない。 ** Oculus Store配信手順 [#jf532b16] - アプリ申請→品質チェック→配信 -- チェック内容 --- SDKバージョン --- クラッシュしないか --- 推奨PCで動くか --- 快適性 --- アプリライフサイクルへの対応 --- エンタイトルメントへの対応 開発者サイトのガイドラインを参考に + 開発者向けダッシュボード -- 組織の登録。個人でも。 + アプリ登録 + ビルドをアップロード。PC版はzipで。 -- ビルドチャンネルを設定して、テストユーザーだけに配信とかもできる。 + 情報の登録 -- デバイス、ジャンル、レーティング + アイコンの登録 + 価格設定 -- 現在はUSドルのみ + ストア担当からOKが出れば、リリース時期どうするか等の連絡が来る * ハードウェア性能を引き出して60fpsを実現するプログラミング・テクニック [#zbb0aec6] - Unityで最大パフォーマンスを引き出す実装をPSVITAでデモした「AnotherThread」 https://github.com/unity3d-jp/AnotherThread * Unity x PlayStation VR コンテンツを作ってリリースするまでのお話し [#ka706917] ** PSVR * Unity [#t2f79bd3] *** UnityでPSVRを開発するまで [#bf6d2dcd] + SIEと契約 + 開発機材を入手。開発機が少なくなってきているので、具体的な企画ある所に優先的になっている + Unityで作成 ++ Project設定をPS4にしてビルドするだけでPS4で動かせる ++ DisplayBufferをVR用の設定 ++ VR SupportをON ++ オーディオ3DをON(AudioOut3d, Virtual Speaker) ++ カメラ構成をチェック「Target Eye」が「Both」か ++ スクリプトでVRSettingsに対してPSVRの設定3つ。 でPSVRで再生できる。 + 次、UIがぷるぷるする。 -- Reprojectionによる影響 Post Reprojectionにて解決。 --- UI以外を描画。Reprojectionする --- UIのみを描画 上記2つを合成する。 *** Social Screen機能を使ってみよう [#d9dab50b] - PSVRで見ている画面を、TVに移す機能 -- Separate Screen - PSVR側とTV側で違う画面を表示する - UnityでSeparateする ++ [Social Screen Support]をON ++ 別のカメラを用意。「Target Eye」を「None(Main Display)」に ++ VRSettings.showDeviceView = false; ++ これでSeparate Screenできる。 ** UnityコンテンツをPlaystation Storeで販売しよう [#kc95572c] 契約締結後、SDKと機材を入手してコンテンツ製作開始。 - 契約→エントリーは「日本に法人登録されている会社」のみ - 法人登録していない人。 -- インディパブリッシャーを通してコンテンツの販売。 --- Playism、mebius、Flyhigh Works等 --- ツテがない人。いとぅあきなり氏に連絡取ると、インディーパブリッシャーさんと受け渡ししてもらえる。 *** 納品まで [#ib992a15] + Unityでゲームパッケージ作成 + データ納品 + QAチームによるチェック、デバッグ - 酔いが起こりづらいコンテンツ製作の為に -- 60FPS以上 -- リプロジェクションを入れる。 -- レイテンシーを低く - VRコンサルテーションサービスを提供する。日本でもアジアでも。 -- どうやって提供もらえるのかは、契約の後で。 ** New お知らせ! [#g45881df] - Cygames x SIE VRコンテンツ Made With Unity PSVRゲームコンテスト開催! 詳細は後日 * 『ファイナルファンタジーグランドマスターズ』開発の裏側、そのリアルタイム通信を支えるPhotonの実例 [#td886d7e] ** Photonの紹介 [#x52b4e68] - サーバークライアント型 一度Photonサーバーに繋ぎに行ってから開始する。 - Photon Cloue クラウド型サービス。 -- Realtime : 汎用的 -- TurnBased : ターン制ゲーム -- Unity Networking : Unity向け -- Chat -- Voice - Photon Server ライセンス型サービス。ミドルウェアで提供。 - サーバーはRealtimeがベース基本。トラフィック量が少ないならTurnbasedに。 - 自社運用が必要、ロビーのカスタマイズ等が必要ならPhoton Server。 - UnityならPUNを無料でダウンロードできる。 - サーバーが必要になってもwebhookやpluginを使ってみるのも。 - Photon Enterpise Cloud Photon Cloudの上位サービス。 ** 採用の経緯 [#xf73c656] - 低レイテンシ - 扱うデータ量が多いので、大量のクライアントを裁ける ** ネットワーク構成 [#j803b007] [ web server &DB ] <-> [プラットフォーマー、外部サービス] ↑ ↑ ↓ ↓ [リアルタイム通信サーバー] [Photon Server] Photon Name Server → Photon Master Server ↓ Photon Game Server ** 実際の通信フロー [#gcf6d97c] + Name ServerからMasterサーバーの場所を教えてもらう + MasterサーバーでRoomにJoinしてGameServerへ ** 実装例 [#j65e5ce9] - ポインティング移動方式 目標座標だけ通信。 - 敵シンボル プレイヤーと同じ。サーバー側で移動計算する。 - バトルの判定 全てサーバー側で。 完全に同期していない。一定のタイミングで同期している。 稀に時が飛んだり、巻き戻ったりする。 - Pingの可視化。通信状況を表示する。画面に表示。 低 < 50ms < 中 < 100ms < 高 - サーバーのメインループ。 ルーム毎にループ作ってる。 ** 最後に [#j173c441] 通信が切れたとかはPhotonに任せてる。 * VR分野でのUnity総括 [#n9b97edf] - 疲労を考慮 Cardboardもバンドが無いのは定期的に休ませるため(?) 目も披露する。寄ったり離れたり * ホンモノ志向のVR空間づくり [#v3ee741a] ** Room Scale VR [#sa95c5ad] - 美の科学 - PART1 右目左目が重複する140度が人間の視界 - PART2 目が一つしかない場合も奥行きは分かる。学んで覚える。子供の頃は立体的に見えない。 その物体の知識(知っている物)があるので立体感を得られる。 交通標識を知っているので、写真の中でどれくらいの距離にあるかが理解できる。 片目でも分かるのは遠近法があるから。 - PART3 動き。 -- Teleportation。落としてみてください。 移動が1.5秒以内なら気持ち悪くならない。 - SHAPES&SPACE フィボナッチ数列 黄金比 三分割法 - Perspective -- ベルサイユ宮殿。水が入っているところは台形になっていて、目で見ると逆の遠近法でまっすぐになるように -- パルテノン神殿。目で見て正しくなるように。実際は床は湾曲してるし、柱の間隔も一緒ではない。上部が先細り。端が傾いている。 -- 陰についての知識が人間にはあるので、それで立体的に見える。 建築物の柱に溝を掘って影を付けて立体感を出していたりする。。 -- 安藤忠雄の作品。(多分この人:https://ja.wikipedia.org/wiki/%E5%AE%89%E8%97%A4%E5%BF%A0%E9%9B%84 影をうまく使って立体的に。 ** Unity VR: Light - Shadow [#k1f5aa33] - Light Baking - GI - AO ** 1point advice [#la37469c] VRを片目だけでチェックする。空間を認識できない場合は、再度考慮する。 片目だけでみえるとVRでよりよい。 * 映像制作のゲームチェンジャー:メイキング オブ ”THE GIFT” [#xfcc24b5] ** プロジェクトの課題 [#af50ed14] ** ワークフロー/パイプライン&ツールの紹介 [#r39dd0c4] ** シェーダー [#t1d27441] *** Standard [#c16614b0] UityStandardShaderの拡張 *** Fur [#n06548c2] Shell構成。50パス。 FlowMapで毛の流れ *** Skin [#hef50f1f] ScreenSpace SubsurfaceScattering *** Eye [#gf85605f] パララックスマッピング *** hair [#of4e010e] Kajiya Shadeing model *** Grass [#f3e2ff72] TessellationGrassからの拡張 HeightMapとか *** Mask Shader [#h7244218] 諸々のマスクを行う ** 大波エフェクト作成方法 [#l0fb7621] *** Work Flow [#pa3e5587] Houdini -> Maya -> houdini -> Unity -> Nuke *** ColorBall [#vb502e0e] 32億ポリゴン Pseudo-Instancing + Alembicのポイント情報をテクスチャに格納。 + 頂点シェーダーでテクスチャ参照して配置。 - ポリゴンが角ばる カメラに水平な面に球を投影、ポリゴンとの差分部分はDiscard * Unityを使った個人ゲーム開発における「収益化」の現状と未来 [#l95b999c] - Back in 1995で使用しているUnityを使ったPS1風描画について http://ttwco.blogspot.jp/2016/04/back-in-1995unityps1.html?m=1 * Making of The Modern Zombie Taxi Co. [#v32e7a94] ** VRに存在する新しいゲーム [#l3a24534] *** HUD。 [#b7353dd0] - 低解像度なので、大きくテキストを表示しないといけない。 現実世界にあるものを利用した。 -- ポスター、TVなど。 プレイヤーから寄ってくる。 プレイヤーに注視させる。選択するまでTVが踊ってる。近寄ったら止まる。 *** メニュー画面 [#wf1215de] 細かい情報は使えない。 - Look At Button。Gazing。 ゲームオブジェクトを視線で選択する。 スクリプトで追加すると、LookAtoButtonのオブジェクトになるようにした。 -- ゲーム内でも使用している。 -- ボタン同士の距離は遠ざけた方が良い。 近いとプレイヤーが眼だけ動かしてしまうので。 ** メッセージ [#k19c29bf] テキストはオブジェクトに張り付けた方が良い。 そのオブジェクトがゲームとして意味があるように ゲームスクリーンに直接貼り付けない方が良い。 ** ゲーム内のUI [#a85efdca] - ダッシュボード(車)に表示した。 -- 複雑すぎる。 -- 新規VRユーザーを混乱させる。 -- 情報が多いとノイズ情報となる。 - シンプルにした。 中心にあるダッシュボードテレビに重要な情報を纏めた。 重要でない情報は小さく。 文字/言葉の必要ないデザイン ** 目的地矢印 [#p88d238e] 看板で配置。 ゴール地点にバルーン。常に視野に入るように ** チュートリアル [#rb954199] - 初めてVRを遊ぶ人。 自由に動けること、自由に見回せることを理解できていない。 - 一つ一つボタンをチュートリアルする + パッドのボタンを押させる + 右の方向を見させる - シンプル過ぎる事はない - プレーテストが重要 - 全てを教えない。 -> 1度にすべてを覚えれない -- バックやUターンを教えない -- ゲーム的なメカニクスを教えない - 特徴的なビジュアルを配置すると、記憶しやすい - 同じ要素を使う。同じ情報を複数表示。 ** QA [#f849936b] - プレイテストどれくらいした? ゲーム開発者の人で、見つかったら順次やってもらった。海外から来た人など。酔うまで。 |