Unity Weekly 100

Unity Officials

Unity 2022.2 の Splines を使って、フロー状態でより美しいパスを描き出そう

Unity 2022.2 の Splines を使って、フロー状態でより美しいパスを描き出そう | Unity Blog

Unity 2022.2から利用できるSplinesパッケージのコンテキストに基づくツール制御や内包されているコンポーネント、アーティスト向けの機能や開発者向けのAPIなどについて紹介しています。

ゲームバックエンド開発をサポートする 8 つの新機能

ゲームバックエンド開発をサポートする 8 つの新機能 | Unity Blog

Unity Gaming Services(UGS)で利用可能な機能のうち、バックエンド開発をサポートする機能を8つ紹介しています。

Experimental Surface Gradient Bump Mapping

Official - Experimental Surface Gradient Bump Mapping - Unity Forum

Shader Graphにおけるバンプマップのレイヤー化およびコンポジット化のためのフレームワーク「Surface Gradient Bump Mapping」が実験パッケージとして公開されています。

DirectX12 and Graphics Jobs Improvements in 2023.1 (Split Graphics Jobs and Editor Support)

Official - DirectX12 and Graphics Jobs Improvements in 2023.1 (Split Graphics Jobs and Editor Support) - Unity Forum

DirectX12 backendが2022.2.0a17より実験ステータスが外れた件やUnity2022から導入された新しいメモリマネジャーのパフォーマンス、Unity 2023.1から利用できるGraphics Jobについてまとめています。

Articles

MRTK3

HoloLens2向けMRTK3の開発環境と空シーンを構築する

MRTK3 - Volumetric UIについて

MRTK3 - DataBindingについて(Early Preview)

MRTK3 - Themingについて(Early Preview)

Mixed Reality Toolkit 3のPublic Previewの環境構築方法と、簡単なサンプルシーンの構築、MRTK3で利用できるVolumetric UIやEarly PreviewのDataBindingとThemingの機能についてそれぞれ紹介しています。

mocopi SDK(BVH Sender、mocopi Receiver Plugin for Unity)ことはじめ

mocopi SDK(BVH Sender、mocopi Receiver Plugin for Unity)ことはじめ - Qiita

mocopi SDKに内包されているツールのうち、BVH Senderとmocopi Receiver Plugin for Unityの使い方について紹介しています。

Creating dynamic animations programmatically with Unity coroutines

Creating dynamic animations programmatically with Unity coroutines

コルーチンを用いて、プログラムで動的なアニメーションを生成する方法について紹介しています。

Massive Cloudsで複数のMassiveCloudsコンポーネントを併存した状態で切り替えるためのコード修正

Massive Cloudsで複数のMassiveCloudsコンポーネントを併存した状態で切り替えるためのコード修正 - Qiita

スクリーンスペースにVolumetric Cloudsを描画するMassive Cloudsで、複数のMassiveCloudsコンポーネントを配置したときに、切り替えが上手く行かない不具合とその対処法について紹介しています。

MediaPipeによるAndroidスマホでのハンドトラッキング

【サンプル動作確認】MediaPipeによるAndroidスマホでのハンドトラッキング【Unity】

Googleの提供するMLソリューション「MediaPipe」を用いてAndroid実機でハンドトラッキングを行うための、各種ライブラリのインストール方法から実機での動作確認についてまとめています。

Unity Searchのクエリチートシート

【Unity】Unity Searchのクエリチートシート - LIGHT11

Unity Searchのクエリを逆引き辞典的にまとめています。

プロジェクトのあらゆるアセットを検索するUnity Search(旧Quick Search)の使い方まとめ

【Unity】プロジェクトのあらゆるアセットを検索するUnity Search(旧Quick Search)の使い方まとめ - LIGHT11

Unity Searchの基本的な利用方法についてまとめています。

複数のGameObjectの名前を一括でリネーム(追加、削除、置換、連番)するツール ObjectRenamer

複数のGameObjectの名前を一括でリネーム(追加、削除、置換、連番)するツール ObjectRenamer【Unity】【アセット】 - (:3[kanのメモ帳]

GameObjectを一括でリネームするOSS「ObjectRenamer」について紹介しています。

VRMの表情をTimelineで制御する

【Unity】VRMの表情をTimelineで制御する - Qiita

UnityのタイムラインでVRMのフェイシャル制御を行う独自トラックの実装方法について紹介しています。

Scripted Importerを使ってUnityが対応していない拡張子のファイルに対応する(テキスト暗号化も)

【Unity】Scripted Importerを使ってUnityが対応していない拡張子のファイルに対応する(テキスト暗号化も) - はなちるのマイノート

Scripted Importerを用いてUnityが対応していない拡張子のファイルを読み込む方法と、インポート時にテキストアセットを暗号化する方法について触れています。

オイラー陽解法から始める物理シミュ入門

[Unity] オイラー陽解法から始める物理シミュ入門

振り子の物理シミュレーションをオイラー陽解法で、テイラー展開によって振り子の座標を計算する方法の紹介と、展開した数式を元にプログラムを実装して動作確認まで行っています。

Unityエディタ起動時にgit config --local core.autocrlf xxxを実行

Unityエディタ起動時にgit config --local core.autocrlf xxxを実行 - Qiita

Unityエディター起動直後に任意のコマンドを実行する方法について紹介しています。

Repositories

VYaml

hadashiA/VYaml: The extra fast, low memory footprint YAML library for C#, focued on .NET and Unity.

Source Generatorベースな高速かつメモリフットプリントが少ないYAMLパーサー。

Unity Asynchronous Image Loader

Looooong/UnityAsyncImageLoader: Asynchronous Image Loader for Unity

非同期な画像ローダー。

画像読み込みからデコード、ミップマップ生成を別スレッドにオフロードすることでメインスレッドのブロックとそれによるスパイクを軽減することを目的にしている。

ProfilerModuleForShaderCompile

wotakuro/ProfilerModuleForShaderCompile

シェーダーコンパイルをProfilerで一覧する拡張モジュール。

シェーダーコンパイルと、コンパイルしたシェーダーの詳細も合わせて確認できる。

Unity WebGL Optimizer

CrazyGamesCom/unity-optimizations-package

Unityの出力するWebGLアプリケーションの、各種アセットの最適化を行うライブラリ。

Advent Calendar

12/12 〜 12/18にアドベントカレンダーに投稿された記事のうち、主にUnityに関する記事をまとめています。

Unity Cloud Buildでビルド後に独自のスクリプトを差し込む、成果物(ipa/apkなど)をAppCenterにアップロードする

Unity Cloud Buildでビルド後に独自のスクリプトを差し込む、成果物(ipa/apkなど)をAppCenterにアップロードする | Yucchiy's Note

Unity Cloud Buildのポストビルドスクリプトを用いて、ipa/apkなどの成果物をAppCenterにアップロードする方法について紹介しています。

VContainerがどのように動いているのか読む

VContainerがどのように動いているのか読む

VContainerがどのような挙動によってDIを実現しているのかについて、LifetimeScope・IInstanceProvider・EntryPointBuilderのコードを読み解きつつ解説しています。

UIシェーダのエラーチェックリスト

UIシェーダのエラーチェックリスト - Qiita

独自のUIシェーダーを書くときに、コンパイルエラーにはならないが見た目が期待通りにならないようなときのチェックシートをまとめています。

UnityでTextureに目で見えないウォーターマークを埋め込んでみる

UnityでTextureに目で見えないウォーターマークを埋め込んでみる - Qiita

Unityのテクスチャに対して、電子透かし(ウォーターマーク)を仕込むためのアルゴリズムについて紹介しています。

TextMeshProのフォントアセットでハマった話

TextMeshProのフォントアセットでハマった話【Advent Calendar 12/12】|Colorful Palette

TextMeshProでstatic設定したフォントアセットの元のフォントファイルの参照が、エディター上から参照を外しても残ってしまう問題とその原因、確実にフォントファイルの参照を外すエディター拡張について紹介しています。

クリスタルっぽいモデルを簡易実装してみる@Unity

クリスタルっぽいモデルを簡易実装してみる@Unity - Qiita

クリスタルのような見た目のシェーダーを実装する方法について紹介しています。

ちょっとだけ便利になるかもしれない拡張メソッド集

ちょっとだけ便利になるかもしれない拡張メソッド集 [Unity] - Qiita

GameObjectに対する開発に便利な拡張メソッドを紹介しています。

マルチパスのファーシェーダをURPに対応させる

【Unity】マルチパスのファーシェーダをURPに対応させる - Qiita

ScriptableRenderPassScriptableRendererFeature を用いてURPでマルチパスなファーシェーダーを実装する方法について紹介しています。

CameraDepthTextureからワイヤーフレームを計算する

[Unity]CameraDepthTextureからワイヤーフレームを計算する - Qiita

モデルのワイヤーフレームを描画するシェーダー、カメラの深度テクスチャから法線マップを計算し、そこからフィルター計算によってポリゴンの傾きの際を検出することによって描画する方法について解説しています。

Unity Timelineの拡張テク

Unity Timelineの拡張テク - Qiita

Unityのタイムライン拡張の、特にエディターUIの拡張テクニックをまとめています。

Unityの画面管理はSceneかPrefabどちらにすべきか

Unityの画面管理はSceneかPrefabどちらにすべきか - Qiita

Unityの画面管理をシーンとプレハブを用いる方法それぞれのメリット・デメリットをまとめています。

Package のコードを無理矢理書き換える方法をご紹介

Package のコードを無理矢理書き換える方法をご紹介(ただし macOS に限る)

Unity Package Managerでインストールしたパッケージ側のコードをビルド時に書き換える手法の紹介と、その手法を実現する際にハマった問題とその解決方法についてそれぞれ解説しています。

Unity Localization の設定をプロジェクトを跨いで共有する

Unity Localization の設定をプロジェクトを跨いで共有する

Unity Localizationで、StringTableへの参照である TableReference.TableCollectionNameGuid や Entryへの参照である TableEntryReference.KeyId を複数のUnityプロジェクトで共有する方法や、自動化するためのエディター拡張について紹介しています。

TextMeshProでSpriteを表示する

TextMeshProでSpriteを表示する - Qiita

TextMeshProのテキスト描画に、Sprite Assetを用いてSpriteを表示する方法について紹介しています。

Built-in VR から XR Plugin Management へ移行した話

Built-in VR から XR Plugin Management へ移行した話 - Qiita

Unity 2021 へのアップデートの際にBuilt-in VRからXR Plugin Managementへの移行が必要だった理由と、その移行手順、移行の際に問題になったマルチプラットフォームの参照解決、ビルドフローの修正についてまとめています。

PhotonFusionを使って初めてゲーム開発をする上で知っておくと嬉しいTips集

PhotonFusionを使って初めてゲーム開発をする上で知っておくと嬉しいTips集 - Qiita

PhotonFusionを用いたマルチプレイゲームを開発する際に知っておくべき知識として、権限の扱いについてHosted ModeやInput権限、State権限の観点、UIを起点としてどのように入力を同期するか、Rxによって値の共有を行う方法と注意点、RPCを利用する方法についてそれぞれ紹介しています。

Airtest+Pocoの自動化でのアプリとのデータの受け渡し方法

Airtest+Pocoの自動化でのアプリとのデータの受け渡し方法 - Qiita

Airtest+Pocoで自動テストをおこなう際に、PocoのRPCを用いてアプリケーションとデータを共有する方法についてまとめています。

Unityにおけるnullチェック

Unityにおけるnullチェック(1) - AがnullでなくともA == nullがtrueになる - Qiita

Unityにおけるnullチェック(2) - Destroyが何をしているか - Qiita

Unityにおけるnullチェック(3) - A is nullとA == null - Qiita

Unityにおけるnullチェック(4) - メモリリークを防ぐ - Qiita

Unityのnullの等価演算子のオーバーロードと GameObject.Destroy の挙動、 A is nullA == null の挙動の違いとGameObjectの破棄で問題になるケース、メモリリークなどについてまとめています。

使用ライブラリを簡単に覗く方法Windows編

使用ライブラリを簡単に覗く方法Windows編 - 鉄ブロ

Windows向けにビルドされたUnityアプリの使用ライブラリを確認する方法について紹介しています。

Unity製アプリに対するよくある不正行為とその対策

Unity製アプリに対するよくある不正行為とその対策 - Qiita

Unityアプリでよくある不正行為と対策方法としてコード解析・アセット解析・メモリ改ざん・セーブデータ改ざんの観点でまとめています。

Addressableのアドレス一覧からモデルクラスを生成するEditor拡張

Addressableのアドレス一覧からモデルクラスを生成するEditor拡張 - Qiita

Addressablesのアドレス一覧を取得して、そのアドレス一覧からC#のクラスを自動生成するエディター拡張について紹介しています。

UnityのEditor拡張

UnityのEditor拡張【Advent Calendar 12/15】|Colorful Palette

Unityで、InspectorとHIerarchyウインドウを拡張する方法についてそれぞれ紹介しています。

UnityからSlackにエラーを投げるときの情報についての考察

UnityからSlackにエラーを投げるときの情報についての考察 - Qiita

Unityアプリから主に不具合通知を想定してSlackに通知を送る方法と、どのような情報を送ると不具合の特定に役立つか考察しています。

Tilemapを使ってキャラクターを歩かせたりジャンプさせたりする

Tilemapを使ってキャラクターを歩かせたりジャンプさせたりする - Qiita

TilemapとPhysics2Dを用いて横スクロールアクションゲームのようなビューとキャラクター制御を行う方法について紹介しています。

Unity 2021.2 から新しく使えるようになったC#のクラスを眺める

Unity 2021.2 から新しく使えるようになったC#のクラスを眺める - Qiita

Unity 2021.2で .NET Standard 2.1 対応によって使えるようになったC#のクラスについてまとめています。

レイヤーを実質無限に使えるようにするライブラリの紹介【Layer2】

【Unity】レイヤーを実質無限に使えるようにするライブラリの紹介【Layer2】 - Qiita

記事の著者が開発する、コンテキストに応じたレイヤー設定の切り替えによってUnityのレイヤーを実質無限に使える「Layer2」について、開発のモチベーションからインストール方法から使い方をまとめています。

Unityからブラウザまで! ロジックの切り出しに WASI を使ってみる

Unityからブラウザまで! ロジックの切り出しに WASI を使ってみる

ロジック切り出し用途で利用しているLuaの代替としてWebAssembly(WASI)を利用するメリットやUnity上で動作させるためのWasmer(WASIランタイム)の組み込み方法とC#コードからの呼び出し、xLuaとのパフォーマンス比較を行っています。

UniRxのObjectPoolを使ってParticleSystemを管理する

[Unity] UniRxのObjectPoolを使ってParticleSystemを管理する - Qiita

UniRxObjectPoolを用いて、ParticleSystemのプール管理を実装する方法について紹介しています。

Alt(Opt) + Enter だけじゃもったいない! Rider小テク

Alt(Opt) + Enter だけじゃもったいない! Rider小テク - Qiita

Riderで特定の構文を入力したあとに.を入力することで、コードの補間や生成を行ってくれる機能について、変数への格納・条件分岐・列挙・その他の観点で機能をまとめています。

Unity開発において実機で3Dモデルのメモリ使用量を測るときに注意すること

Unity開発において実機で3Dモデルのメモリ使用量を測るときに注意すること

3Dモデルのメモリ使用量をMemoryProfilerで測る際に、実機とエディター上で差が出るケースとその原因について紹介しています。

Position Based Dynamics : XPBD、SubstepXPBDをUnityで実装してみた

Position Based Dynamics : XPBD、SubstepXPBDをUnityで実装してみた - Qiita

Position Based Dynamics(PBD)と、その拡張であるXPBD(eXtend PDB)、SubstepXPBDについてそれぞれ原理の説明と、インタラクティブなロープの物理シミュレーションをUnityで実装する方法について解説しています。

UnityでMoqを使う (Unity2021バージョン)

UnityでMoqを使う (Unity2021バージョン) - すぎしーのXRと3DCG

.NET向けモックライブラリ Moq をUnityに導入する方法について、インストール方法からTestRunner向けの調整、Unity Test Runnerで実際に利用する方法についてそれぞれ解説しています。

ノベルゲーム・アドベンチャーゲーム制作ライブラリYarn Spinnerを使ってみた

【Unity用】ノベルゲーム・アドベンチャーゲーム制作ライブラリYarn Spinnerを使ってみた その1 - Qiita

【Unity用】ノベルゲーム・アドベンチャーゲーム制作ライブラリYarn Spinnerを使ってみた その2 - Qiita

テキストベースでシナリオの分岐やコマンドを記述できる「Yarn Spinner」の、インストール方法から日本語対応、サポートされている各種機能(変数や分岐、コマンドなど)の紹介、C#との連携を含めた実践的な利用方法、dialogue viewのカスタマイズなどについてまとめています。

Firebaseを使ったプロジェクトの作り方(Analytics, Crashlytics)

[Unity]Firebaseを使ったプロジェクトの作り方(Analytics, Crashlytics) - Qiita

UnityプロジェクトにFirebaseを導入する方法について紹介しています。

GithubActionsでUnity製アプリをBuildする!

GithubActionsでUnity製アプリをBuildする!

GameCIのGitHub Actionsを用いてUnityアプリをビルドする方法について紹介しています。

iOS 向けの Low-level native plug-in interface を利用した Metal API へのアクセスについて調べてみた

【Unity】iOS 向けの Low-level native plug-in interface を利用した Metal API へのアクセスについて調べてみた - Qiita

iOS向けに、Low-level native plug-in interfaceを用いてUnityの管理するレンダースレッドから独自のレンダリング処理をネイティブプラグインとして実装してそれ差し込む方法、レンダリング処理をSwiftで記述する方法とそれぞれ注意点、Unityの描画結果に対してネイティブプラグイン経由でプリミティブを追加で描画したりレンダーテクスチャを扱うサンプルアプリの実装など、詳細が解説されています。

ロード時間を短くするために効率よくチューニングする

ロード時間を短くするために効率よくチューニングする - Qiita

アセットローディングによる待ち時間を減らすためのアセットバンドルのロード最適化の考え方やProfiler ModuleのAsset Loading Moduleを用いてどのタイミングでどのアセットがロードされているかの状況把握と並列ロードによる最適化、ロード中のバックグラウンドスレッドのプライオリティを変更することによるロードの高速化についてそれぞれ紹介しています。

音声データからピッチ推定を行う

【Unity】音声データからピッチ推定を行う - Qiita

Unityで、マイス入力から得た音声データに対して、FFT(Fast Fourier Transform)やAMDF(Average Magnitude Deference Function**)**を用いてピッチ推定を行う方法について紹介しています。

UnityのゲームでModが作られる手順について

UnityのゲームでModが作られる手順について - Qiita

自作ゲームを題材に、MonoバックエンドなUnityアプリを改造する方法を紹介しています。

Mapboxが生成した3D地図を近似する荒野風の風景に置き換える

Mapboxが生成した3D地図を近似する荒野風の風景に置き換える - Qiita

Mapboxで生成した3D地図のジオメトリ情報から荒野風の背景を生成する方法について、メッシュ加工と加工したメッシュに対してTerrainを用いて見た目を整える実装を紹介しています。

GrapViewでノードをプログラムで繋げる

GrapViewでノードをプログラムで繋げる - Qiita

UnityのGraphViewで、C#スクリプト経由でノードを接続する方法について紹介しています。

Timelineにテロップ用テキストデータを一括で流し込む

【Unity】Timelineにテロップ用テキストデータを一括で流し込む - Qiita

テキストデータからタイムラインクリップを自動生成する方法について紹介しています。

UnityとAdobeXDの連携検証 -AkyuiUnityを使って-

UnityとAdobeXDの連携検証 -AkyuiUnityを使って- - Qiita

AkyuiUnityを用いたAdobeXDとUnityの連携検証について紹介しています。

パフォーマンスチューニング手法を学生時代に作ったゲームで試してみた

【Unity】パフォーマンスチューニング手法を学生時代に作ったゲームで試してみた - Qiita

この記事の著者が過去に開発したゲームをパフォーマンス・チューニングを行ったときの、パフォーマンスの計測方法から、レンダリング負荷やゲームオブジェクトの生成コストの削減方法についてそれぞれまとめています。

UnityでAppleのストアアイコンのA/Bテスト

UnityでAppleのストアアイコンのA/Bテスト - Qiita

AppleStoreConnectの「プロダクトページの最適化」とAppIconChangerUnity で、ストアアイコンのA/Bテストを行う方法について紹介しています。

UnityでImposterを作った

UnityでImposterを作った|hamity|note

UnityでImposter(視点によってビルボードテクスチャを切り替えるようなかたちで、事前に撮影したテクスチャを3Dっぽく見せる手法)を実装する方法について紹介しています。