Welcome Weta Digital! - Unity Weekly #039

Unity Official

ようこそ Weta Digital!

0

ようこそ Weta Digital! | Unity Blog

Unityは11/10にWeta Digital のアーティスト用ツール、コアパイプライン、知的財産、そして世界的にも評価されるエンジニアリング人材買収の最終合意に達したことを発表しました。この買収では、Weta Digital独自の(VFX)ツールや技術を、クリエイターやアーティストに提供することを目的としているとのことです。

Weta Digitalの開発するツールは「アバター」や「ロード・オブ・ザ・リング」など数々の受賞歴で知られる作品で活用されています。

コンソール機向けゲームのグラフィックス最適化に関する専門家からのヒント集

1

コンソール機向けゲームのグラフィックス最適化に関する専門家からのヒント集 | Unity Blog

主にコンソール機やPCなどのハイエンドグラフィックスを最適化するためのヒントを、「バッチ数」と「避けるべきシェーダー」、「レンダリングオプション」の観点で紹介しています。

オクルージョンカリングやGPUインスタンシング、SPR Batcherによるバッチ数やシャドウマップのサイズや、コンソール機やPC特有のテッセレーションシェーダーやジオメトリシェーダーやGPUのAsync Computeなどについても触れています。

eBookではグラフィックス以外にもコードアーキテクチャやプロジェクト設定、アセット、UI、オーディオ、アニメーション、物理、ワークフローも取り扱っていて、こちらからダウンロードができます。

HDRP と Unity 2021.2 で本物のボリューメトリッククラウドを体験しよう

2

HDRP と Unity 2021.2 で本物のボリューメトリッククラウドを体験しよう | Unity Blog

High Definition Render Pipeline (HDPR)とUnity 2021.2から利用できるボリューメトリッククラウドによる新しい雲システムについて、雲のレンダリングについての歴史から、HDPRでのボリューメトリッククラウドの設定方法、現状の限界と今後の改善点についてまとめています。

機能プレビュー:Unity のマルチプレイヤーネットワーキングに関する新機能

3

Unity のマルチプレイヤーネットワーキングに関する新機能 | Unity Blog

Unityが2021/10/21にリリースした新機能と、今後の予定について紹介しています。

リリースされた新機能は下記のとおりです。

  • Netcode for GameObjects 1.0.0-pre
  • Unity Transport UTP 1.0.0-pre
    • UDPのラッパーでDOTSとGameObjectベースの両方のNetcodeに対応。今回はDTLSとUnity Relayプロトコルに対応。
  • Unity Transport Adapter for GameObjects 1.0.0-pre
    • Netcode for GameObjectsをUnity Transportで動作させるためのパッケージ。
  • ネットワークプロファイラー
    • Netcode for GameObjectsのネットワークアクティビティの分析ツール。Unity標準のプロファイラーに新しいモジュールを追加する形で実装される。
  • Relay(ベータ版)
    • 専用サーバーを必要としない(ホストプレイヤーがリッスンサーバーとして中継サーバーを作成できる)マルチプレイヤーゲームソリューション。
  • Lobby(ベータ版)
    • ゲームセッション前や途中でプレイヤーをつなげるソリューション。

Pixyz 2021.1:よりパワフルな 3D データ前処理を実現する新製品・新機能

5

Pixyz 2021.1:よりパワフルな 3D データ前処理を実現する新製品・新機能 | Unity Blog

Unityファミリーの一員であるPixyzが2021.1バージョンでリリースした新機能や新製品の中から、「 Scenario Processor」と「Pixyz Loader for Unity」、「Pixyz Review」についてそれぞれ紹介しています。

Pixyz Scenario Processorは3Dデータ前処理の自動化ツールで、CADファイルをUnityのアセットバンドルに変換したり、CADデータを特定のポリゴンターゲットをもつメッシュに変換したり、点群を最適化できます。

Pixyz Loader Unityを用いるとCADファイルをランタイムやエディタで読み込んで、Unity上で描画できるようになります。

また、 Pixyz Plugin for Unityにアップデートが行われ、「Decimate to target function」と「Impostor generator」が新機能として追加されました。「Impostor generator」の生成するインポスターは、オブジェクトの交差やGPUインスタン寝具、影の投影と受け取り、LODクロスフェードにも対応しています。

小規模な協力型マルチプレイヤーゲームの開発における 8 つの要素:『Breakwaters』の場合

6

小規模な協力型マルチプレイヤーゲームの開発における 8 つの要素 | Unity Blog

この記事では、マルチプレイヤーゲーム開発において考慮すべき8つの要素と、Soaring Pixels Games社の近日発売予定のインディーゲームである「Breakwaters」においてそれらの要素をどう適用したかについて解説しています。

また小規模な協力型ゲームにおいて利用可能なUnity製品としてNetcode for GameObjectsとRelay、Lobbyについてそれぞれ紹介しています。

DLSS が『Naraka: Bladepoint』の美しい世界に与えた影響

7

DLSS が『Naraka: Bladepoint』の美しい世界に与えた影響 | Unity Blog

24 Entertainment 社が開発するバトルロワイヤルゲーム『Naraka: Bladepoint』での、NVIDIA社のDeep Learning Super Sampling(DLSS)の導入事例について紹介しています。

ポストプロセッシング前までを低解像度で描画してDLSSを用いて高解像度化することでピクセルシェーダーなどの計算のコストを抑えることで、フレームレートを落とすことなく4K解像度を実現しているそうです。また、ネイティブの4Kのレンダリング結果と比べてほぼ見分けのつかないディティールを達成しています。

「Naraka: Bladepoint」でのDLSSの入力やジッターオフセット、モーションベクターの算出方法や実際のレンダリングパイプライン、ミップマップの利用、カメラキャッシュについて紹介しています。

また、Unity 2021.2でのDLSSでの利用方法についてもふれています。

ゲーム開発を最適化する9つの方法

4

ゲーム開発を最適化する9つの方法 | Unity for Pro

Unityのサポートエンジニアチームによる、ゲーム開発を最適化する方法を下記の9つの観点から紹介しています。

  • 計画
  • 開発とワークフロー
  • プロファイリング
  • アセット
  • プログラミングとコードアーキテクチャ
  • 物理演算
  • アニメーション
  • GPUパフォーマンス
  • UI

ゲームを台無しにするミスを避けるための5つのポイント

8

ゲームを台無しにするミスを避けるための5つのポイント | Unity for Pro

ゲーム開発において起こりがちな、回避可能なミスを5項目紹介し、それを回避するための方法について紹介しています。

  • 不適切なプランニング
  • 正しいプラットフォームをターゲットとしていない
  • 社内のリソースを無駄にしており、かつ複雑なワークフローを使用している
  • 不十分なプロファイリング
  • オーバーエンジニアリング

Articles

Unity Androidのネイティブプラグイン(C++)でOpenGLのテクスチャデータをNativeArrayにコピーする

Unity Androidのネイティブプラグイン(C++)でOpenGLのテクスチャデータをNativeArrayにコピーする - e.blog

Unityの提供する低レベルネイティブプラグインインターフェイスを介して、レンダーテクスチャをAndroidネイティブプラグイン側でOpenGLのテクスチャポインタとして受け取って、ネイティブプラグインでNativeArrayとしてコピーし、それをC#から参照する方法について紹介しています。

低レベルネイティブプラグインインターフェイスによってUnityのグラフィックスに関するデータをネイティブプラグインで扱う方法や、渡されたテクスチャのポインタからデータをOpenGLのコマンドを用いてデータを読み出す方法とNativeArrayへのコピー方法について解説しています。

ZenjectからVContainerに移行する際に気をつけること

ZenjectからVContainerに移行する際に気をつけること - imog

ZenjectからVContainerに乗り換える際の基本的な流れからVContainerにない機能の紹介、アセット内のZenjectBinding利用の調べ方、シーン内の Inject 属性のついたコンポーネントの探し方について説明しています。

ScriptableRenderPipeline(SRP)でシャドウマップを自作する ~ディレクショナルライト編~

9

ScriptableRenderPipeline(SRP)でシャドウマップを自作する ~ディレクショナルライト編~ - Qiita

独自のScriptableRenderPipeline(SRP)を用いてシャドウマップを自作する方法を紹介しています。

記事はシリーズ形式となっていて、独自のSRP内でUnityのディレクショナルライトを取得して、その情報を元にシャドウマップによって影を描画する方法について解説しています。前回の記事は下記リンクとなっています。

ScriptableRenderPipeline(SRP)でシャドウマップを自作する ~準備編~ - Qiita

Imitation Learning for 2D platformer with Unity ML-Agents

10

Imitation Learning for 2D platformer with Unity ML-Agents - Pav Creations

ML-Agentsを用いて2DプラットフォームのゲームImitation Learning(模倣学習)を行って、AIにシンプルなゲームの攻略方法を学習させる方法について紹介しています。

Imitation Learningのコンセプトから、AIを訓練させるための環境の構築、ML-AgentsにおけるAgentの実装方法、Imitation Learningのためのデモの記録方法とハイパーパラメータについての説明、トレーニングの実行方法について解説しています。

Niantic Lightship ARDK

Niantic Lightship

Niantic社が11/9に、AR向けのSDKである「Niantic Lightship ARDK」の提供を開始しました。

下記記事では、サンプルプロジェクトの動かし方や、ARDKにおける注意点についてそれぞれ紹介されています。

Lightship ARDK のサンプルプロジェクトを動かしてみる - Qiita

Niantic Lightship ARDK の注意点ピックアップ - Qiita

入力を記録してリプレイできるInputEventTraceの使い方【InputSystem】

【Unity】入力を記録してリプレイできるInputEventTraceの使い方【InputSystem】 - Qiita

Unityの新しいInputSystemのInputEventTraceを用いてユーザー入力を記録しておき、記録された情報を再生する方法について紹介しています。

InputEventTrace の生成から入力の記録方法、 ReplayController を用いた記録情報の再生方法、記録情報をファイル書き込み・読み込みする方法についてそれぞれ解説しています。

独自拡張子のファイルをScripted ImporterでアセットにしてRiderで拡張子を紐付けて編集するまでの流れ

11

【Unity】独自拡張子のファイルをScripted ImporterでアセットにしてRiderで拡張子を紐付けて編集するまでの流れ - LIGHT11

ScriptedImporter を用いて、Unityのサポートしない拡張子をUnityアセットとしてインポートする方法と、独自拡張子のファイルをUnity上で開いたときのエディタをRiderとして紐付ける方法について紹介しています。

Netcode for GameObjects (NGO) 1.0.0-pre.2 リリースノート

12

Netcode for GameObjects (NGO) 1.0.0-pre.2 リリースノート - デニッキ!

Netcode for GameObject 1.0.0-pre.2 のリリースノートを、日本語に翻訳して提供されています。

Decals and Stickers in Unity Shader Graph and URP

13

Decals and Stickers in Unity Shader Graph and URP

Universal Render Pipeline(URP)とShader Graphを用いてデカールを実装し、オブジェクトにテクスチャを貼り付ける方法を紹介しています。

デカールの理論とShader Graphでデカールを実装する方法についてスクリーンショット付きで解説しています。

URPのParticleシェーダでFlip-Book Blendingを使う

【Unity】URPのParticleシェーダでFlip-Book Blendingを使う - LIGHT11

この記事では、URPのパーティクルシェーダーで利用できるFlip-Book Blendingの利用方法について解説しています。

Flip-Book Blendingの説明から基本的な利用方法とブレンド方法、GPUインスタンシングの適用方法についてそれぞれ説明しています。

Varjo XR-3を使ってハンドトラッキングを試してみる(MRTK編)

14

Varjo XR-3を使ってハンドトラッキングを試してみる(MRTK編) - Synamon’s Engineer blog

Varjo XR-3でのハンドトラッキングを、Ultraleap SDKと Microsoft Mixed Reality Toolkit(MRTK)を用いて行う方法について紹介しています。

それぞれのSDKの導入方法から、ハンドトラッキングのための設定方法についてそれぞれ解説しています。

GoogleDrive上の指定のフォルダ内のファイルをダウンロードする

[Unity]GoogleDrive上の指定のフォルダ内のファイルをダウンロードする

Elringus/UnityGoogleDrive というライブラリを用いてUnity上でGoogleDriveを利用する方法について、Google Drive APIの設定方法から、Unityで認証情報を読み取る方法、スクリプト例として「指定フォルダ内のファイル一覧の取得」と「ファイルのダウンロード」をそれぞれ解説しています。

UnityHubをbetaにアップデートする方法

UnityHubをbetaにアップデートする方法 - Qiita

Unity Hubは標準で正式版のリリースしかインストールできませんが、設定を変更してベータバージョンをインストール方法と、任意バージョンのUnity Hubをインストールする方法について紹介しています。

Tweet

しばらく更新が停止していた UnityCsReference の更新が再開し、2022.1.0.a13までのバージョンがアップロードされました。