UnityのNPCをローカルLLMで喋らせてみた〜ゲームの中で動くAI会話〜
ゲームのNPCに、決められた台詞ではなくその場で考えた返事を喋らせたい。UnityからローカルLLMを呼んでNPCに人格と記憶を持たせ、ゲームループを止めずに動かせるかを実測しました。同期呼び出しは描画フレーム0枚、平均fpsは2.4%しか落ちないのに1% Lowは20%落ちる、記憶を切り詰めると入力が半分なのに待ち時間は1.8倍——予想が2つ外れた記録です。
プログラミングや3DCGで何か作りたいと思っているエンジニアがいます
ゲームのNPCに、決められた台詞ではなくその場で考えた返事を喋らせたい。UnityからローカルLLMを呼んでNPCに人格と記憶を持たせ、ゲームループを止めずに動かせるかを実測しました。同期呼び出しは描画フレーム0枚、平均fpsは2.4%しか落ちないのに1% Lowは20%落ちる、記憶を切り詰めると入力が半分なのに待ち時間は1.8倍——予想が2つ外れた記録です。
ゲームエンジンの2大巨頭、UnityとUnreal Engineのこれからを公式ロードマップやイベント発表から調べ、同じ切り口で並べてみました。UnrealはUE5.8を最後にUE6へ、Unityはレンダリング統合とWeb/モバイル強化へ。Runtime Fee撤回後の料金・ライセンスの最新動向まで比較します。
ARは実機がないと試せない…と思っていませんか。UnityのAR FoundationとXR Simulationなら、スマホ実機なしでもエディタの“仮想の部屋”でARを検証できます。平面を検出してタップした面に3Dモデルを置く最小サンプルを、仕組み・コード・XR Simulationの有効化・つまずきまで解説します。
p929の宿題「Unityも上位パイプラインならUnrealとの差は縮む」を実証。同じシーンをビルトインRP・URP・HDRPの3つで作り、反射・ブルーム・光の回り込み・光芒の見た目と、GPU時間で測ったFPSを同一Windows(RTX3060)で比較。設定は画像+数値で再現でき、いちばん軽いのはURPだった意外な結果やHDRPの露出・ライト単位のクセも解説します。
p927で地面・道路・橋梁まで整備したPLATEAUの丸の内を、Unity(ビルトインRP)で夜景化。月明かり・街灯・ビルの窓の光の作り方、窓を計算で光らせる専用シェーダー(簡易版と本格版の比較)、Bloom有り/無しの比較まで、設定値つきで解説します。
建物だけで宙に浮いて見えたPLATEAUの丸の内(東京)に、地形(地面)・道路・橋梁を足して“本物の街並み”に整備。広域データを街の範囲に切り出すコツ、形だけの道路をアスファルト質感で道路らしくする方法、建物との座標・高さ合わせの注意点までUnityの画面付きで解説します。
落ちてくる玉をタップして得点する2Dミニゲームを、Unity(C#)とXcode(Swift/SpriteKit)で全く同じに作成。iPhoneシミュレータで動かし、見た目・操作感・アプリサイズ(164MB vs 240KB)・起動・開発の手間を徹底比較。ゲームエンジンとネイティブの使い分けを結論します。
ライティング・影・反射のある3D空間でボールを発射し、積み上げた箱を物理で崩す——全く同じミニゲームをUnity(6000.4.5f1)とUnreal Engine(5.7.4)で作り徹底比較。Mac vs Windows(RTX3060)の実機FPS検証つき。
前編・中編で用意したPLATEAUの東京・丸の内を、Unityで実際に歩き回れるゲームにします。CharacterControllerで一人称プレイヤーを配置し、当たり判定・地面・ライティングを整備。実寸大データのスケール自動調整やNavMeshの要否も解説する3部作完結編。
前編で読み込んだPLATEAUの東京・丸の内データをUnity向けに最適化します。約4万5千個のオブジェクトを1つに結合(Unity最大の軽量化)、デシメートでのポリゴン削減と見た目への影響、FBX/glTFの書き出し比較、そしてUnityで真っ白になったときのマテリアル再設定(テクスチャ抽出)まで、全3回シリーズの中編です。
Unity ML-Agentsを使って強化学習エージェントを育ててみました。環境構築のハマりポイント(Python 3.10.12固定・grpcio・protobuf競合)から、RollerBallシーンの作り方、PPO学習の実測ログまで一部始終を記録しています。
UnityのNavMeshを使って、プレイヤーを自動で追いかける敵キャラクターを実装します。NavMeshのベイク方法から、NavMeshAgentのC#スクリプト、ハマったポイントまで実体験を交えて解説します。
Claude CodeでUnityとBlenderを連携させようと試みたところ、軸の扱いの違いによる予期せぬ動作や、細かい修正を繰り返すうちにコンテキスト制限・5時間制限に到達するなど、いくつかの壁に直面しました。その実体験をまとめます。
UnityのURP(Universal Render Pipeline)でShader Graphを使ったシェーダー制作に入門しました。ノードベースで視覚的に作れるShader Graphで波紋エフェクトを実装する手順を紹介します。
MediaPipeで取った顔・手のランドマークをUDPでUnityへ送り、アバターを動かした記録です。JSONで送る設計、別スレッドで送受信してフレーム落ちを防ぐ書き方、Unityのメインスレッド制約、顔の輪郭4点から向きを計算する方法、ブレンドシェイプでの表情反映、UnityからPythonを起動する仕組み、Blenderとの座標系の違いまでまとめています。