&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]
- プレイテストどれくらいした?
ゲーム開発者の人で、見つかったら順次やってもらった。海外から来た人など。酔うまで。


    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS