読者です 読者をやめる 読者になる 読者になる

ぷらこあ

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

サムザップテックナイト vol.2に参加しました

セミナー/勉強会/イベント

sumzaptechnight.connpass.com

  • 参加しました!(ˊ꒳ˋ*)
  • ちなみに前回のサムザップテックナイトvol.1は @ryuzee さんの「強いチームの作り方」の話でした

www.ryuzee.com

Unityでの絵作りにおける挑戦的表現 / パフォーマンスチューニングとのベストバランス

はじめに

www.youtube.com

ゲーム絵作りの基本

  • ゲーム機で絵を出すには?

それぞれの役割

  • アーティスト
    • ゲームイメージを固める
    • モデル/イラスト/アニメーションを実際に制作する
  • プログラマ
    • アーティストが作ったデータを適切に表示する
    • 表示する為のデータ仕様を作成/提示
    • アーティストの手の届きにくい部分のグラフィック処理
      • ライティング処理
      • ポストフィルタ
    • ハードウェアの制御が必要
      • グラフィック処理は関連するハードウェアが多い

CPU/GPUの基本動作

  • CPU: ゲーム処理
  • GPU: 絵を描く処理
  • フレーム
    • 垂直同期のタイミングが一定 (1/60秒が主)
    • 1秒間のフレーム数がfps
    • 1/60秒動作の時は60fps
  • 処理落ち
    • ゲーム処理が1フレームに収まらない場合、無駄に待ち時間が発生する
    • GPUの処理落ちもありうる
  • 今回はGPUに着目

GPU負荷軽減

  • シェーダ
    • 3Dオブジェクトの描画
      • 頂点シェーダ
        • 頂点に対して座標変換を行う
        • ポリゴン1つに対して3回
      • ピクセルシェーダ
        • 塗りつぶすピクセル数だけ処理を行う
        • 高負荷になりやすい
  • DrawCall
    • 1フレームにおいて必要なオブジェクトを部分部分1つずつ書く
    • この回数をDrawCall数と呼ぶ
    • UnityではFrameDebuggerで確認出来る
  • 負荷計測
  • ゲーム仕様との最適化
    • 「削る」って単語がドライなイメージ
      • 極論何も描かれないのが一番軽い
      • それは本当にゲームの演出として適切か?
    • 仕様を見極めてバランスを取るための提案
  • 背景
    • 動的なライティングを行うか?
      • オープンワールドはリアルタイムに天候変化
      • そうでないときは頂点カラーなどに焼き付けておけば軽い
      • それともUniyならライティング焼き付けを使う?
    • 影を受けるかどうか?
      • 受けると重い
      • 平面限定なら丸影にする
  • ポストフィルタ
    • けっこう負荷になりがち
    • 標準のポストフィルタを使うと高負荷になりがち
    • 複数使用していないか?
    • 自作する勇気
      • 元の負荷が高いので大きな軽減が見込める

思い込みを無くす

  • グラフィックプログラマは司令塔みたいなもの
    • 思い込みで指示を出さない
  • 「半透明は重い」「DrawCall数はとにかく減らせ」
    • 本当に…?
  • 半透明
  • DrawCall
    • e.g) Shaderの中で部分UVスクロール
      • 部分適応外の部分もUVスクロールしない、という判定
      • マテリアル(DrawCall数)増やして処理を狭めた方がGPU的には優しい

チャレンジ処理

まとめ

  • 絵作りに関わる人間
  • 思い込みで指示を出さない
    • なんでそうなるのかを知っておく
  • 技術チャレンジについて
    • 積極的にやる
    • 商品としての完成度アップや宣伝になる

FAQ

  • Q, グラフィックプログラマの育成は?
    • 人材少なめ、若手がいない
    • ポストフィルタ辺りから触ってもらうのが楽かもしれない
  • Q. 最近のグラフィックのレンダリングの流れはデザイナーも知らないとポテンシャル出せない、一方で教えるのはしんどい
    • 好きにさせてる事は多い
    • あまりにも多かったら減らす処理を入れる
    • 逐次確認して説明している

感想

  • この分野、最近関わりを持つようになったのに対し、全然知識ない状態だった
  • そのタイミングでの今回の話は、かなり敷居の低い所から話してくださり、良い導入になった
  • 思い込みの件、実測しないとデザイナーさんにも効果伝わらないし、完全に耳が痛かった
  • シェーダはやるやる言ってて中々踏み出せてないのそろそろどうにかせなアカン