&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の申請が必要

リモコン

  • 4方向のデジタルボタン
  • 決定
  • バック

アプリライフサイクル

  • アプリからホームやユニバーサルメニューを呼び出す仕組み
  • Unityだと自動で処理される
  • オンラインマルチプレイは注意。レンダリングは止めて、ロジックだけは回さないといけない。

Oculus Store配信手順

  • アプリ申請→品質チェック→配信
    • チェック内容
      • SDKバージョン
      • クラッシュしないか
      • 推奨PCで動くか
      • 快適性
      • アプリライフサイクルへの対応
      • エンタイトルメントへの対応

開発者サイトのガイドラインを参考に

  1. 開発者向けダッシュボード
    • 組織の登録。個人でも。
  2. アプリ登録
  3. ビルドをアップロード。PC版はzipで。
    • ビルドチャンネルを設定して、テストユーザーだけに配信とかもできる。
  4. 情報の登録
    • デバイス、ジャンル、レーティング
  5. アイコンの登録
  6. 価格設定
    • 現在はUSドルのみ
  7. ストア担当からOKが出れば、リリース時期どうするか等の連絡が来る

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

PSVR * Unity

UnityでPSVRを開発するまで

  1. SIEと契約
  2. 開発機材を入手。開発機が少なくなってきているので、具体的な企画ある所に優先的になっている
  3. Unityで作成
    1. Project設定をPS4にしてビルドするだけでPS4で動かせる
    2. DisplayBufferをVR用の設定
    3. VR SupportをON
    4. オーディオ3DをON(AudioOut3d, Virtual Speaker)
    5. カメラ構成をチェック「Target Eye」が「Both」か
    6. スクリプトでVRSettingsに対してPSVRの設定3つ。
      でPSVRで再生できる。
  4. 次、UIがぷるぷるする。
    • Reprojectionによる影響
      Post Reprojectionにて解決。
      • UI以外を描画。Reprojectionする
      • UIのみを描画
        上記2つを合成する。

Social Screen機能を使ってみよう

  • PSVRで見ている画面を、TVに移す機能
    • Separate Screen
  • PSVR側とTV側で違う画面を表示する
  • UnityでSeparateする
    1. [Social Screen Support]をON
    2. 別のカメラを用意。「Target Eye」を「None(Main Display)」に
    3. VRSettings.showDeviceView = false;
    4. これでSeparate Screenできる。 

UnityコンテンツをPlaystation Storeで販売しよう

  • 契約締結後、SDKと機材を入手してコンテンツ製作開始。
    • 契約→エントリーは「日本に法人登録されている会社」のみ
    • 法人登録していない人。
  • インディパブリッシャーを通してコンテンツの販売。
    • Playism、mebius、Flyhigh Works等
    • ツテがない人。いとぅあきなり氏に連絡取ると、インディーパブリッシャーさんと受け渡ししてもらえる。

納品まで

  1. Unityでゲームパッケージ作成
  2. データ納品
  3. 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

実際の通信フロー

  1. Name ServerからMasterサーバーの場所を教えてもらう
  2. MasterサーバーでRoomにJoinしてGameServerへ

実装例

  • ポインティング移動方式
    目標座標だけ通信。
  • 敵シンボル
    プレイヤーと同じ。サーバー側で移動計算する。
  • バトルの判定
    全てサーバー側で。
    完全に同期していない。一定のタイミングで同期している。
    稀に時が飛んだり、巻き戻ったりする。
  • Pingの可視化。通信状況を表示する。画面に表示。
    低 < 50ms < 中 < 100ms < 高
  • サーバーのメインループ。
    ルーム毎にループ作ってる。

最後に

通信が切れたとかはPhotonに任せてる。

VR/AR

  • 疲労を考慮
    Cardboardもバンドが無いのは定期的に休ませるため
    目も披露する。寄ったり離れたり
  • VRエディター

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

  1. Alembicのポイント情報をテクスチャに格納。
  2. 頂点シェーダーでテクスチャ参照して配置。
  • ポリゴンが角ばる
    カメラに水平な面に球を投影、ポリゴンとの差分部分はDiscard

Age of Empires: World Domination

国際化対応

物量

グラフィクス品質

Taxi

VRに存在する新しいゲーム

HUD。

低解像度なので、大きくテキストを表示しないといけない。
現実世界にあるものを利用した。

ポスター、TVなど。
プレイヤーから寄ってくる。
注視させる。選択するまで、TVが踊ってる

メニュー画面

細かい情報は使えない。
Look At Button。Gazing
ゲームオブジェクトを視線で選択する。
スクリプトで追加すると、LookAtoButtonのオブジェクトになる。

ゲーム内でも使用している。
ボタン同士の距離は遠ざけた方が良い。
プレイヤーが眼だけ動かしてしまうので。

メッセージ

テキストはオブジェクトに張り付けた方が良い。
そのオブジェクトがゲームとして意味があるように
ゲームスクリーンに直接貼り付けない方が良い。

ゲーム内のUI

ダッシュボード(車)に表示した。

  • 複雑すぎる。
  • 新規VRユーザーを混乱させる。
  • 情報が多いとノイズ情報となる。

シンプルにした。
中心にあるダッシュボードテレビに重要な情報を纏めた。
重要でない情報を小さく。

文字/言葉の必要ないデザイン

目的地矢印

看板で配置。
ゴール地点にバルーン。常に視野に入るように

チュートリアル

初めてVRを遊ぶ人。
自由に動けること、自由に見回せることを理解できていない。

一つ一つボタンをチュートリアルする

  1. パッドのボタンを押させる
  2. 右の方向を見させる

シンプル過ぎる事はない
プレーテストが重要

全てを教えない。
 -> 1度にすべてを覚えれない
バックやUターンを教えない
ゲーム的なメカニクスを教えない

特徴的なビジュアルを配置すると、記憶しやすい

同じ要素を使う。同じ情報を複数表示。

QA

  • プレイテストどれくらいした?
    ゲーム開発者の人で、見つかったら順次やってもらった。海外から来た人など。酔うまで。

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