よーへん(バーチャル学芸員・バーチャルライブコーダ)

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません。

よーへん(バーチャル学芸員・バーチャルライブコーダ)

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません。

最近の記事

VRoid製MToon(VRM)→liltoonへシェーダを変更する際の設定まとめ

VRoid製MToon(VRM)からliltoonへシェーダを変更する際の設定メモです。 半透明やカットアウトなどの設定で迷うことが多かったので、MToonの元設定を書いておきました。 ・まつげ、まゆげ、ハイライト 描画モード 半透明 Cullモード off ・白目、口内、HairBack、ボディ 描画モード カットアウト Cullモード Back ・ひとみ 描画モード 半透明 Cullモード Back ・顔、ワンピース  描画モード カットアウト Cullモード off

    • VRMデータやVRoidアバターにVRChat用衣装を着せる XWear導入方法

      まだベータバージョンですが、VRoidStudioでVRChat対応衣装をフィッティングできるようになりました。情報がバラバラで分かりにくかったので、備忘録としてまとめておきます。 準備1.こちらを参考にVCCをインストールする 2.Webブラウザに以下のURLを入力し、エンターキーを押す vcc://vpm/addRepo?url=https://download.vroid.com/dist/VRoidVpm/vpm.json 3.そうすると以下のような画面が出る

      • ShoostをUnity経由で使う

        画面をエモくするShoostをUnity経由で使ってOBSで表示する方法のメモです。 準備1.以下から支援をしてShoostをダウンロード&インストールする 2.Unityを立ち上げ、「Edit」→「Project Settings」を選択する 3.「Package Manager」→「Scoped Registries」を選択する 4.以下のように入力する Name:Keijiro URL https://registry.npmjs.com Scope jp.kei

        • Unity+Whisper+OpenAI+VOICEVOXのセットアップ

          Unityを使ってAIキャラクターと対話するプロジェクトを作る際の準備について自分備忘録としてメモしました。 VRM最新バージョン(2024.8.19現在)の仕様が変わったため、uLipSyncなどのライブラリを入れる順番に気を付ける必要が出てきました。 具体的なコードについては参考部分をリンクしました。 準備1.PackageManagerから「Burst」をインポートする 2.VRM0.xを使うので、PackageManagerから以下2つをインポートする (2024

          uLipSyncをTimelineで使う&音声ファイルから口パクアニメーションを自動で作る

          uLipSyncをTimelineで使う際にハマったことがあったので、忘れないようにメモしました。 VRM0.xを使う場合、Githubのページからダウンロードしたパッケージをインポートすると、「uLipSync BlendShape VRM」がエラーになっていて使えない場合があります。その回避方法も含めてメモしています。 (これはuLipSyncが悪いのではなく、Unityの仕様だそうです) 全体的な準備1.PackageManagerから「Burst」をインポートする

          uLipSyncをTimelineで使う&音声ファイルから口パクアニメーションを自動で作る

          Quest3で疑似フルトラモーキャプする(上半身+手キャプチャ、下半身機械学習での動作)

          こんな感じになります。 準備こちらを参考にさせて頂きました。SDKのバージョンが違うので諸所異なっています。 1.2021以降でプロジェクトを作成し、以下をインポートする 2.Build SettingsでプラットフォームをAndroidにSwitchする 3.「Oculus」→「Tools」→「Project Setup Tool」を選択して、FixAllやApllyを押して赤い警告マークが消えるようにする ただしこれだけ残ってしまうので、次の項目で解決する 4.

          Quest3で疑似フルトラモーキャプする(上半身+手キャプチャ、下半身機械学習での動作)

          GPT-4oとFunction callingをUnityで動かす

          今さらですが、ようやくFunction callingをUnityで使う方法が分かったので、忘れないうちにメモをしておきます。 これはLLMから関数を実行するもので、そこに処理を書いておけば特定の処理を呼び出して実行することができます。 例えば以下のようなことができます。 ・「写真を撮って」がトリガー→写真(スクリーンショット)を撮る ・「前へ進んで」がトリガー→オブジェクトを前方に移動させる ・「今日の天気は?」がトリガー→天気を調べて伝える 右側はコード内で自分で設定しな

          非公式クライアントライブラリClaudiaを使って、Claude3とFunction CallingをUnityで動かす

          Claude3をUnityで動かすにあたり、ChatGPTのAPIと同じくUnityWebRequestでAPIを呼び出して対話することもできるのですが、今回はLLMの出力から関数を呼び出すFunction Callingも簡単に実装できる非公式ライブラリ「Claudia」を使ってUnityで対話します。またFunction Callingも実装していきます。 非公式と言ってもUniTaskを作った会社さんのライブラリなので、今後のメンテ等も大丈夫だろうということで使っていき

          非公式クライアントライブラリClaudiaを使って、Claude3とFunction CallingをUnityで動かす

          rinnaのKoeiromap API(v1.0)を使ってUnityでテキスト読み上げをする

          AIキャラクターの実装にあたって、Style-Bert-VITS2を使ってテキストの読み上げをしていたのですが、Quest3+PCで動かしたときに(おそらく)VRAMが足りずQuest3の画面に黒いブロックノイズが乗ってしまいました。 動作もかなり重く遅くなっていたので、別の読み上げ手段を探していたところ、rinnaのKoeiromap APIを使うことにしました。 サーバ上で処理をしているWhisperと同じケースですが、かなり高速でしゃべり方も自然なので、キャラクターイメ

          rinnaのKoeiromap API(v1.0)を使ってUnityでテキスト読み上げをする

          Modular avatarで着替えさせたVRCアバターをVRMにする

          Modular avatarで着替えさせたVRCアバターをVRM Converter for VRChatを使ってVRMにしたとき、(おそらく)BlendShapeが暴走してメッシュがおかしくなることがあります。顔のメッシュもおかしいので、SpringBoneが原因とは一眼には言えない気がします。 これはおま環か特定のアバターか原因が分かりませんが、正常に書き出す方法をメモしておきます。 準備1.以下をダウンロードしておく やり方基本的にはこちらのやり方に従って行えばいい

          Modular avatarで着替えさせたVRCアバターをVRMにする

          Whisper+Unityでマイクの音量によって音声の書き起こしを行う

          WhisperとUnityを使って音声の書き起こしを行います。ボタンを押してマイクに話すと書き起こしが動作するという安全策を多くは取りますが、いちいちボタンを押すのが煩わしい場合があります。 そこでここでは音量をトリガーにして、マイクの音量が特定の範囲内であれば書き起こしを行うようにします。 どうやっても上手くいかなかったので、こちらのライブラリを参考にさせて頂きました。ありがとうございます。 準備1.UniTaskをインポートする 2.UIのTextを3つ作成する。ひと

          Whisper+Unityでマイクの音量によって音声の書き起こしを行う

          GPT-4oをUnityで動かす

          OpenAIから新しいモデル「GPT-4o」が出ました。文章生成・音声・画像すべての能力がアップされているそうなので、テキスト生成・画像解析を一通りUnityでやってみることにします。 基本的なコードはこちらを参考にさせて頂きました。ありがとうございます。 準備1.以下からUniTaskをダウンロードし、インポートする 2.UIのInputField、Button、Textを作成する 3.JSONを成形する「Newtonsoft Json」をインポートするため、Pack

          Unityを使ってChatGPTとテキスト対話する

          シンプルにUnityのInputFieldに質問したいテキストを入力し、ボタンを押したらChatGPTが返答してくれるというものを作ります。 いちばんのベースになるものですが、忘れてしまうこともあるので個人的メモです。 なおコードの作成にあたり、下記を参考にさせて頂いています。ありがとうございます。 準備1.以下からUniTaskをダウンロードし、インポートする 2.UIのInputField、Button、Textを作成する コードを作成する 1.以下のスクリプトを作

          Whisper+ChatGPT+Style-Bert-VITS2でUnityを使ってAIと会話する

          Whisper+ChatGPT+Style-Bert-VITS2を使って、以下ができるようにするメモです。 1.Whisperで音声認識する 2.1.で音声認識したものをChatGPTに送って返答が返ってくる 3.返答をStyle-Bert-VITS2で読み上げさせ、同時に口パクさせる といったものです。2.の時点で感情表現も返すようにChatGPTに指示をしているので、それを使えば表情やアニメーションの変化もできます。ここでは助長になるので、ひとまず3.までをやってみます。

          Whisper+ChatGPT+Style-Bert-VITS2でUnityを使ってAIと会話する

          Unityでランダムにアニメーションを再生する

          ※他の状態に遷移したときにアニメーションの再生が終わらないと遷移が開始されないというトラブルがあったので、それを解消したバージョンを追記しました。 受容がありそうでなかなか情報がなかったのでメモしました。 こちらを参考にさせて頂きましたが、Unityの仕様が2024年現在とは異なるため、一部修正が必要でした。 今回の仕様は拡張しやすくするため、以下のようにしました。 1.Playボタンを押すとIdel状態で、他の状態に遷移するまでランダムにアニメーションを再生する 2.特

          Unityでランダムにアニメーションを再生する

          Style-Bert-VITS2の読み上げをUnityで使う(補足あり)

          Style-Bert-VITS2のAPIにHTTPリクエストを送信し、生成された読み上げ用サウンドファイルをUnityで再生します。 ・Style-Bert-VITS2のダウンロード ・ローカルセットアップ ・モデルインポート はすでにできているとします。 Style-Bert-VITS2のAPIでの読み上げは100文字が限界ですが、AIキャラクターとのやり取りの場合は100文字がちょうどいいくらいなので、プロンプトで「50文字以内、かつ最大2文で返答してください」と指定

          Style-Bert-VITS2の読み上げをUnityで使う(補足あり)