【無料】TsukimiSharp(T#):Udon向け言語・最適化コンパイラ・静的解析MCP
- 通常版ダウンロード商品¥ 0
- 月見うどん代(投げ銭用)ダウンロード商品¥ 500



TsukimiSharp(T#)は、VRChatのUdon向けの言語・C#コンパイラです。 UdonSharpより広いC#の機能をサポートします。 T#のパッケージは、自作のワールドやアセットに含めて配布・販売できます。 VCC/ALCOM用VPM URL:https://zz-roba.github.io/tsukimi-vpm/index.json リファレンス:https://tsukimi-reference.pages.dev/reference/ 更新履歴:https://github.com/zz-roba/tsukimi-vpm/releases Discordサーバ:https://discord.gg/3WtRRvxAWd アップデートする場合はSkillsを再インストールし、メニューのTsukimiCode>Compile All Tsukimi Programsを実行してください。 ■ できること ・UdonSharpのスーパーセットなUdon向けのC#のサブセット言語で、Udon(VRChatワールドのプログラム)を記述できます。 ・UdonSharpでは書けない型が使えます。interface、タグ付きunion、recordのwith式や分解、自分で書いたジェネリクス、structのメソッドや演算子などです。Udonの制約の中での対応なので、unionは再帰できないなど細かい条件があります ・新しめのC#の構文も書けます。switch式のwhen句、switch文の範囲や型パターン、?.や??=、int[4,4]のような多次元配列、a[^1]やa[1..]、タプルの代入や比較や分解など ・switchでunionやenumのcaseを書き漏らすとコンパイルエラーになります。nullable enableにすると、nullかもしれない参照をそのまま使うのもエラーにできます ・値が変わったときに処理を走らせる書き方ができます。追いかける値、そこから計算する値、変わったときの処理、変わった瞬間だけの処理を、属性を付けて書きます(サンプルあり) ・テストが書けます。属性を付けたメソッドをエディタの窓から実行して、通ったかどうかを一覧で見られます。Unityを再生しなくても動き、同期のモックもあります ・GPUで動く処理をC#で書けます。属性を付けたメソッドがシェーダに変換されて、結果はテクスチャで受け取れます。Udon側に読み戻したり、最大値や最小値を集計したりもできます(水面のサンプルあり) ・async/awaitが使えます。1フレームで終わらない処理を分けて、少しずつ進められます ・Rendererの見た目や頂点を、C#でシェーダとして書けます(試験中) ・学習済みモデル(ONNX)をコンパイル時に埋め込めます。ファイルを属性で指定すると、推論のコードが生成されます(試験中) ・最適化コンパイラが入っています。型やジェネリクスを使ったぶんの重さを、インライン化やループ最適化などで減らします。壊れないことを優先していて、変換の前後で動きが同じだと確認できたものだけ適用します ・AIエージェント向けの手順書が入っています。T#を書くとき用と、UdonSharpから移すとき用の2つで、メニューから押すとプロジェクトに配られます(任意) ・AI向けの静的解析サーバ(MCP)が入っています。書いたコードがUdonで動く形か、呼んでいるAPIが本当にあるか、命令をどれくらい使うかを、Unityを開かずに調べられます。設定は窓から、使っているAIクライアントにまとめて書き出せます(任意) ・プロファイラが入っています。シーンに置いたプログラムの重さを、命令の数と実測の両方で見られます ・書いたスクリプトを、UdonSharpで読めるC#に書き出せます ■ 対応している機能 UdonSharpで書けるものは、大体そのまま書けて、加えてUdonSharpにない機能も使えます。書ける形と書けない形の一覧はリファレンスにあります。 そのほかに使える新しめのC#の書き方 ・名前付き引数と、既定値のある引数の省略 ・is型テスト(objectに入れた値をbool/int/float/stringといった型で見分けられます) ・ローカル関数(外のローカル変数を読めます) ・ジェネリック基底(abstract class Base<T> : TsukimiBehaviourのように、TsukimiBehaviourを根に持つabstractなクラスを基底にします。class Leaf : Base<int>と継承した時点で型が決まるので、派生側は型引数を持ちません) ・structやrecordの計算するプロパティ(structの中ではsetを書けません。getだけを書きます) ・Udonの制約に合わせたC#のサブセットです。C#のすべての構文には対応していません。 ■ 導入方法 ・VCCまたはALCOMを使う場合は、上の「VCC/ALCOM用VPM URL」のURLを追加してください。パッケージ一覧からTsukimiSharp(T#)を導入できます。 ・BOOTHの配布ファイルから入れる場合は、まずzipを展開してください。配布ファイルが.tgz.zipなのは、BOOTHにアップロードできる拡張子の都合でzipに包んでいるためです。 ・展開して出てくるtarball(.tgz)を、UnityのPackage Manager(Window>Package Managerを選択)で「Add package from tarball」を選んで追加してください。このボタンはUnityのPackage Managerにあるもので、VCCとALCOMにはありません。 ・T#のスクリプトの作成は導入後、Projectビュー(ファイルとかがあるところ)右クリックして、Create>T# Scriptから作成できます。 ・メニューのTsukimiCode>Import Samplesを押すと、同梱サンプルがAssetsに取り込まれます。書き方を1つずつ見せるサンプル集(22本)が1つ入っていて、シーンが2つ付いています。開いてPlayしてください。 ・書いたテストは、メニューのTsukimiCode>Tsukimi Testsを開いて実行します。 ・プロファイラは、メニューのTsukimiCode>Tsukimi Profilerから開きます。UdonSharpへの書き出しは、スクリプトを右クリックしてExport as UdonSharpを選びます。 ・AIに読ませる指示とMCPサーバの設定は、メニューのTsukimiCode>Tsukimi MCPを開いて設置します。押す順番は窓の中に書いてあります。 ■ 動作環境 VRChat Worlds SDK(Udon)3.10.4以降が入ったUnity2022.3のプロジェクト。UdonSharpと同じ用途で使えます。 ■ 価格について 本体は無料でダウンロードできます。「月見うどん代(投げ銭)」は応援したい方向けの任意の投げ銭です。購入しなくても機能に差はありません。 ■ 利用規約 ・本ソフトウェアは現状有姿で提供します。動作・品質・特定目的への適合性について、明示黙示を問わずいかなる保証もしません。 ・本ソフトウェアの利用、または利用できないことから生じたいかなる損害についても、作者は責任を負いません。利用は自己責任でお願いします。 ・本ソフトウェアはVRChat社およびUnity Technologies社とは無関係の非公式ツールです(名称は識別のために使用しています)。 ・本ソフトウェアで作成した成果物(ワールド等)は、商用非商用を問わず自由にご利用いただけます。 ・違法な用途、およびVRChat等の各種利用規約に反する用途には使用しないでください。 ・デジタル商品の性質上、購入後の返金はできません。「月見うどん代」は任意の投げ銭であり、機能や対価ではありません。 ・本ソフトウェアのリバースエンジニアリングはしないでください。 ・本ソフトウェアのパッケージは、自作の成果物に含めて配布・販売できます。本ソフトウェアを単体で、または本ソフトウェアが主な内容となる形で再配布・販売することと、手を加えたものを配布することはしないでください(サンプルコードをご自身の制作物に取り込んで改変することは自由です)。 ・本規約は予告なく変更することがあります。 ■第三者ソフトウェアのライセンス表記 本製品は以下の第三者ソフトウェアを利用しています。各ライセンスの条項に従います。 ・Microsoft.CodeAnalysis(Roslyn):C#の構文・意味解析に利用しています。MIT License(Copyright © .NET Foundation and Contributors)。 ・UdonSharp(U#):互換性検証のためのテストコーパスとして利用しています。MIT License(Copyright © Merlin, UdonSharp contributors)。 ・VRChat Worlds SDK(Udon):本製品には同梱せず、ユーザー環境のSDKを通じて動作します。



