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
複数のソースをbake-buffer(レンダーテクスチャ)に書き出して描画するライブラリ。
その際ソースに対してマテリアルやメッシュ更新、エフェクトを適用できる。
BurstLinq
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で軽量テキスト描画
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の複数アニメーションの動的合成を、レンダラーを複数に分割することで実現する方法について紹介しています。
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の活用事例について紹介しています。
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(自分が)入門
UnityのILPostProcessor
とMono.Cecilを用いて、UnityのC#コンパイル時のメソッドの書き換えを実現する方法を紹介しています。
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 というエラーが出たときの対処法
ComputeShaderで「Draw indirect argument buffer too small. Must be at least XX bytes」というエラーが出た際の対処方法を紹介しています。