Unity

XR Interaction Toolkitをマウス入力に対応させる

XR Interaction ToolkitはUnity公式が提供するパッケージの一つです。その中には、XR向けのインタラクションを実装する為に必要なコンポーネントが一通り揃っています。 docs.unity3d.com 私が認識している限り、今までのUnityのインタラクション事情は、UI…

Bitbucket PipelinesのWindowsセルフホストランナーを、マシン再起動時に自動的に起動する様に設定する

Bitbucket Pipelinesでセルフホストランナーを構成する場合、デフォルトではPowershellスクリプトを使い、手動で起動する必要があります。 この場合、何らかの事情でマシンを再起動した際に、マシンに接続してランナープログラムを手動で再起動してやる必要…

UnityでOpenPose風のアバタースケルトンを表示するライブラリを作ってみた

はじめに エンジニアの松原です。前回こちらの記事で扱った、UnityでOpenPose風のアバタースケルトンを表示する仕組みを、Unityのライブラリとして開発、公開しました。この記事に実際の使い方を書きました。 synamon.hatenablog.com 今回の記事で使用してい…

Unityの-nographicsオプションの影響について

Unity Editorは、コマンドラインで実行することが可能です。 docs.unity3d.com コマンドライン引数に与えるオプションによって、プロジェクトの作成、ライセンス認証(オンライン認証及びオフライン認証)、テストやビルド、C#スクリプトの実行まで、実に様…

UnityでOpenPose風のアバタースケルトンを表示する仕組みを作ってみた

はじめに エンジニアの松原です。近年生成系AI、特にStableDiffusionの仕組みをベースとした生成系AIが目まぐるしい速度で進化しており、2023年の年間を通しても取り沙汰されない日のほうが少ないのでは、と思えるぐらい連日SNSでのニュースで見かけていまし…

ランタイムで読み込んだHumanoidモデルに読み込んだモーションを適用する

こんにちは、エンジニアの渡辺(@mochi_neko_7)です。 今回は Unity でランタイム(アプリケーション実行中)に読み込んだ Humanoid モデルに、同じくランタイムに読み込んだモーションを適用できるようにするまでの流れを解説します。 ユースケースが多く…

生成AIを使ってUnityのカメラアプリを作ってみた

こんにちは。Activ8の岡村です。 最近Activ8社内で生成AIハッカソンが行われたため、それに向けて作った簡単なUnityアプリをせっかくなので紹介します。*1 アプリの内容は、カメラで撮影した画像をAIに見せてプロンプトを生成し、生成したプロンプトで画像生…

Unity向けの簡易的なVADライブラリの紹介

こんにちは、エンジニアの渡辺(@mochi_neko_7)です。 今回は VAD (Voice Activity Detection、音声区間検出) を Unity で利用するためのライブラリを自作してみたのでこちらを紹介します。 github.com Unity で発話している音声区間を判定したり、その音声…

Unity Entitiesが正式リリースされたのでマルチプレイチュートリアルを弄ってみる(その2)

前回の記事ではNetCode for Entitiesを触り、シンクライアントの挙動を実装する所までコードを書きました。 前回のプロジェクトに引き続き改造を加えてみます。 ビルドして実行してみる 前回、シンクライアントの挙動を実装しましたが、実際にマルチプレイが…

Unity Entitiesが正式リリースされたのでマルチプレイチュートリアルを弄ってみる

Unity 2022 LTSのリリースにあわせて、長らく開発中だったECSがEntitiesパッケージとしてついに正式リリースされました。 正式版のEntitiesに対応したNetCode for Entitiesもあわせてリリースされており、今回はそちらが本題です。 公開されているチュートリ…

Unityでもgrpc-dotnetを使ったgRPCがしたい

こんにちは、エンジニアの渡辺(@mochi_neko_7)です。 今回は grpc-dotnet のライブラリを使って Unity を gRPC のクライアントとして利用する話を紹介します。 Unity で gRPC を使うにはいくつか選択肢がありますが、今回はサポートの切れている Grpc.Core…

NetMQ(ZeroMQ)を触ってみる

はじめに エンジニアの松原です。前回の記事( RabbitMQを使って開発言語の異なるアプリケーション間のメッセージ処理を試す ) に引き続き、ZeroMQについて取り上げたいと思います。 synamon.hatenablog.com ZeroMQの設計パターンについて 前回の記事で紹介し…

子オブジェクトが目的の姿勢に一致するように親オブジェクトを動かす

エンジニアの岡村です。 xR系のプロダクトやらプロトタイプやらを作っていると、タイトルの様な事をしたいなと思う事がたまにあります。 その時々にコードを適当に書いては「あれ?動かないな?」となる事が多かったので備忘録を残しておくことにしました。

Unity公式のLoggingパッケージが使い勝手が良さそう

こんにちは、エンジニアの渡辺(@mochi_neko_7)です。 先日Unity 2022 LTSがリリースされたので触っていたのですが、ふとPackageをチェックしていたところ、 Unity公式のLoggingパッケージが存在することに初めて気が付きました。 しかもドキュメントやAPI…

今更だけどYouTube LiveのメッセージをUnityで取得してみる

こんにちは、エンジニアの渡辺(@mochi_neko_7)です。 最近は趣味で専らLLM周辺の技術を触ったりプロトタイプを作ってみたりしていますが、今年のGWはずっと気になっていたAITuber*1を触っていました。 まとまってはいませんがAITuberの詳細が気になる方は…

LangChainをFastAPI経由でUnityで利用する

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 先日、LangChainというLLMを扱うPythonライブラリをDocker上で動かしてみた話を記事で紹介しました。 synamon.hatenablog.com 今回はその発展として、ローカルDocker上のLangChainを…

Unityに最適化した音声デコードライブラリを自作する上で工夫したこと

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 今回はUnityで音声データをランタイムでデコード/エンコードするライブラリを作った話を紹介します。 先日、OpenAIのChatGPTやWhisperをWebAPIで利用できるようにする話を記事で紹介…

OpenAIが公開したChatGPTとWhisperのAPIをUnityでサクッと触れるようにした

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 つい先日の2023/03/01、OpenAIがChatGPTとWhisperの新しいAPIを公開して話題になりましたね。 利用料金も1/10程度になり、気軽に利用しやすくなりました。 これらはWeb APIとして公…

Unityのアプリ上でWebAssemblyを動かしてみる

WebAssemblyのランタイムのWasmtimeをUnityにネイティブプラグインとして組み込み、Editor上で動作確認ができました。 その過程で得られたWasm周辺の知見を紹介します。

Unity 2021.3.0f1でQuest開発している時に遭遇したUIが消える不具合について

エンジニアの岡村です。 先週うぃすきーさんから障害対処の記事が出ていたので、自分も重大度としては低いですが、社内開発中に発生した不具合と、それが解決するまでの過程を作業記録として書いてみることにしました。何かの参考になれば幸いです。 結論 Un…

Enhanced Scroller × MVPパターン × UniRxを使ってUnityで高機能なScrollerをいい感じに実装する

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 現在Synamonが開発しているサービスのSYNMNでは、2DUI(uGUI)のScrollerの実装にはUnity標準のScrollRectではなく、有料アセットのEnhanced Scrollerを使用しています。*1 Scroller…

SYNMNのマルチプレイの仕組みについてちょっと紹介

本記事は Synamon Advent Calendar 2022 の5日目の記事になります。 adventar.org エンジニアの岡村です。 Synamonが現在ベータ版として提供している新しいアプリ「SYNMN」。皆さん触ってみましたか? 今回は、そんなSYNMNのマルチプレイ処理をちょっと紹介…

Addressablesの意図しない依存関係をチェックしたい

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 Synamonの新プロダクト SYNMN (読みはシナモン) synmn.app のベータ版のリリースが始まり、8月頃に記事を書いた Unity の Addressables 周りの仕組みが運用に乗り始めました。 syn…

GitHub ActionsのキャッシュをS3に移行した

GitHub公式のキャッシュ機能 GitHub公式のキャッシュ機能の問題点 tespkg/actions-cacheの採用 結果 こんにちは、エンジニアの岡村です。 このブログで何度か紹介してきましたように、弊社ではGitHub ActionsとAWSでUnityのCIを回しています。 synamon.haten…

Oculus IntegrationからQuest Proの新機能を触ってみる(視線追従)

はじめに エンジニアの松原です。運よくQuestProの発売日の直後(10/26)に届き、Quest2で積みっぱなしになっていた釣りゲームを週末やっていました。 ふと、最近Unity上でHMDを使った開発をしていないことに気づき、この機会にQuest Proの新機能に触れる目的…

Unityの設定を一括で切り替える為に作ったEditor拡張の紹介

EnvironmentContextSwitcher 主な機能 コンテキストの追加、削除 コンテキストの適用 コンテキストの定義の編集 ビルド、再生時の自動適用 C#スクリプトからのコンテキストの適用 実装 その他細かい実装の話 ContextSwitcherWindowからContextStoreを参照す…

プロジェクトをNetcode for GameObjectsのリリース版にアップデートする

はじめに エンジニアの松原です。先日Unityがマルチプレイヤーのための新しいツール群の発表をUnityの公式ブログから発表がありました。 この中に含まれるNetcode for GameObjectsに関してはこのテックブログでもいくつかの記事(その1、その2、その3、その4…

運用開始から4か月経ってから振り返るAWS&GitHub&Terraformを使ったUnity CI環境

エンジニアの岡村です。 このテックブログでは以前、AWS EC2でUnity環境を立ち上げ、GitHub ActionsのCI環境を構築する記事シリーズを投稿しました。 synamon.hatenablog.com synamon.hatenablog.com synamon.hatenablog.com synamon.hatenablog.com 今回、…

UnityのAddressablesのRemoteコンテンツ運用 - ContentCatalog

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 今回は前回の記事の続きとして、UnityのAddressablesのCatalog(Content Catalog)の詳しい紹介をします。 前回の記事はこちら。 synamon.hatenablog.com RemoteからAssetBundleをダ…

UnityのBuildSettingsウィンドウの表記とスクリプティングAPIの対応を纏めました(Unity 2021.3.0f1)

前提 ビルドプラットフォームについて Architectureの指定について Windows macOS 余談:ビルド時にプラットフォームを切り替えてもビルドスクリプト中の#if分岐は有効にならない Build Settings 一覧 Windows macOS Linux Android iOS WebGL 以上 エンジニ…