It begins with light - Unity Weekly #040
Unity Official
それは光から始まる:HD レンダーパイプラインの決定版ガイド
それは光から始まる:HD レンダーパイプラインの決定版ガイド | Unity Blog
High Definition Render Pipeline(HDRP)の包括的なガイドラインがebookで公開されました。
これは、Unity のテクニカルアートマネージャーであるPierre Yves Donzallaz 氏がUnite Now で講演した「Achieving high-fidelity graphics with HDRP」を元にしたガイドラインです。
このebookでは下記のようなコンテンツを扱っています。(箇条書きについてはブログより引用)
- HDRP のコンセプト、設定、カメラ、Volume フレームワーク
- 露出、モード、カメラの物理的な設定、計算式の理解
- 光の単位、種類、特性、IES プロファイル
- 物理ベースのスカイシステムで自然な空のある景色を作る
- シャドウ、反射、リアルタイムライティングのエフェクトを洗練させ、シーンにさらなる深みを与える
- レンダリングデバッガーについて
- レイトレーシングとポストプロセッシングによる画像の品質向上
ebookはこちらからダウンロードできます。
Unity 2021.2 のシェーダーグラフの新機能
Unity 2021.2 のシェーダーグラフの新機能 | Unity Blog
2021.2で追加されたシェーダーグラフの新機能について、主に「URP のサーフェスオプション」、「カスタムインターポレーター」、「Blackboard のカテゴリ」について紹介しています**。**
「Allow Material Override」というオプションにチェックを入れると、Universal Render Pipeline(UPR)のUnlitおよびLitシェーダーグラフのサーフェイスオプションのプロパティを、マテリアルインスペクター上に公開でき、またその値をマテリアルごとに設定できるようになりました。これによりシェーダーグラフの基本的な機能を共有しつつ、バリエーションを作成できるようになります。
カスタムインターポレーターでは、頂点データであるか頂点ステージで行われたカスタムされた計算の結果であるかに関わりなく、頂点ステージからフラグメントステージに情報を渡すことができるようになり、シェーダーのパフォーマンスを向上させられます。デモシーンでのUVタイリングの計算をピクセルシェーダから頂点ステージへ移行させることで、約33%の高速化を実現できたそうです。
またBlackboard にカテゴリが用意され、プロパティをグループ化することができるようになり、より複雑なシェーダーグラフについての作業効率の向上が見込めます。
また、これらの機能を確認するためのデモパッケージとして、Viking Village URPが公開されています。
アートと魔法が出会う時:『Lost in Random』の幻想的な世界を作り上げる
アートと魔法が出会う時:『Lost in Random』の幻想的な世界を作り上げる | Unity Blog
Zoink が開発し、Electronic Arts がパブリッシャーを務める『Lost in Random』の制作についてのインタビューです。
アセット制作ワークフローにおいて基本パーツの組み合わせでアセットを制作することで、メモリ負荷などを軽減した点、プロトタイプではHDRPで作り込んだ点、複数のプラットフォームへの配信を考慮するとHDRPではパフォーマンスの観点で限界があるため、最終的にURPに載せ替えた点について説明しています。
また、世界観を表現するために、標準のライトバイクではパフォーマンスおよび表現力の観点では足りないため、独自のライティングを採用して、アクティブライトを絞る形でリアルタイムライティングを採用した点、などについてそれぞれ解説しています。
RPGチュートリアルを徹底解説
RPGチュートリアルを徹底解説|Unity Japan(ユニティ・テクノロジーズ・ジャパン)|note
Unity公式が提供するRPGチュートリアル「Creator Kit: RPG」の、ユニティ・テクノロジーズ・ジャパンによる解説動画です。
「Creator Kit: RPG」についての紹介と、このチュートリアルパッケージのマップを自分で拡張する方法や、アイテムを実装しながらUnity上でレベルデザインする方法について解説しています。
都市のデジタルツインを使い、パリを再構築する
都市のデジタルツインを使い、パリを再構築する | Unity Blog
ビジュアライゼーションソリューションを提供するVectuel社が、パリ広域都市圏 1,000km² に存在する200万件以上におよぶ建造物をデジタルツインとして再現している現状について解説しています。
2021 年、クロスプラットフォームのマルチプレイヤーゲームの需要が高まっている理由 | Unity Blog
ハリス・ポール社がアメリカの成人 2,000 人以上を対象にオンラインで実施した調査から、クロスプラットフォームのマルチモバイルゲームの需要が高まっている点と、Unityでマルチゲームを実現するためのソリューションについて紹介しています。
What's new in Unity 2022.1.0 Alpha 15
What's new in Unity 2022.1.0 Alpha 15 - Unity
現在アルファ版である 2022.1.0パッケージの、15が公開されています。
Articles
UnityEngine.Object の Null チェックまとめ
【Unity】UnityEngine.Object の Null チェックまとめ - コガネブログ
Unityでハマりがちな UnityEngine.Object
のnullチェックについて、Destroy直後や1フレーム経過後などさまざまな状況および、 ==
や ??
などの複数の比較方法で、それぞれどのような結果になるのか、全パターン検証結果つきで紹介されています。
また、結論としてハマらない nullチェックの方法についても言及しています。
AndroidのSpeechRecognizer(音声テキスト認識)を実装する
[Unity] AndroidのSpeechRecognizer(音声テキスト認識)を実装する - Qiita
Unity の ネイティブプラグインで、 AndroidのSpeechRecognizerを利用して音声認識を行い、その結果をC#側のテキストデータとして受け取る方法について解説しています。
SpeechRecognizerがメインスレッド上でしか動作しないため、 UnityPlayerActivity
を継承したネイティブプラグインの実装方法やランタイムパーミッションの要求方法、AndroidManifestの設定についてそれぞれ解説しています。
【Unity】shader_feature_localやmulti_compile_localを正しく使おうというお話
【Unity】shader_feature_localやmulti_compile_localを正しく使おうというお話 - LIGHT11
Unity 2019から利用できる shader_feature_local と multi_compile_local ディレクティブで定義できるローカルキーワードについて、グローバルキーワードとの違いや、操作できるAPIの違い、パフォーマンスの違いについて解説しています。
また、Unity2021.2からのシェーダーキーワードの個数緩和についても触れています。
Run Unity Cloud Build based on Github Commit message using Github Actions
Run Unity Cloud Build based on Github Commit message using Github Actions « Unity Coding – Unity3D
Unity Cloud Buildによるビルドを、Github Actions経由で特定のブランチにプッシュしたときに実行するためのワークフローについて紹介しています。
UniversalRPでスクリプトから画面をキャプチャする一番簡単な方法
UniversalRPでスクリプトから画面をキャプチャする一番簡単な方法 - Qiita
Universal Render Pipeline(URP)標準のCapturePassを、CameraPaptureBridge.AddCaptureAction
を用いてハンドリングし、画面をキャプチャする方法について解説しています。
Create a compass and objectives with uGUI
Create a compass and objectives with uGUI - GameDev Resources
uGUIを用いて、オープンワールドゲームによくあるコンパスUIとコンパス上に表示する目標の実装方法について解説しています。
コンパスの回転はプレイヤーの向きから算出した画像のUV値を Image.uvRect
へ渡すことで実装、目標は管理しやすいようにクラス化し、コンパスクラスに登録することでコンパスUIに反映させています。
UnityでGraphQLを使った通信を行う方法
UnityでGraphQLを使った通信を行う方法 - WonderPlanet Developers’ Blog
graphQL-client-unity というライブラリを用いてUnity上でGraphQLを利用する方法と、GraphQLへの認証方法についてそれぞれ解説しています。
Windows上でUnityとROS2を連携させる
Windows上でUnityとROS2を連携させる(3) Oculus Quest2でTurtlebot3を操作する - Qiita
Oculus Quest2のコントローラであるOculus Touchを用いて、ROS2を経由してTurtlebot3を操作する方法を紹介しています。
Oculus TouchのUnity上でのハンドリング方法から、ROS2の命令の送信、Oculus Linkとの連携、turtlebot3_bridgeを起動して実際にturtlebot3の確認する方法まで解説しています。
また、一連の記事は下記から確認できます。
Windows上でUnityとROS2を連携させる (1) 環境構築編 - Qiita
Windows上でUnityとROS2を連携させる(2) 簡易型シミュレータ作成編 - Qiita
ParticleからShaderへ値を渡す
そろそろShaderをやるパート46 ParticleからShaderへ値を渡す
Particleに、Custom Vertex Streams経由で独自に定義したデータをShaderへ渡して、その値を利用する方法について紹介しています。
GitHubのプライベートリポジトリにGitクライアントでhttpsでアクセスする際に設定すること(Unity Package Managerでプライベートリポジトリ内のパッケージを取得したい)
Unity Package ManagerでGitHubのプライベートレポジトリを指定する場合の、権限の割り振りおよびクライアントでの設定方法について解説しています。
GitHubのPersonalAccessTokenの発行と、作成したトークンを .gitconfig
で設定する方法についてそれぞれ説明しています。
Unity iOSビルド時に輸出コンプライアンス情報をinfo.plistに記載する
Unity iOSビルド時に輸出コンプライアンス情報をinfo.plistに記載する - Qiita
iOSのビルド時を IPostprocessBuildWithReport
でフックして、輸出コンプライアンス情報である ITSAppUsesNonExemptEncryption
の値を info.plist
を書き出す方法について解説しています。