&contents
Visual Studio 2015 & Graphics Design Tool †
Visual studioで絵を描く
Visual Studio †
Image Editor †
新規作成→ファイル→グラフィクス→bmpとか
- dds保存して開くと、mipmapを生成して見ることが出来る。加工もできる。
Model Editor †
モデルを編集して保存すれば、Unity側にリアルタイム反映できる。
法線がおかしいとかは直せないので、その点では確認ツール。
Shader Designer †
ノードベースでシェーダー作成
Unityグラフィクス最新機能ガイド †
Multithreading Rendering †
5.4で最適化した。
Double Wide Rendering対応。(VRの両目同時レンダリング)
Multithread Render Loop。
CPUで最適化している。
テクニカルデモの右腕の布を破ったところ。 †
Alembic使った。マーズさんのThe GIFTのスライドにツールある
Cinematic Image Effects †
BitBucketへのリンクがスライドに入ってる
- SSR
- AO
- BLOOM
- DOF
- ToneMap
- Vignette
- AA
Progressive Light Mapper †
(LightmassのProbe計算)
Imagination Tec.と連携
シーンビューの見えている所から順次リアルタイムにベイクしていく。
ライトを動かすと、その時点からベイクが開始される。
Roadmap †
Cinematic Image Effectを一纏めにパッケージングしたい
実践!Oculus Rift - VR開発テクニック †
Unityによる開発 †
SDK 1.3
非同期タイムワープ対応 †
FPSが落ちても、HMDのトラッキングだけは維持する。
処理落ち発生しても、頭のトラッキングは滑らか
ロード中でも滑らかに。ただ万全ではない。
Unityだと特に何もしなくても反映される
PlatgototmSDK †
- フレンド
- リーダーボード
- アチーブメント
- マッチメイク
- アプリ内課金
- P2P通信
- エンタイトルメントチェック
→ アプリの使用権限チェック
申請に必須。
Platformの機能を使うにはAppIDの申請が必要
リモコン †
アプリライフサイクル †
- アプリからホームやユニバーサルメニューを呼び出す仕組み
- Unityだと自動で処理される
- オンラインマルチプレイは注意。レンダリングは止めて、ロジックだけは回さないといけない。
Oculus Store配信手順 †
- アプリ申請→品質チェック→配信
- チェック内容
- SDKバージョン
- クラッシュしないか
- 推奨PCで動くか
- 快適性
- アプリライフサイクルへの対応
- エンタイトルメントへの対応
開発者サイトのガイドラインを参考に
- 開発者向けダッシュボード
- アプリ登録
- ビルドをアップロード。PC版はzipで。
- ビルドチャンネルを設定して、テストユーザーだけに配信とかもできる。
- 情報の登録
- アイコンの登録
- 価格設定
- ストア担当からOKが出れば、リリース時期どうするか等の連絡が来る
Unity x PlayStation VR コンテンツを作ってリリースするまでのお話し †
PSVR * Unity †
UnityでPSVRを開発するまで †
- 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機能を使ってみよう †
- UnityでSeparateする
- [Social Screen Support]をON
- 別のカメラを用意。「Target Eye」を「None(Main Display)」に
- VRSettings.showDeviceView = false;
- これでSeparate Screenできる。
UnityコンテンツをPlaystation Storeで販売しよう †
- 契約締結後、SDKと機材を入手してコンテンツ製作開始。
- 契約→エントリーは「日本に法人登録されている会社」のみ
- 法人登録していない人。
- インディパブリッシャーを通してコンテンツの販売。
- Playism、mebius、Flyhigh Works等
- ツテがない人。いとぅあきなり氏に連絡取ると、インディーパブリッシャーさんと受け渡ししてもらえる。
納品まで †
- Unityでゲームパッケージ作成
- データ納品
- QAチームによるチェック、デバッグ
- 酔いが起こりづらいコンテンツ製作の為に
- 60FPS以上
- リプロジェクションを入れる。
- レイテンシーを低く
- VRコンサルテーションサービスを提供する。日本でもアジアでも。
New お知らせ! †
- Cygames x SIE
VRコンテンツ Made With Unity
PSVRゲームコンテスト開催!
詳細は後日
Photon †
Photonの紹介 †
- サーバークライアント型
一度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の上位サービス。
採用の経緯 †
- 低レイテンシ
- 扱うデータ量が多いので、大量のクライアントを裁ける
ネットワーク構成 †
[ web server &DB ] <-> [プラットフォーマー、外部サービス]
↑ ↑
↓ ↓
[リアルタイム通信サーバー] [Photon Server]
Photon Name Server → Photon Master Server
↓
Photon Game Server
実際の通信フロー †
- Name ServerからMasterサーバーの場所を教えてもらう
- MasterサーバーでRoomにJoinしてGameServerへ
実装例 †
- 敵シンボル
プレイヤーと同じ。サーバー側で移動計算する。
- バトルの判定
全てサーバー側で。
完全に同期していない。一定のタイミングで同期している。
稀に時が飛んだり、巻き戻ったりする。
- Pingの可視化。通信状況を表示する。画面に表示。
低 < 50ms < 中 < 100ms < 高
- サーバーのメインループ。
ルーム毎にループ作ってる。
最後に †
通信が切れたとかはPhotonに任せてる。
VR/AR †
- 疲労を考慮
Cardboardもバンドが無いのは定期的に休ませるため
目も披露する。寄ったり離れたり
VR †
Room Scale VR †
美の科学
PART1
右目左目が重複する140度
PART2
目が一つしかない場合も奥行きは分かる。学んで覚える。子供の頃は立体的に見えない。
その物体の知識(知っている物)があるので立体感を得られる。
交通標識を知っているので、写真の中でどれくらいの距離にあるかが理解できる。
片目でも分かるのは遠近法があるから。
PART3
動き。
Tekeportation。落としてみてください。
移動が1.5秒以内なら気持ち悪くならない。
SHAPES&SPACE
フィボナッチ数列
黄金比
三分割法
Perspective
ベルサイユ宮殿。水が入っているところは台形になっていて、目で見ると逆の遠近法でまっすくぐになるように
パルテノン神殿。目で見て正しくなるように。実際は床は湾曲してるし、柱の間隔も一緒ではない。上部が先細り。端が傾いている。
陰についての知識が人間にはあるので、それで立体的に見える。
柱に溝を掘って影を付けて立体感を出す。
あんどうただお の作品。
影をうまく使って立体的に。
Unity VR: Light - Shadow †
Light Baking
GI
AO
1point advice †
VRを片目だけでチェックする。空間を認識できない場合は、再度考慮する。
片目だけでみえるとVRでよりよい。
Gift †
プロジェクトの課題 †
ワークフロー/パイプライン&ツールの紹介 †
シェーダー †
Standard †
UityStandardShaderの拡張
Fur †
Shell構成。50パス。
FlowMapで毛の流れ
Skin †
SSSSS
Eye †
パララックスマッピング
hair †
Kajiya Shadeing model
Grass †
TessellationGrassからの拡張
HeightMapとか
Mask Shader †
Work Flow †
Houdini -> Maya -> houdini -> Unity -> Nuke
ColorBall †
32億ポリゴン
Pseudo-Instancing
- Alembicのポイント情報をテクスチャに格納。
- 頂点シェーダーでテクスチャ参照して配置。
- ポリゴンが角ばる
カメラに水平な面に球を投影、ポリゴンとの差分部分はDiscard
Age of Empires: World Domination †
国際化対応 †
物量 †
グラフィクス品質 †
Taxi †
VRに存在する新しいゲーム †
HUD。 †
低解像度なので、大きくテキストを表示しないといけない。
現実世界にあるものを利用した。
ポスター、TVなど。
プレイヤーから寄ってくる。
注視させる。選択するまで、TVが踊ってる
メニュー画面 †
細かい情報は使えない。
Look At Button。Gazing
ゲームオブジェクトを視線で選択する。
スクリプトで追加すると、LookAtoButtonのオブジェクトになる。
ゲーム内でも使用している。
ボタン同士の距離は遠ざけた方が良い。
プレイヤーが眼だけ動かしてしまうので。
メッセージ †
テキストはオブジェクトに張り付けた方が良い。
そのオブジェクトがゲームとして意味があるように
ゲームスクリーンに直接貼り付けない方が良い。
ゲーム内のUI †
ダッシュボード(車)に表示した。
- 複雑すぎる。
- 新規VRユーザーを混乱させる。
- 情報が多いとノイズ情報となる。
シンプルにした。
中心にあるダッシュボードテレビに重要な情報を纏めた。
重要でない情報を小さく。
文字/言葉の必要ないデザイン
目的地矢印 †
看板で配置。
ゴール地点にバルーン。常に視野に入るように
チュートリアル †
初めてVRを遊ぶ人。
自由に動けること、自由に見回せることを理解できていない。
一つ一つボタンをチュートリアルする
- パッドのボタンを押させる
- 右の方向を見させる
シンプル過ぎる事はない
プレーテストが重要
全てを教えない。
-> 1度にすべてを覚えれない
バックやUターンを教えない
ゲーム的なメカニクスを教えない
特徴的なビジュアルを配置すると、記憶しやすい
同じ要素を使う。同じ情報を複数表示。
QA †
- プレイテストどれくらいした?
ゲーム開発者の人で、見つかったら順次やってもらった。海外から来た人など。酔うまで。