Welcome, SyncSketch! - Unity Weekly #042
12/1からAdvent Calendar 2021が始まりました。こちらの記事の一覧はAdvent Calendar 2021特集 その1 - Unity Weekly #043にまとめていますので、興味ありましたらこちらもご一読ください。
Official
ようこそ、SyncSketch!
Unityがリアルタイムコラボレーションツールの開発元である「SyncSketch」を買収しました。
SyncSketchを用いると、URLをシェアするだけでコラボレーションできるため、アーティスト間のコラボレーションを容易にします。
Cinemachine 2.6 のもたらす精密な制御、改善されたワークフロー、それらが実現するカメラワーク
Cinemachine 2.6 のもたらす精密な制御、改善されたワークフロー、それらが実現するカメラワーク | Unity Blog
バーチャルカメラオペレーターライブラリであるCinemachineのアップデートについて取り上げています。
Cinemachine は2.5で、社内QAやユーザーの検証によって「検証済み」パッケージとなりました。
Cinemachine 2.6で追加された機能と改善点、新しく追加されたサンプルについてそれぞれ紹介しています。
2.6では、インパルス伝播速度という機能が追加されました。Impulse Souce(外乱を発生させるソース)とImpulse Listener(外乱の影響を受ける対象)に対して速度の項目が追加されることで、タイミングを下記のように調整でき、表現のリアリティを向上させられます。
https://blog-api.unity.com/sites/default/files/2020/05/Propagation-speed-1.mp4
改善項目として、Lookaheadと入力システムのサポートが向上しました。Lookaheadはよりスムーズに、効率的に動作するように改良されました。
入力システムとしてCinemachine.AxisState.IInputProvider
が新しく用意されました。これまでの CinemachineCore.GetInputAxis(string name)
はグローバルのデリゲートで、また呼び出しが文字列ベースでしたが、新しい入力システムはバーチャルカメラごとにそれぞれ個別のプロバイダーを持つことができるようになりました。これにより特定のプレイヤーに特定の設定をマッピングすることが容易になります。
また、新しい Input System がインストールされていれば、 CinemachineInputProvider
をバーチャルカメラに追加するだけでマッピングが可能です。
新しいサンプルとして、「三人称エイミングリグ」と「Dual-targetリグ」、「カメラを引きつける磁石」が追加されました。それぞれ、「3rd Person Follow Behaviour」と「Cinemachine 3rd Person Aim」コンポーネント、複数コンポーネントを連携させた複雑な動作の実現、CinemachineTargetGroupコンポーネントの使い方についての実例を紹介しています。
新しい LookDev Studio プロトタイプを今すぐお試しください
新しい LookDev Studio プロトタイプを今すぐお試しください | Unity Blog
Unityのアーティスト向けのプロトタイプツールである「LookDev Studio」の利用方法と、新しいリリースである 0.2.0 の概要、 これまでのリリースである0.1.0の機能ハイライトについて紹介しています。
0.2.0のアップデートとしてカスタマイズ関連のアップデートと機能改善が行われましたが、大きなトピックスとして、High Definition Render Pipeline(HDRP)に加えて Universal Render Pipeline(URP)バージョンのプロジェクトが利用になりました。
ArtEngine の Chrome Ball ノードによるフォトメトリックステレオを使って、リアルなマテリアルを作る
ArtEngine の Chrome Ball ノードによるフォトメトリックステレオを使って、リアルなマテリアルを作る | Unity Blog
ArtEngineに新しく実装された Chrome Ballノードについて紹介しています。 Chrome Ballノードは、クロムボール(光を反射する球体)を配置して撮影した複数枚の写真を解析して、詳細なアルベドマップと法線マップを自動生成します。
この記事では、クロムボールを用いた撮影の方法とその仕組み、ArtEngineでの処理についてそれぞれ解説しています。
より良いチームワークを作り上げる、KO_OP のバージョン管理活用法
より良いチームワークを作り上げる、KO_OP のバージョン管理活用法 | Unity Blog
カナダのスタジオのKO_OPによるPlustic SCMの導入事例について紹介しています。
Plastic SCM導入前のスタジオにおけるアーティストとエンジニア間のコラボレーションの課題と、Plastic SCM導入時のアーティストチームの様子、導入後の様子やほかツールとの連携・統合のためのDevOpsツールの開発についてそれぞれふれています。
MARS 1.4、公開準備完了!
AR/MR 開発のUnity拡張機能である Unity MARS の 1.4がリリースされました。この記事では、1.4に実装されている機能の紹介と、MARSを学習する上でのリソースが紹介されています。
また、期間限定で記事中のバーチャーコードを用いてライセンスを50%オフで購入できます。
Articles
NOVA Shader: Uber shader for Particle System
Universal Render Pipeline(URP)対応の多機能(Uber)パーティクルシェーダーがリリースされました。
フローマップ、Flip-Book(連番テクスチャアニメーション)、ディゾルブ、フェード、回転、アニメーション可能なTintマップ、エミッション、ディストーションなど、VFXでよく使われる汎用的な機能をまとめたシェーダーで、現在Unlitに対応しています。
ShaderGraphコンパイル後のアセンブリコードを読んでみる
ShaderGraphコンパイル後のアセンブリコードを読んでみる
UnityのShaderGraphがコンパイル後に実際に吐くアセンブリコード(d3d asm)を評価して、ShaderGraphの計算負荷について調査しています。
ShaderGraphからアセンブリコードが生成されるまでの仕組みからコンパイルされたコードの確認方法、ShaderGraphとShaderLabの生成するコードについてPassとFragment(Pixel)シェーダー、Vertexシェーダーを比較しています。
また、生成されるアセンブリコード単位でのShaderGraphのノードを最適化の方法や、ShaderGraphのノードの内、計算負荷が重たいノードについても言及しています。
Square Grid
この記事はCatlike CodingのProcedural Meshesシリーズの2記事目で、Advanced Mesh APIとBrust jobを用いてプロシージャルなメッシュ生成を実装するための方法と、正方形グリッドを生成する方法について紹介しています。
uOSC v2 をリリースしました
この記事の著者が開発する hecomi/uOSC の v2の紹介記事です。
パッケージのアップデートの紹介からインストール方法、基本的な利用方法についての紹介、v2に入った機能のTipsについてそれぞれ解説しています。
Mastering Tessellation Shaders and Their Many Uses in Unity
Mastering Tessellation Shaders and Their Many Uses in Unity | by NedMakesGames | Nov, 2021 | Medium
この記事ではUnityでテッセレーションシェーダーを用いたテッセレーションの実装方法について、その原理からテッセレーションシェーダーおよびドメインシェーダーの記述方法について紹介しています。
また、カリングや動的なテッセレーション係数の調整によるテッセレーションの最適化や、メッシュのジオメトリをなめらかにする手法としてフォンテッセレーションの実装の紹介、ハイトマップを用いたテッセレーションについてそれぞれ解説しています。
Making an After-Image Mesh effect(Updated for URP)
Making an After-Image Mesh effect(Updated for URP) | Minions Art on Patreon
キャラクターの残像メッシュ効果をURPで実装する方法について紹介しています。
残像のためのメッシュは、アニメーションされたものは SkinnedMeshRenderer.BakeMesh を、アニメーションしないメッシュは MeshFilter.sharedMesh を 取得し、 CombilneInstance を用いてメッシュを結合し描画しています。
また、オブジェクトプールを利用することで残像を生成するごとにメッシュを生成・破棄しないようにしています。
Addressablesのビルド時間の調査
【Unity】Addressables のビルドでどこに時間がかかっているのか調べる方法 - コガネブログ
【Unity】Addressables でアセットバンドルを圧縮するかどうかでビルド時間が変わるか - コガネブログ
【Unity】Addressables でアセットを変更していないのにビルドに時間がかかる場合 - コガネブログ
【Unity】Addressables で依存関係が増えるほどビルド時間がどのくらい長くなるか - コガネブログ
これらの記事では、Addressablesのビルド時間がどのような要因でどのように増えるのかについて、その調査方法から依存関係を追加することでどれぐらいビルド時間が長くなるか、アセットバンドルの圧縮設定との関係について検証しています。
また、カタログの生成時間についても言及しています。
シーンの初期設定をカスタマイズ出来るテンプレート機能 Scene Templates
シーンの初期設定をカスタマイズ出来るテンプレート機能 Scene Templates【Unity】 - (:3[kanのメモ帳]
Unity 2020.2から利用できる シーンを新規作成時のシーン情報を設定できる Scene Templates について基本的な使い方について紹介しています。
【Unity】Localizationパッケージ入門 - アセットをサクッとローカライズする
【Unity】Localizationパッケージ入門 - アセットをサクッとローカライズする - LIGHT11
Unityの Localizationパッケージについてそのセットアップ方法と、テクスチャと静的・動的な文字列のローカライズ、ローカライズで利用されるアセット(テクスチャ)とAddressablesとの関係についてそれぞれ紹介しています。
Niantic Lightship ARDKの機能調査
Niantic Lightship ARDKの機能調査 - Qiita
Niantic Lightship ARDKについて、MappingやUnderstanding、Sharingなどの機能概要についての紹介しています。また、調査時にハマったことや重要な点についても触れています。
InputSystem:MouseのSensitivityはどこ・・・?
【Unity】InputSystem:MouseのSensitivityはどこ・・・? - Qiita
新しいInput Systemで、旧Input Systemの Sensitivity(感度)設定の代替をProcessorsという機能を用いて実装する方法について紹介しています。
【Unity】オブジェクトを複製したときにスペース「 (1)」などがつくのを変更する
【Unity】オブジェクトを複製したときにスペース「 (1)」などがつくのを変更する - Qiita
ヒエラルキー上でオブジェクトをコピーしたときのサフィックスの設定を変更するための方法について解説しています。
Scriptable Render Pipline入門
Scriptable Render Pipline入門 - Qiita
Scriptable Render Pipeline(SRP)を作成して、Skyboxの描画からカメラ設定の反映、カリング、オブジェクトの描画、半透明オブジェクトの描画タイミングの制御までの実装方法について紹介しています。