ぷらこあ

雑記/ゲームアイデア帳/成果物ぺろり

Unite2016Tokyoに参加しました(Day2)

  • ざっくり自分用メモ
  • ほぼ全ての講演は以下のURLから資料公開されています

Unity - Unite 2016 Tokyo 講演ガイド

1日目はこちら

lycoris102.hatenablog.com

Unity5を使った「いけにえと雪のセツナ」の雪世界の作り方

  • shader等の描画周り、知識疎いので学習機会持ちたい...

いけにえと雪のセツナ

www.jp.square-enix.com

  • 1年半ぐらいの開発期間(2014年後半~2016年1月中旬)

マルチプラットフォーム考慮した描画

  • PS4/Vitaだけの対応、スマホに比べたら気は楽
  • スペックの低いvita基準で

雪世界の表現のために

雪面凹み

  • 歩いた跡の表現
    • 徐々に回復する(跡が消える)
  • VTF(頂点テクスチャフェッチ)を活用して実現
    • マップ侵入時にマップ全体を捉えて地形をレンダリング
    • その後、毎フレームキャラのみをレンダリング
      • 凹み具合を追加で書き込み
    • 地面は1グリッド20cm四方に敷き詰めている

DOF(被写体深度)パーティクル

  • 近い雪だとぼやっとしている
    • 低コストで実現したい
  • 単純な処理で逆方向MIPMAPで対応
    • MIPMAPによる前後の解像度の表現を入れ替えた
    • 普通は近いほど鮮明で、遠い程ぼやけるが、これを逆にする

ビルド最適化

  • 最適化したいがアーティストの作業に支障はきたしたくない
  • Jenkinsでビルド時に最適化を行う

Rendererマージ

  • 主に不透明を中心にRendererをまとめる
    • GameObject等が明らかに減る
    • 最適化前: GameObject数 9427
    • 最適化後: GameObject数 192

頂点ライトマップ

  • ライトマップテクスチャがメモリを圧迫
  • テクスチャ枚数が多くて、VRAMに負荷
  • ビルド時にライトマップテクスチャの情報をUV1/UV2...にRGBを移す
    • 頂点にライトマップカラーの埋め込みを行って対応

映像制作のゲームチェンジャー:メイキング オブ ”THE GIFT”

  • 半年で完成までいたったのホントに凄い

ワークフロー/パイプライン/ツール紹介

エフェクト作成手法

カラーボールレンダリング

ビルディング・2Dワールド in Unity ~2D機能のあれやこれや~

  • 個人的ベストはコレ
  • デモを見せなら機能説明するのとてもワクワクした良い

マップの量産

  • 1つスプライトを置いて、DrawModeをTiledにして反復させる
  • あまりストレッチさせたくない場合はFullTileをContinuesuに
  • 9スライスをSpriteEditorで設定
    • コーナを変えずに中の部分をストレッチさせることが可能

タイルマップ

  • Gridコンポーネント
    • cellのSize/Gap/layoutの設定可能
    • CellSizzleで様々な方向からタイルマップを設定出来る
  • タイルアセットに関して色やtransformを設定可能
    • 複数のSpriteを事前に作る必要が無い
  • Layerに対しても移動したり回転したり色を変更することも可能
    • 工夫することで影を作るLayerを作ることも可能
  • layerに対してPolygonColliderを設定することで当たり判定を設定
  • SpriteAnimationも可能
    • TileMapのAnimationFramerateを設定可能
  • プログラマブルタイル
    • 配置時の自動結合判定などが書ける

マスク

Physics

  • CapsuleCollider2D
    • 人間のキャラクターに適応しやすい良い形状
  • EdgeCollider2D
    • EdgeRadiusの設定を可能に

FGOにおけるディライトワークス流Unity活用術

  • 主にデザイン面の話
  • キャラ毎にリソース用意してアニメーション組むの大変そうだ...

デザイン編

動画ベースでの修正

  • バトル実装にはPlayMaker/uSequencer
    • 慣れればプランナーでも十分
    • 3DCG制作スキル/Unity経験があってもアニメ制作経験のある人は居ない
    • アニメ制作経験のある人がハードルを意識せずノウハウ投入出来るフローが必要
    • 出来上がったモーションを一度動画にして、遷移や作画チェックを行う
  • ビルボードで表現する
    • リミテッドアニメの手法で動きを付ける
    • ためを意識、ヌルヌルさせすぎない

モーションの非共通化

  • ロンチ当初: できるだけ共通点を持たせて武器対応別に動きは記号化して行きたい
  • 運営して行くに釣れ、遊んでくれる人とキャラへの想いが想定以上だった
  • 今後登場して行くサーヴァンとは出来るだけ動きを共通化させない

実装編

バトルキャラ(サーヴァント)編

  • 初期段階でSpineは不採用に
    • 3D空間で派手な動きをさせづらい
    • 特に横方向にヤリを振り回すキャラ
  • Maya
    • Maya扱えるエンジニアを抱えていた
    • 3D空間上でのダイナミックアクション
    • メッシュを重ねて平面っぽく作っている(2D)
    • ただし横の動きをする物に関しては3Dモデルを使用している
    • エクスポートしたfbxをそのまま使っている
  • インビジブルエア問題
    • Mayaのみでは表現が不可能
    • 各部位にノードを埋め込んでPrefabにてパーティクル出す
  • データを増やさず見た目を変えたい
    • 1テクスチャの中で詰め込んでプログラムで切り替え
    • ボーンは共通、ただし一部は進化毎に
  • 動きについて
    • PlayMaker(アセット)
    • FGO専用のPlayMakerのアクションをプログラマが書く
    • Unityエンジニアが動きを付けて仕上げる
    • カメラ移動もPlayMakerで管理
    • エフェクト制御も

宝具編

  • PlayMkaerで宝具は量産性に掛ける(特殊スキルが必要)
  • uSequencerで作成
    • いわゆるカットシーンエディタ
    • テンプレートシーンにバトルキャラを置く
    • 表示されるエフェクト/カットインを全部置く
    • uSequencerに割り当てて、ひたすらタイミング通りに動かす
    • デザイナーのみでガシガシ作れる

マルチシーン編集の使い方

  • 基本的な説明と使用方法について

UnitySceneについて

  • 複数のシーンを1回でロード可能
  • 全てのアセットがメモリにロードされる
  • 大きなシーンだとメモリを大きくなる
  • 複数のシーンに分割する必要がある

マルチシーンエディタ

  • 何故コレを使うべきか?
    • 小さいシーンに分割することが出来る
    • 違う人がシーンの部分毎にいじることが出来る
      • Audio
      • AI
    • 一括して見ることも出来るし、分割した状態で見ることも出来る
    • 複数シーンでいじることでコンフリクトを回避出来る
    • edit中にメモリが足りなくなる問題も回避出来る
      • よりシンプルなリソース管理

マルチシーンに合わせて対応したもの

  • Lighting
    • ここにBakeする必要があったが一緒にBakeすることが可能になった
    • 各シーン毎には設定されているので、ここをUnloadしても問題ない
  • NavMesh
    • Lighting同様、各シーン共有の大きなNavMeshが生成される
    • ActiveSceneのみ有効

Known Limitation

  • クロスシーンリファレンスはサポートされていない
  • シーンAのオブジェクトがシーンBのオブジェクトにリファレンスで着ない
  • エディタ上では出来ないがランタイムであれば可能
  • もしくは別のManagerクラスで相互にやりとり出来る様にする
  • サポートしていない警告文が表示される
    • アクティブシーンロード時に対称のシーンがロードされているとは限らないから

Unityとアセットツールで学ぶ絵作りの基礎

  • ちょっと後半の実践は自分には難しかった...

絵作りとは何か

  • 視覚的設計
    • 魅力: 視覚的な興味や関心を引くテーマとなるような絵作り
  • LookDev
    • スタッフ全員で共有することで高度な画面設計が可能

絵画における質感を構成するもの

  • 色 (材質/当たっている光の色の表現)
  • 陰影 (立体表現)
  • タッチ (材質の表面状態の表現)

同じことを3DCGで考える

  • マテリアル (マップおよびシェーダー)
  • ライト (直接光と間接光、ホワイトバランス、ソフトネス、アングル(どういう目的を持って照らしているか))
  • カメラ (HDR、フォーカス、スクリーンスペースでのイメージエフェクト)

ライティングにおけるモチベーションと作為

  • モチベーション: 光源
    • 特にオフスクリーンスペースに存在する光源を考慮にいれる
    • どういうストーリーを示すライティングかの意識が大事
  • 作為(チーティング)
    • 観客に違和感を感じさせない程度にモチベーションに意図的に細工する
    • 恣意的に協調したり、影を無くしたり、特定のもののみ照らす等

このアセットがすごい2016

講演以外の感想

  • 前日に引き続き、高速資料アップが素敵すぎでした
  • プロダクトの中身見せてくださり(丁寧に対応してくださり)本当にありがとうございました!
    • いけにえと雪のセツナ
    • 1000mゾンビエスケープ
  • 来年も何かしらの形で関わって行きたい
    • 今年はトレーニングデイでTAやらせていただきました
    • 成果物の発表、もしくはLTの参加目指すぞ!
  • 運営/参加者の皆さん、2日間お疲れ様でした!