UnityでMCPツールが「ファイル名が長すぎます」エラーになった時の解決策

Unity のMCP(モデルコンテキストプロトコル)ツールを使ってC#コードを実行する際に、こんなエラーが出ることがあります。

Error running mono.exe: ファイル名または拡張子が長すぎます。

なぜこのエラーが起きるのか

UnityのMCPツールは、通常「CodeDom」という仕組みでC#をコンパイルします。このCodeDomは、コードをコンパイルする際にWindows上でmono.exeというプログラムを起動しますが、その時に使用するアセンブリ(DLL)のパス情報をコマンドラインで渡します。

Unityプロジェクトが多くのパッケージを使っていると、これらのパス情報が合計で長くなりすぎて、Windows が許可している文字数の制限(260文字)を超えてしまい、エラーになるのです。

解決策:Roslyn を使う

CodeDom の代わりに「Roslyn」(マイクロソフトの公式なC#コンパイラ)をメモリ内で直接動かすことで、この問題を回避できます。幸いなことに、Unityには既にRoslynが組み込まれているので、それを有効化するだけです。

実装方法

以下のコードを Assets/Editor/RoslynLoader.cs として保存してください。

[InitializeOnLoad]
static class RoslynLoader
{
    static RoslynLoader()
    {
        var editorData = Path.GetDirectoryName(UnityEditor.EditorApplication.applicationPath);
        var roslynDir = Path.Combine(editorData, "Data", "MonoBleedingEdge", "lib",
                                     "mono", "msbuild", "Current", "bin", "Roslyn");

        var dlls = new[]
        {
            "System.Collections.Immutable.dll",
            "Microsoft.CodeAnalysis.dll",
            "Microsoft.CodeAnalysis.CSharp.dll",
        };

        foreach (var dll in dlls)
            if (File.Exists(Path.Combine(roslynDir, dll)))
                Assembly.LoadFrom(Path.Combine(roslynDir, dll));
    }
}

このコードはUnityの起動時に自動実行され、RoslynのDLLファイルをメモリにロードします。[InitializeOnLoad]属性により、Unityが起動するたびに自動的に実行されます。

確認方法

実装後、MCPツールで以下のコードを実行してみてください。

return System.Type.GetType(
    "Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree, Microsoft.CodeAnalysis.CSharp"
) != null ? "Roslyn有効" : "未ロード";

「Roslyn有効」と表示されれば成功です。これで長いファイルパスの問題が解消され、エラーなくコードが実行できるようになります。

Unity AIとデジタルツインが自動車業界に革新をもたらす時代へ

Unity AIとデジタルツインが自動車業界に革新をもたらす時代へ

Unity AIのオープンベータ公開で開発環境が一新

2026年5月5日、ゲーム開発エンジン大手のUnityは、AI機能群「Unity AI」のオープンベータ版を全開発者へ公開しました。このアップデートは、AIの力を活用しながらもクリエイターの創造プロセスの主導権を確保する「クリエイター主権」をコア設計思想としています。

Unity AIは複数の提供形態を備えており、Unityのワークフロー向けに調整された組み込み型エージェント、およびAI GatewayとMCP(Model Context Protocol)Serverを介した外部AIツール連携が可能です。MCP Serverは、Claude CodeやCursorといった外部のAIクライアントからUnity Editorを直接操作できる標準化プロトコルで、ローカル環境でセキュアな通信を実現します。

料金体系はPersonal Edition利用者向けに月額10ドルで月間1,000AIクレジット、Pro/Enterprise/Industryエディション契約者には標準搭載されます。

自動車業界での活用が急速に拡大

自動車業界でのUnityの活用は、急速に実用段階へ進んでいます。メルセデスベンツの親会社ダイムラーは2024年以降、全モデルのHMI(ヒューマンマシンインターフェース)をUnityで開発・搭載することを決定。ドライバーとの接点となるディスプレイ表示の新時代が到来しています。

デジタルツインとシミュレーション技術

自動車開発におけるシミュレーション環境としてのUnityの価値も急速に高まっています。多様な道路環境・気象条件を仮想空間で再現でき、実車テストでは再現が困難な極限シナリオも安全にシミュレーション可能です。

トヨタシステムズなどの大手IT企業がUnityを用いたデジタルツイン環境構築に注力し、自動運転OS「Autoware」に対応したシミュレーター「AWSIM」では、Unityで開発されたシミュレーションプラットフォームが自動運転技術検証の重要インフラとなっています。

AI技術とデジタルツインの融合が加速

今回のUnity AIオープンベータ公開は、デジタルツイン構築とAIアシスタント機能の統合を意味します。自動車メーカーや部品サプライヤーは、AIを活用した高度なシミュレーション環境の構築が加速することが期待され、開発サイクルの短縮と安全性向上が同時に実現される展開が予想されます。

参考情報

GnuCashで日本株の株価を自動取得する(PostgreSQL&Perl連携)

GnuCashで日本株の株価を自動取得する(PostgreSQL&Perl連携)

GnuCashの株価取得問題とは

日本の株価の取得は長らく
http://liosk.blog103.fc2.com/blog-entry-185.html
https://github.com/LiosK/Finance–Quote–YahooJapan
にお世話になってきました。GUI,CLIとも取得できていたのですが、 gnucash-cli --quotes get ではあるバージョンから取得できなくなりました。これは GnuCash が内部で「yahoo_japan」というデータ源を認識していないためです。

なぜこんなことが起きる?

GnuCash の GUI版では初期化順序が異なるため動作しますが、CLI版では未知のデータ源をスキップしてしまいます。つまり、CLI でyahoo_japanを使用するには、別のルートでデータを集める必要があるということです。

解決策:Finance::Quote で直接 DB に書き込む

GnuCash-CLI を使わず、Perl の Finance::Quote モジュールを使って、PostgreSQL データベースに直接株価を書き込みます。この方法なら yahoo_japan をCLIからも使えて問題を回避でき、Windows・Ubuntu の両環境で動作します。

GnuCash株価取得スクリプト実行画面

セットアップ手順

【Windows の場合】

  • Strawberry Perl をインストール
  • スクリプト内の DB接続先(PostgreSQL IP)を確認
  • 環境変数 ALPHAVANTAGE_API_KEYFQ_CURRENCY を設定
  • Perl スクリプトを実行

【Ubuntu の場合】

注意点

  • 日本株シンボル:「7203.T」ではなく「7203」(4桁)で指定
  • Alpha Vantage の制限:無料枠は 1日 25リクエストまで
  • GnuCash の DB ロック:GUI版を起動しながらでは動作しません。スクリプト実行時は GUI を閉じてください

まとめ

GnuCash と PostgreSQL、Perl を組み合わせることで、日本株を含むあらゆる資産の株価を自動取得・更新できます。一度セットアップすれば、cron等で毎日自動で最新の価格情報が DB に反映されるため、管理がより正確になります。Windows・Linux 両対応なので、どのような環境でも導入可能です。

RAID1を構築しLVMとして認識させる

sddとsdeとして認識したドライブをGPTでパーテーション作成、RAIDとして登録
sudo parted /dev/sdd mklabel gpt
sudo parted /dev/sdd mkpart primary 0% 100%
sudo parted /dev/sdd set 1 raid on
sdeも同様

mdadmをインストールしRAID1構築
sudo apt -y install mdadm
sudo mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sdd1 /dev/sde1

進捗確認を確認、数時間かかる
sudo cat /proc/mdstat

物理ボリューム作成、既存のLVM Storage2に追加
sudo pvcreate /dev/md1
sudo vgextend Storage2 /dev/md1

VR360

安価に180度画像、動画を撮影可能。防水ケース等オプションも多くついてくる。画質は値段相応だが、とりあえず試してみるには良いかも。

https://www.amazon.co.jp/gp/product/B06X3ZM1QD

 

SNSにアップロードしたりVRで見るには変換が必要。

ソフトはAndroid,PCでXDV360がありドームマスター形式からエクイレクタングラー形式に変換する。PC版はリンク切れ

WindowsMRで変換不要で見るソフトを作成した。書き出すjpg,mp4を読み込みヘッドセットで再生

https://blue-water.pgw.jp/wordpress/?wpdmpro=vr360


3Dプリントが途中で止まった場合

トラブルで印刷途中で印刷がとまった場合

↓造形の上半分を繋ぐには…

 

①造形物に当たらないようにZ軸の0点を合わせて、印刷開始高さを印刷再開したい高さに合わせる。

②元のG-CODEから以下を削除

  • Z軸の0点合わせ
  • 最初の試し印刷などベッド上の印刷
  • 印刷済みのLAYER

③編集後のG-CODEで印刷

CREALITY3D ENDER-3-PRO 3D プリンタ

価格:40,469円
(2020/5/9 20:55時点)
感想(0件)

FLASHFORGE フィラメント petg 1.75mm 500g 3Dプリンター 3d printer PETG filament ブラック 【日本正規代理店】送料無料 税込

価格:3,680円
(2020/5/9 21:01時点)
感想(0件)

Polymaker PolyLite PETG ブラック 1kg 径1.75mm

価格:4,480円
(2020/5/9 20:57時点)
感想(0件)

Unity VR+HDRP+DX12

UnityでVRとHDRPとDX12(レイトレ)が共存できるか検証

→できない。

  1. DX12がmipmapsのエラーでVR起動できない
  2. TEXTは片目しか映らない
  3. 現状 2019+VR+HDRP+DX11の組み合わせならTEXTが片目しか映らないこと以外は対応

●OPEN VRが使えるか?

2020.1ではXR Manegerのみ。OPEN VRは未対応。git hubにあるのでもうじき対応。正式版はXR MANEGERにない

2019 XR SETTINGにはOPEN VRある/XR PLUGIN Managementは未インストール

●d3d12: generating mipmaps for array textures is not yet supported.のエラー消えるか?

DX12 DXRのみVRなしでもでる

DXRデモ 2020でない 2019でる

●注意事項

STEAM VRあるとXR MANEGEMENTインストール失敗する。消そうとしても復活するので無限ループ