Unity Weekly #018

Unity道場2021.1

b7badfe14800ea2363736536e03150b0231ae35f

Unity道場 2021.1 - Unity Meetup

2021/06/17に「Unity道場2021.1」がオンラインで開催されました。

YouTube上で当日のアーカイブを閲覧できます。 また、Unity Learning Materials上でそれぞれの講演の動画およびスライドを確認できます。

The Secret Behind Valve’s Flickering Lights

flickering lights

The Secret Behind Valve's Flickering Lights - Alan Zucconi

  • この記事では、「Quake」や「Half-Life」などで見られるライトのちらつき効果の起源と、それらのゲームで実際に利用されているちらつき効果の実装方法について説明しています。
  • 「Quake」や「Half-Life」などのちらつき効果実装で実際に利用されているlightstyleという関数の説明と、どのようにちらつき効果を定義するかについて解説しています
  • 上記の関数を実装したコンポーネントが入ったunitypackageを記事中からダウンロードできます。

Archery combat mechanic in 2D pixel-perfect Unity game

archery main feature image at pav creations

Archery combat mechanic in 2D pixel-perfect Unity game - Pav Creations

  • この記事では、2Dゲームでアーチェリーのような武器を用いた戦闘システムを実装する方法について解説しています。
  • プレイヤーのアーチェリー発射準備モーションにアニメーションイベントを仕込み、そのイベントをベースにキャラクターやHUDの制御を行っています。
  • 発射する矢に CircleCollider2D をアタッチして当たり判定を取ります。また、RigidBody2D により矢の物理挙動をシミュレーションしています。

Tutorial: How to Make a Game Like Space Invaders

Unity Tutorial: How to Make a Game Like Space Invaders | raywenderlich.com

  • この記事は、スペースインベーダーのようなゲームをUnityで実装するためのチュートリアルです。
  • プレイヤーおよびエネミーの実装から配置、レーザーの発射の実装、エフェクトや効果音の実装、ゲームロジック、画面遷移までの、ゲームの実装方法をひととおり解説しています。

GPU Mesh Voxelizer

2021 06 19 13 07 41 Clipboard

GPU Mesh Voxelizer Part 4: Mesh Translation and Rotation – Bronson Zgeb GPU Mesh Voxelizer Part 5: Filling the inner voxels – Bronson Zgeb

  • BronsonさんによるGPU Mesh Voxelizerに関する連載のパート4とパート5です。過去記事はこちらから確認できます: パート1パート2パート3
  • パート4では、回転と平行移動をサポートします。Unityの座標システムに則って、このシステムが保持するローカル座標をもとにボクセルをワールド座標で描画します。また、コンピュートシェーダーの構造体を用いてリファクタリングを実施します。
  • パート5では、ボクセル化されたメッシュの内側を塗りつぶします。レイとトライアングルの交差にはMöller-Trumboreアルゴリズムを用います。

Deferred Frag Shaders

ScreenHunter12216

Deferred Frag Shaders | Team Dogpit on Patreon

  • この記事では、Unityの提供する遅延レンダリングパスと互換性のあるフラグメントシェーダーの実装方法について説明しています。
  • 既存の「Unlit Shader」テンプレートから作成したシェーダーを、デバッグオーバービューなどを用いてデバッグしながら改良して、遅延シェーディングに対応させます。
  • フラグメントシェーダーでGBufferに値を書き込む方法について解説しています。また、既存のフォワードシェーディングとも互換性を保つためのパスの記載方法と#pragmamulti_compile_fwdbaseについても言及しています。