Unity Weekly 151

Unity Officials

Updated 2022 LTS Best Practice Guides for optimizing games

Updated 2022 LTS Best Practice Guides for optimizing games | Unity Blog

Unity 2022 LTS向けのコンソール/PC向けのモバイル向けのパフォーマンス最適化をまとめたebookのリリースされました

この記事では、そのebookの概要を紹介しています。

Articles

Ultraviolet Lights & Invisible Ink

Ultraviolet Lights & Invisible Ink | Cyanilux

隠れたデカールテクスチャを明らかにするUVライトや特殊なレンズなどのエフェクトの実装について紹介しています。

ライトベイクの限りある表現で見た目を向上させるには?

【Unity】ライトベイクの限りある表現で見た目を向上させるには? – 株式会社ロジカルビート

リアルタイムライトとライトベイクの使い分けからライティングのクオリティを向上させるための手法をいくつか紹介しています。

生成AIを使ってUnityのカメラアプリを作ってみた

生成AIを使ってUnityのカメラアプリを作ってみた - Activ8 Tech Blog

OpenAIのgpt-4-vision-previewとDALL-E3を用いて、カメラ入力からプロンプトを生成し、生成したプロンプトから画像を生成するようなカメラアプリの実装を紹介しています。

Intro to Shader Graph in Unity 2022 (Part 2 - Textures & UVs)

Intro to Shader Graph in Unity 2022 (Part 2 - Textures & UVs)

Shader Graphでのテクスチャの扱いとUVマッピングについて紹介しています。

ホロライブアプリのアーキテクチャ その2 ~新プロジェクト立ち上げ編~

ホロライブアプリのアーキテクチャ その2 ~新プロジェクト立ち上げ編~ #C# - Qiita

カバー株式会社で開発するホロライブアプリのアーキテクチャーの刷新についての概要と、そこで導入したZenjectやクリーンアーキテクチャについて紹介しています。

Repositories

CompositeCanvasRenderer

mob-sakai/CompositeCanvasRenderer: CompositeCanvasRenderer bakes multiple source graphics into a bake-buffer (RenderTexture) and renders it. Additional material modification, mesh modification, and baking effects are supported! Let's enjoy the effects that were difficult to implement with UI shaders, such as blur, soft outline, and soft shadow!

複数のソースをbake-buffer(レンダーテクスチャ)に書き出して描画するライブラリ。

その際ソースに対してマテリアルやメッシュ更新、エフェクトを適用できる。

BurstLinq

AnnulusGames/BurstLinq: Extremely fast LINQ aggregation operations implementation optimized by Burst Compiler

UnityのBurst Compilerを用いてLINQの集約操作を高速化するライブラリ。

Advent Calendar 2023

Unityで3D化技術を駆使した2Dイラストのライティング検証

Unityで3D化技術を駆使した2Dイラストのライティング検証

2DイラストをPIFuHDを用いて3D化して、3Dから得た法線を用いて2Dイラストをライティングする方法について解説しています。

Unityの「Split Application Binary」を用いて、GooglePlay Storeで150MBより大きいアプリケーションを配信する

Unityの「Split Application Binary」を用いて、GooglePlay Storeで150MBより大きいアプリケーションを配信する | Yucchiy's Note

「Split Application Binary」という設定によってAAB分割を行い、特別な実装を行うことなく150MB超えのアプリをGooglePlay Store上で配信する方法と、その仕組みについて解説しています。

UnityのPlay Asset DeliveryをtargetSdk34に対応させる

UnityのPlay Asset DeliveryをtargetSdk34に対応させる

Unityで、Androidのtarget SDKのバージョン34に引き上げた上でPlay Asset Deliveryを利用すると発生する不具合とその対処方法について紹介しています。

シャドウマップを自作して、キャラクターの影をキャラクターが受けないようにする

【URP14】シャドウマップを自作して、キャラクターの影をキャラクターが受けないようにする

キャラクター上にキャラクターの影が描画されないようにする影の描画を、URP14で独自のシャドウマップ描画のレンダーパスを実装することで実現する方法を解説しています。

unsafeコードを書いてみよう

【C#】unsafeコードを書いてみよう - Annulus Games

unsafeやUnsafeクラスの使い方について解説しています。

トップビュー向けの自由形状な地形を作るテクニック

[Unity]トップビュー向けの自由形状な地形を作るテクニック #Unity - Qiita

2D Sprite ShapeのSprite Shapeで表現される地形をもとに、Shapeの膨張とSprite Shapeに複数レイヤーを重ねることでよりリッチな地形を表現するためのエディター拡張を紹介しています。

ランタイムでTexture2DをASTCテクスチャに圧縮しロードする

ランタイムでTexture2DをASTCテクスチャに圧縮しロードする #C# - Qiita

ランタイムで、Texture2Dの保持するテクスチャデータをASTCに圧縮してロードする方法を紹介しています。

FontEngineで軽量テキスト描画

【Unity】FontEngineで軽量テキスト描画

TextMesh ProやUI Toolkitがバックエンドで利用する文字描画エンジンFontEngineについてその基本的な使い方や用途を紹介しています。

Unity 2023.1 から入った Android Project Configuration Managerについて理解する

Unity 2023.1 から入った Android Project Configuration Managerについて理解する | Yucchiy's Note

Unity 2023.1から追加されたAndroid Project Configuration Managerについて、その機能の概要から利用方法、既存機能との関係や移行方法を解説しています。

お手軽メモリ改ざんチート対策 任意のstructをXORするジェネリック

【Unity C#】お手軽メモリ改ざんチート対策 任意のstructをXORするジェネリック #C# - Qiita

任意の構造体をXORをかけて保持するチート対策のための型の実装について解説しています。

RectTransformの基礎

RectTransformの基礎 #Unity - Qiita

UIを制作する際に重要なRectTransformの各種フィールドの挙動について解説しています。

ゲームアプリ「イロまぜインク店」の開発振り返り&使用アセット紹介

ゲームアプリ「イロまぜインク店」の開発振り返り&使用アセット紹介 #Unity - Qiita

この記事の著者の開発する「イロまぜインク店」の開発の振り返りや役立ったアセットを紹介しています。

UnityのProjectWindowに表示履歴機能を付けるエディタ拡張

UnityのProjectWindowに表示履歴機能を付けるエディタ拡張

ProjectWindow上に閲覧履歴をたどるエディター拡張を実装する方法を解説しています。

Taskを使って、絶対バグる連打・同時タップの苦しみから解放されよう

Taskを使って、絶対バグる連打・同時タップの苦しみから解放されよう #C# - Qiita

ボタンを押したときの非同期処理が終わるまで、ボタンの再呼び出しを停止するようなボタンの実装について解説しています。

UnityからiOS/Android端末の音量設定を操作する方法

UnityからiOS/Android端末の音量設定を操作する方法 #Unity - Qiita

iOS/Androidが用意する音量設定のAPIを呼び出して、Unity上で音量を取得・設定する方法を紹介しています。

フォト画像を端末に保存する機能の実装上のポイント

フォト画像を端末に保存する機能の実装上のポイント #C# - Qiita

Unity Native Gallery Pluginを用いた、iOS/Androidごとのアルバムに画像を保存する方法を紹介しています。

3Dアバターファイルフォーマット "VRM" の構造をのぞいてみよう

【VRM, glTF】3Dアバターファイルフォーマット "VRM" の構造をのぞいてみよう - すぎしーのXRと3DCG

3Dアバターファイルフォーマットとして利用されるVRMのデータ構造について、実データーを眺めつつ解説しています。

2023年末版のFBXエクスポート設定

2023年末版のFBXエクスポート設定 #Unity - Qiita

Blenderで制作したモデルをUnityに取り込む際のBlender側のエクスポート設定とUnity側のインポート設定についてそれぞれ考察しています。

複数の Spine アニメーションを動的に合成する

複数の Spine アニメーションを動的に合成する

Spineの複数アニメーションの動的合成を、レンダラーを複数に分割することで実現する方法について紹介しています。

Unityからスプレッドシートに直接アクセスしてデータ調整を高速化できた話

Unityからスプレッドシートに直接アクセスしてデータ調整を高速化できた話

UnityからGoogleスプレッドシートのAPIを認証付きでアクセスしてデーターを取得する方法について解説しています。

RiderでSource Generatorを使用したツールを作成するフローを紹介

RiderでSource Generatorを使用したツールを作成するフローを紹介 #C# - Qiita

Rider 2023.2から導入されたSource Generatorテンプレートをベースに、特定の属性がついたメンバー変数にゲッターを生成するSource Generatorのと単体テストの実装を紹介しています。

Source Generator の使いみち

【Unity】Source Generator の使いみち

Unity上でのSource Generatorの活用事例について紹介しています。

Poly Spatialの始め方 0.6.3版

[Vision Pro] Poly Spatialの始め方 0.6.3版 [Unity] #Unity - Qiita

UnityでVision Pro向けのアプリケーションを開発する際の情報をまとめています。

Unityでプレイアブル広告を作る方法【Luna Playable Plugin】

Unityでプレイアブル広告を作る方法【Luna Playable Plugin】 #Unity - Qiita

プレイアブル広告を作ることのできるLuna社の提供するPlayable Pluginについて、その概要からデプロイ可能なプラットフォーム、プレイアブルの制約やSDKの各種制限、開発の流れについてそれぞれ解説しています。

Unityにテクスチャなどインポートする時に最低限の設定を自動化する

Unityにテクスチャなどインポートする時に最低限の設定を自動化する #Unity - Qiita

Unityでテクスチャやオーディオを読み込んだ時に、特定のディレクトリごとにインポート設定を自動化するエディター拡張の実装を紹介しています。

HLSLでもオブジェクト指向プログラミングが出来るですよ!

HLSLでもオブジェクト指向プログラミングが出来るですよ! #Unity - Qiita

HLSLで利用できるクラスの継承やインターフェイスの実装とその活用について紹介しています。

HLSLでデリゲート(コールバック)を実現する

HLSLでデリゲート(コールバック)を実現する #Unity - Qiita

HLSLでデリゲートを実装する方法について紹介しています。

Cinemachine と Input System で作るお手軽 TPS カメラ

【Unity】Cinemachine と Input System で作るお手軽 TPS カメラ #Unity - Qiita

TPSカメラを実装するためのCinemachineのVirtual Cameraの各種設定や入力を受け取るためのInput Systemの設定について紹介しています。

FileStreamの正体🤔(UnityAndroidの場合)

FileStreamの正体🤔(UnityAndroidの場合) #Android - Qiita

Androidプラットフォーム下でのFileStreamの実装について、Unityのmonoフォークの実装を追いつつ紹介しています。

Jenkins+PythonでUnityの自動ビルド&自動デプロイ

Jenkins+PythonでUnityの自動ビルド&自動デプロイ

Unityで制作したアプリをJenkinsを用いて自動ビルドする方法を紹介しています。

Unityをコマンドライン経由でビルドするためのエディター拡張から、エディターをJenkins上で叩くためのPythonスクリプト、成果物をGoogle Drive上にアップロードするためのPythonスクリプトやJenkinsの設定方法についてそれぞれ解説しています。

TDDでゲームを作ってみる REALITY Advent Calendar 2023

TDDでゲームを作ってみる REALITY Advent Calendar 2023|REALITY

テスト駆動にゲームを制作する方法について紹介しています。

C#のMono.Cecil(自分が)入門

C#のMono.Cecil(自分が)入門

UnityのILPostProcessorとMono.Cecilを用いて、UnityのC#コンパイル時のメソッドの書き換えを実現する方法を紹介しています。

ILPostProcessorによる定数書き換え入門

ILPostProcessorによる定数書き換え入門

ILPostProcessor とMono.Cecilを用いて、コード上に定義されている定数を書き換える方法について紹介しています。

UnityのNetcode for GameObjectsでマルチプレイヤーゲームを開発したときの話

UnityのNetcode for GameObjectsでマルチプレイヤーゲームを開発したときの話

UnityのNetcode for GameObjects(NGO)を用いたマルチプレイヤーゲームの開発について、NGOの概要や使い方、デバッグ時の注意点、開発効率化のための独自のパッチになどをそれぞれ紹介しています。

TypeCacheを用いて"特定の属性でマークされている型やメソッド" や "特定のクラスやインターフェイスから派生する型"に素早くアクセスする

【Unity】TypeCacheを用いて"特定の属性でマークされている型やメソッド" や "特定のクラスやインターフェイスから派生する型"に素早くアクセスする - はなちるのマイノート

Unityの TypeCache から特定の属性がついたメンバーや、特定のインターフェイスや基底クラスから派生する型へアクセスする方法を紹介しています。

UI Toolkitの公式ドキュメントのGetting Startedをやったメモ

【Unity】UI Toolkitの公式ドキュメントのGetting Startedをやったメモ - はなちるのマイノート

UI Toolkitの公式ドキュメントを参考に、簡単なエディターウィンドウの実装を紹介しています。

Riderでスマートにコード整理!File Layoutでクラスメンバーを順序正しく

Riderでスマートにコード整理!File Layoutでクラスメンバーを順序正しく #Unity - Qiita

RiderのFile Layout機能を用いて、フォーマット時のメンバーの並び順を調整する方法を紹介しています。

Unityで使えるメモリ系の型(NativeArray/List/Memory/Span/etc.)

Unityで使えるメモリ系の型(NativeArray/List/Memory/Span/etc.) #C# - Qiita

Unityで使える型の内、連続したメモリ領域を扱う配列やSpan<T>Memory<T>MemoryManager<T>NativeArray<T>などの特徴や使い方、型の相互変換の方法についてそれぞれ紹介しています。

Unityで口パクをつけられるプラグイン「uLipSync」のご紹介

Unityで口パクをつけられるプラグイン「uLipSync」のご紹介

uLipSyncのノベルゲームでの活用事例を紹介しています。

Bakeryでライトベイクをしてみよう【Bakeryでするライトベイク入門編】

Bakeryでライトベイクをしてみよう【Bakeryでするライトベイク入門編】

GPU LightmaperアセットBakeryを用いたライトベイクについて紹介しています。

UnityのTimelineのカスタムクリップの出入りに合わせて気軽に処理をするはずだったが落とし穴があった件

UnityのTimelineのカスタムクリップの出入りに合わせて気軽に処理をするはずだったが落とし穴があった件|Colorful Palette

MixerBehaviour を用いて、カスタムクリップの開始と終了を検知する方法を紹介しています。

PICO4で動作しないUnityの機能とその対応策の紹介

PICO4で動作しないUnityの機能とその対応策の紹介 #Unity - Qiita

PICO4で実験的に動作しなかったUnityでのおもにグラフィックス面での機能とその対策について紹介しています。

Enumを継承したい!と思ったときに僕らが求めているもの

Enumを継承したい!と思ったときに僕らが求めているもの #C# - Qiita

同質なEnumをまとめて扱うような構造体の実装と、この構造体を用いたメソッドの共通化について紹介しています。

ルックアップテーブルの効果

【小ネタ】ルックアップテーブルの効果 #Unity - Qiita

ルックアップテーブルのC#スクリプト上での活用とパフォーマンスについて紹介しています。

Draw indirect argument buffer too small. Must be at least XX bytes というエラーが出たときの対処法

【Unity】Draw indirect argument buffer too small. Must be at least XX bytes というエラーが出たときの対処法【ConputeShader】 #C# - Qiita

ComputeShaderで「Draw indirect argument buffer too small. Must be at least XX bytes」というエラーが出た際の対処方法を紹介しています。