&contents ---- * 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が出れば、リリース時期どうするか等の連絡が来る * 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 [#fd0ea9b8] ** 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/AR [#g7b1647e] - 疲労を考慮 Cardboardもバンドが無いのは定期的に休ませるため 目も披露する。寄ったり離れたり - VRエディター * VR [#cc588d0e] ** Room Scale VR [#sa95c5ad] 美の科学 PART1 右目左目が重複する140度 PART2 目が一つしかない場合も奥行きは分かる。学んで覚える。子供の頃は立体的に見えない。 その物体の知識(知っている物)があるので立体感を得られる。 交通標識を知っているので、写真の中でどれくらいの距離にあるかが理解できる。 片目でも分かるのは遠近法があるから。 PART3 動き。 Tekeportation。落としてみてください。 移動が1.5秒以内なら気持ち悪くならない。 SHAPES&SPACE フィボナッチ数列 黄金比 三分割法 Perspective ベルサイユ宮殿。水が入っているところは台形になっていて、目で見ると逆の遠近法でまっすくぐになるように パルテノン神殿。目で見て正しくなるように。実際は床は湾曲してるし、柱の間隔も一緒ではない。上部が先細り。端が傾いている。 陰についての知識が人間にはあるので、それで立体的に見える。 柱に溝を掘って影を付けて立体感を出す。 あんどうただお の作品。 影をうまく使って立体的に。 ** Unity VR: Light - Shadow [#k1f5aa33] Light Baking GI AO ** 1point advice [#la37469c] VRを片目だけでチェックする。空間を認識できない場合は、再度考慮する。 片目だけでみえるとVRでよりよい。 * Gift [#b5feb663] ** プロジェクトの課題 [#af50ed14] ** ワークフロー/パイプライン&ツールの紹介 [#r39dd0c4] ** シェーダー [#t1d27441] *** Standard [#c16614b0] UityStandardShaderの拡張 *** Fur [#n06548c2] Shell構成。50パス。 FlowMapで毛の流れ *** Skin [#hef50f1f] SSSSS *** 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 * Age of Empires: World Domination [#wdfb2d0c] ** 国際化対応 [#k0c27eb3] ** 物量 [#r6a6b33c] ** グラフィクス品質 [#r0da1d6f] * Taxi [#l98fe135] ** VRに存在する新しいゲーム [#l3a24534] *** HUD。 [#b7353dd0] 低解像度なので、大きくテキストを表示しないといけない。 現実世界にあるものを利用した。 ポスター、TVなど。 プレイヤーから寄ってくる。 注視させる。選択するまで、TVが踊ってる *** メニュー画面 [#wf1215de] 細かい情報は使えない。 Look At Button。Gazing ゲームオブジェクトを視線で選択する。 スクリプトで追加すると、LookAtoButtonのオブジェクトになる。 ゲーム内でも使用している。 ボタン同士の距離は遠ざけた方が良い。 プレイヤーが眼だけ動かしてしまうので。 ** メッセージ [#k19c29bf] テキストはオブジェクトに張り付けた方が良い。 そのオブジェクトがゲームとして意味があるように ゲームスクリーンに直接貼り付けない方が良い。 ** ゲーム内のUI [#a85efdca] ダッシュボード(車)に表示した。 -- 複雑すぎる。 -- 新規VRユーザーを混乱させる。 -- 情報が多いとノイズ情報となる。 シンプルにした。 中心にあるダッシュボードテレビに重要な情報を纏めた。 重要でない情報を小さく。 文字/言葉の必要ないデザイン ** 目的地矢印 [#p88d238e] 看板で配置。 ゴール地点にバルーン。常に視野に入るように ** チュートリアル [#rb954199] 初めてVRを遊ぶ人。 自由に動けること、自由に見回せることを理解できていない。 一つ一つボタンをチュートリアルする + パッドのボタンを押させる + 右の方向を見させる シンプル過ぎる事はない プレーテストが重要 全てを教えない。 -> 1度にすべてを覚えれない バックやUターンを教えない ゲーム的なメカニクスを教えない 特徴的なビジュアルを配置すると、記憶しやすい 同じ要素を使う。同じ情報を複数表示。 ** QA [#f849936b] - プレイテストどれくらいした? ゲーム開発者の人で、見つかったら順次やってもらった。海外から来た人など。酔うまで。 |