🌱
Unity AIを使ってみた所感
はじめに
AIについてどう学んでいこうか悩んでる時に、そういえばUnity AIがベータ機能として出てたので勉強も兼ねた所感となります。
開発環境
- Unity 6000.2.0b12
前置き
- Unity自体の事前知識がある状態での学習となります。
Unity AIについて
- Unity6.2のβに導入された生成AIツール
- Unityと連携して、シーンの操作、画像生成、スクリプトの実装などがAIで出来るようになる
- ポイントという要素があり、AIを利用することで消費される仕組み
- β版だからか、最初から25000付与されており、画像生成1回で10減ってた
- 規約として、商用や製品向けのプロダクトでは利用不可(正式導入されたら大丈夫だと思われる)
- 詳しくは Unity Generators Manual
スプライト生成
テスト
簡単なボタン素材を生成してみる。
Unity上部の AI -> Generate New -> Sprite を選択し、UIを作成したいので、
Add More Controls To Prompt -> GameUI に、Prompt は以下に設定して Generate
| 設定 | 結果 |
|---|---|
![]() |
![]() |
背景が邪魔なので同じウィンドウ内にあるRemove BGで背景を消す。

良い感じに消してくれてる様子。
後はSpriteEditorでSpriteModeをMultipleにした後にSliceすれば使えそうだった。
結果
- UI周りに対しては使えそうな内容だった
- PromptもUI以外に、種類があるのも良かった
- 背景除去やスケール調整などの機能もあったため、細かい修正も行えそう
サウンド生成
テスト
スプライト同様に AI -> Generate New -> Sound から作成。
wavファイルはアップロード出来なさそうなので成果物は割愛。
結果
- 生成時に設定できるDurationの最低値が1にしか設定出来ないため、
ボタンタップなどの極短なサウンドは生成出来なさそう - 生成自体は出来るが、無音の余白が出来るため、Trimで切るなど、ひと手間必要そう
- ステージクリアや演出に使うサウンド等、数秒のものを作るには良さそう
- 正直フリー素材で出回ってるサウンドのほうが色々丁度良さそうなので、
サウンドが見つからない場合とかに使ったりしそう?
アシスタント
UIの作成
UIの素材をアタッチした状態で、/run UIのボタン配置をしてください
とお願いしたら、ボタン配置の処理を用意してくれたが、
/run この素材を使って良い感じにメニュー画面を作ってください
とお願いすると、ボタン配置のみだったため抽象的な内容だと難しいらしい。
シェーダー作成
今回はボタンが明滅するようなシェーダーの作成をお願いする。
アシスタントに /run このボタンを明滅させるシェーダーを書いてください で出力。
以下のコードが出来た。
TestShader.shader
// 2025/11/10 AI-Tag
// This was created with the help of Assistant, a Unity Artificial Intelligence product.
Shader "Custom/BlinkingButtonShader"
{
Properties
{
_MainTex ("Main Texture", 2D) = "white" {}
_BlinkColor ("Blink Color", Color) = (1, 1, 1, 1)
_BlinkSpeed ("Blink Speed", Float) = 1.0
}
SubShader
{
Tags { "RenderType"="Transparent" }
LOD 200
Pass
{
ZWrite Off
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float4 pos : SV_POSITION;
float2 uv : TEXCOORD0;
};
sampler2D _MainTex;
float4 _MainTex_ST;
float4 _BlinkColor;
float _BlinkSpeed;
v2f vert (appdata v)
{
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
// Sample the main texture
fixed4 col = tex2D(_MainTex, i.uv);
// Calculate the blink effect based on time
float blink = abs(sin(_Time.y * _BlinkSpeed));
// Blend between the main texture color and the blink color
col.rgb = lerp(col.rgb, _BlinkColor.rgb, blink);
return col;
}
ENDCG
}
}
FallBack "Transparent/Diffuse"
}
このシェーダーファイルを保存して、任意のマテリアルに設定すれば反映された。

感想
- 画像生成は十分使えそうな内容だったため、使ってみても良さそう
- コード生成についても、簡単な処理であれば使う価値はある
- アシスタントは抽象的な質問だと難しいため、細かく指示する必要がある様子
- 簡単なボタン配置などについてはUnityに既に機能として実装されてるのでそっちを使ったほうが早い
- 初心者の方には使えそうだが、Unityの機能を覚えたほうが後々良い気もするので、悩ましい所
- β版の関係でポイントが枯渇しなかったが、正式リリースでどういったフローになるかは気になった


Discussion