タグ

hecomiのブックマーク (1,861)

  • uLipSync のバグ修正・更新についての解説 - 凹みTips

    はじめに uLipSync 周りの不具合修正を行いましたので報告となります。1 つ目の issue では WebGL ビルド時に次の 2 点が問題として報告されていました。 WebGL ビルドでリップシンクが遅れる WebGL ビルドで AudioClip 再生後に口が開いたままになる github.com また、別の issue では BlendShape の値についての報告がされていました。 現在 0 ~ 100 の値で BlendShape が計算されるが、0 ~ 1 の値で設計されたアバターにも適用したい github.com 上記 3 点について解説します。 ダウンロード 最新版は以下になります。 github.com WebGL ビルドでリップシンクが遅れる こちらはリリース記事の「タイミング調整」の項でサラッ書きましたが、Audio Sync Offset Time を利用す

    uLipSync のバグ修正・更新についての解説 - 凹みTips
    hecomi
    hecomi 2024/03/30
    ブログ書いた
  • uLipSync x WebGL における再生方法の制限について - 凹みTips

    はじめに 先日、uLipSync の WebGL ビルドでランタイム生成した際、音声は再生されるもののリップシンクしない、という報告を受けて調査をしてみました。 tips.hecomi.com 原因解説 原因としては AudioSource.PlayOneShot() の利用でした。こちらを詳しく解説していきます。 非 WebGL 向けビルドでは、MonoBehaviour.OnAudioFilterRead() や AudioSource.GetOutputData() といった API を通じて、そのタイミングで再生している音のバッファを取得することが出来ます。しかしながら、これらは一つ前の記事で触れましたが Unity のサウンド周りの仕組み及び WebGL の制約により使用することが出来ません。代わりに、WebGL ビルドでは、データから直接バッファ取得可能な AudioClip.

    uLipSync x WebGL における再生方法の制限について - 凹みTips
    hecomi
    hecomi 2024/02/18
    罠でした
  • Unity の WebGL ビルドでマイク入力を扱えるライブラリを作ってみた - 凹みTips

    はじめに Unity には Microphone というクラスがあり、これを通じてマイクの情報や入力を取得できます。しかしながら Microphone は WebGL では利用することが出来ません。 docs.unity3d.com Unity では FMOD をオーディオ周りとして利用しているようで、基的にスレッド上で動くためスレッドが(部分的にしか)利用できない WebGL とは相性がよくなく、結果的に Web Audio API をベースに自前で実装する、という選択をしたようです。その上で多くのオーディオ系 API は再実装されたものの、幾つか Web Audio API との相性が良くないものは利用不可、となっているようです。そして Microphone はごっそり「不対応」となったようですね。 私は uLipSync というリップシンクのためのライブラリを作っていまして、この中

    Unity の WebGL ビルドでマイク入力を扱えるライブラリを作ってみた - 凹みTips
  • https://forum.unity.com/threads/return-a-float-double-array-from-jslib-to-unity.1115686/

    hecomi
    hecomi 2023/12/31
  • uLipSync の WebGL 対応をしてみた - 凹みTips

    はじめに 前回調査記事を書きました。 tips.hecomi.com 今回は続きで、調査を元に実際に WebGL のサポートを行いました(マイクサポートのみまた後日)。実装しながら気づいたことや、問題に対してどのように対応したかなどについてまとめましたのでご紹介します。 ダウンロード github.com 実験と問題解決 前回は WebGL では解析の入口となっていたオーディオバッファを取得できる OnAudioFilterRead() が動作しないことから、代替手段として Web Audio API からバッファをもらってくる方式と AudioClip.GetData() によって取ってくる方式のメリット・デメリットを比較しました。前回の記事の結論としては、汎用性とコード変更性の少なさから AudioClip.GetData() を選択することにした、というものでした。 それではまずはシ

    uLipSync の WebGL 対応をしてみた - 凹みTips
    hecomi
    hecomi 2023/12/30
    思ったより大変でした
  • uLipSync の WebGL 対応を調査してみた - 凹みTips

    はじめに 過去に何度かリクエストを頂いているのですが、まだ uLipSync で対応していないことの一つに WebGL 対応があります。WebGL ではいくつかの機能が制限されており、そのまま使えない機能が多々あります。例えば現在解析に用いている OnAudioFilterRead コールバックは WebGL では利用できませんし、他にもマイクも同様に使用できません。 tips.hecomi.com こういった制約の関係で uLipSync は WebGL では現在動作しない形になっています。ただ、うえぞうさんがオーディオ再生側に関しては動作するような仕組みを作成して下さっています(ちょうど Unity 2021 以降でも動作する v0.3 がリリースされました)。 github.com 今回はマイク含め包括的にサポートを行うために、現状の問題点と使用できそうな技術調査を行います。 公式ド

    uLipSync の WebGL 対応を調査してみた - 凹みTips
  • uLipSync の VRM モデル向けリップシンクアニメーションベイクについて - 凹みTips

    はじめに id:bibinbaleo さんのブログで uLipSync を試してみていただいており、その中で VRM モデルのアニメーション書き出しについての記述がありましたので補足解説させていただきます。 bibinbaleo.hatenablog.com uLipSync についてはこちら。 github.com アニメーション書き出しについて トマシープさんの記事では uLipSyncBlendShapeVRM を試されていらっしゃいましたが、現状、uLipSync のアニメーション書き出しは残念ながら uLipSyncBlendShape のみとなっています。VRM 0.X では VRMBlendShapeProxy というコンポーネントを介して、VRM 1.0 では Expression という仕組みを介してブレンドシェイプを扱っています。uLipSync ではこれらの仕組みを利

    uLipSync の VRM モデル向けリップシンクアニメーションベイクについて - 凹みTips
    hecomi
    hecomi 2023/10/30
  • uLipSync で解析結果を使ったカスタム挙動を作るためのチュートリアル - 凹みTips

    はじめに uLipSync では AudioClip やマイクから得た音声を解析するモジュールと、その解析結果を受け取りリップシンクを動作させるためのコンポーネントが分かれています。 github.com この解析結果を受け取る部分を自作することで色々と遊ぶことができるので、記事ではそのやり方をご紹介します。 導入 いくつか方法はありますが、Package Manager から次の URL を Add package from git URL... するのが簡単だと思います。 https://github.com/hecomi/uLipSync.git#upm 直接 .unitypackage を導入する場合は Package Manager から Unity.Mathematics や Unity.Burst の導入を忘れずにおこなって下さい。その他基的な概念や機能説明は、必要に応じ

    uLipSync で解析結果を使ったカスタム挙動を作るためのチュートリアル - 凹みTips
  • Unity でボリュームレンダリングをしてみる - vol.6 ボリュームの内部 - 凹みTips

    はじめに これまでいくつかボリュームレンダリングの記事を書いてきました。以下は前回の記事です。 tips.hecomi.com これまではキューブポリゴンを描画範囲として 3D テクスチャのボリュームレンダリングを行っていましたが、これだとポリゴンの内部にカメラが入り込んだときにカリングされてしまいます。 今回は内部にカメラが入っても継続して描画できるようにするには、どのように修正を加えればよいかの解説を行います。 リポジトリ github.com 10. Inside Volume が今回の内容になります。 原因と対策 先程も触れましたが、カメラがポリゴンの内部に入り込むと、ポリゴンは描画されません。正確には、カメラのニアクリップがオブジェクトの内部に入り込むと…、なので下図のようになります。 図の赤い部分のポリゴンが表示されなくなる感じです。解決策としては、Cull Off にしてポリ

    Unity でボリュームレンダリングをしてみる - vol.6 ボリュームの内部 - 凹みTips
    hecomi
    hecomi 2023/08/27
  • Unity の Version Defines と.unitypackage インポートについて - 凹みTips

    はじめに 先日、uLipSync v3.0.2 をリリースし、asmdef の Version Defines を利用した VRM 0.X / 1.0 のパッケージのインポート状況に応じた VRM 向けコンポーネントのエラー抑制を行いました。 tips.hecomi.com ただこちら、.unitypackage 経由でインポートした際にうまく動かない、という報告をいただき調査してみました。 原因 Version Defines はパッケージのインポート状況に応じてシンボルを定義できる仕組みです。パッケージはバージョン指定も可能で、またパッケージだけではなく Unity のバージョン指定も出来ます。 docs.unity3d.com ただ、.unitypackage 経由でインストールした際、Version Defines で指定する Resource がインポートされた状態として扱われず

    Unity の Version Defines と.unitypackage インポートについて - 凹みTips
    hecomi
    hecomi 2023/07/30
  • Unity でエディタ拡張向けの重い画像生成の改善をしてみた - 凹みTips

    はじめに 大分ニッチな話だと思うのですが、現在メンテしているプロジェクトで音声の解析結果を示すために画像生成を行い、それをエディタ拡張で表示して見せています。 これは Burst と Job を使って生成しているのですが、エディタ拡張の UI の体系は同期処理となるため、現状では Job を即時実行・回収することで、同期処理系となってしまっています。 tips.hecomi.com 今回はここを何とかしようと試みたお話を共有します。内容はテクスチャ生成ですが、それ以外にも重い処理を行うようなエディタ拡張のヒントになるかと思います。 コードと問題点 具体的に以下のようなコードを想定してみましょう。 AsyncTextureCreator.cs using UnityEngine; public class AsyncTextureCreator : MonoBehaviour { publi

    Unity でエディタ拡張向けの重い画像生成の改善をしてみた - 凹みTips
    hecomi
    hecomi 2023/06/29
  • Apple Vision Pro「やばい」。掛け値なしに驚きの体験、実機レポート【西田宗千佳のRandomTracking】

    Apple Vision Pro「やばい」。掛け値なしに驚きの体験、実機レポート【西田宗千佳のRandomTracking】
    hecomi
    hecomi 2023/06/07
  • uLipSync の不具合修正(VRM / .NET Standard 2.0 関連)をしました - 凹みTips

    はじめに 先日 v3.0.0 をリリースした uLipSync ですが、いくつか不具合修正が来ていたため修正しました。 tips.hecomi.com VRM パッケージを読み込んでいない際にエラーが出る VRM パッケージを両方(VRM 0.X / VRM 1.0)読み込まないとならない Unity 2019 でエラーが出る 古い Timeline アセットを読み込んでいる際にエラーが出る エントリでは修正についてのメモと、ついでなので改めて VRM でのセットアップ方法について解説を行いたいと思います。 最新リリース github.com VRM のセットアップ方法 uLipSync のインポート uLipSync のインポートの方法は 3 種類ありますが、お手軽なのは git URL かな?と思います(個人的なオススメは Scoped Registry 登録ですが)。VRM 関連の

    uLipSync の不具合修正(VRM / .NET Standard 2.0 関連)をしました - 凹みTips
  • uLipSync v3.0.0 をリリースしました - 凹みTips

    はじめに Unity でキャラクタのリップシンクを行うことのできる uLipSync v3.0.0 をリリースしました。 github.com エントリではアップデートの内容について解説していきます。 MFCC の計算方法修正 一番大きなアップデートは MFCC の計算方法の改善です。これに関しては前回のブログ記事で解説しました。 tips.hecomi.com 端的に言うと、これまでの MFCC は計算方法が間違っていたため、正しくなるよう世の中一般のライブラリによる値と比較しながら修正を行った、という形です。ただし精度が劇的に上がった、というわけではありませんでした。。以前もそれっぽい特徴量を得られており判別は出来ていたようです。 また、これまでは 12 個ある MFCC の比較は各係数の差分の絶対値を足した L1 距離(マンハッタン距離)のみでしたが、新たに Profile で指定

    uLipSync v3.0.0 をリリースしました - 凹みTips
    hecomi
    hecomi 2023/04/29
    書きました
  • uLipSync のアルゴリズム改善を行ってみた - 凹みTips

    はじめに ずっとやろうと思っていた Unity でリップシンクを実現するアセットである uLipSync のアルゴリズムの改善を行いました。 github.com uLipSyncでは、MFCC(Mel Frequency Cepstral Coefficients)と呼ばれる特徴量を計算しています。MFCC を利用することで音声信号から音素の違い(母音や子音など)や楽器の音色の違いを区別することができ、音声認識音楽情報検索など、様々な音声・音楽処理タスクで広く利用されています。Python 環境では Librosa などのライブラリを使って MFCC は簡単に計算することが出来ます。 一方 uLipSync では、Unity 内でネイティブプラグインなどに頼らず JobSystem + Burst コンパイラの助けを借りて高速に処理したいコンセプトがある関係上、こういったライブラリに頼

    uLipSync のアルゴリズム改善を行ってみた - 凹みTips
  • ChatGPT plugins

    We’ve implemented initial support for plugins in ChatGPT. Plugins are tools designed specifically for language models with safety as a core principle, and help ChatGPT access up-to-date information, run computations, or use third-party services. In line with our iterative deployment philosophy, we are gradually rolling out plugins in ChatGPT so we can study their real-world use, impact, and safety

    ChatGPT plugins
  • How to remove Yellow Boarder Capture Indicator from Windows.Graphics.Capture-ing (for desktop targeted applications) - Microsoft Q&A

    hecomi
    hecomi 2023/02/26
  • HLSLToolsForVisualStudioConfigGenerator v1.1.0 をリリースしました - 凹みTips

    はじめに HLSL Tools / HLSL Tools for Visual Studio を使うと、VS Code または Visual Studio でシェーダを書く際に補完が効くようになります。 marketplace.visualstudio.com marketplace.visualstudio.com これらを Unityプロジェクトで使用する際は lshadertoolsconfig.json という設定ファイルを作成し、Unity がシェーダ内で暗黙的にパス解決してくれている部分を補助してあげる記述をする必要があります(どのディレクトリを Include するか記述するなど)。この設定ファイルの作成及びパス解決の補助を簡単にするためのエディタ拡張として、以前 HLSLToolsForVisualStudioConfigGenerator というものを作成しました。

    HLSLToolsForVisualStudioConfigGenerator v1.1.0 をリリースしました - 凹みTips
    hecomi
    hecomi 2023/02/25
    ShaderLab の補完も効くと嬉しいのですが...
  • uLipSync の新機能解説(実行時のセットアップ / タイムライン上の自動クリップ追加機能) - 凹みTips

    はじめに リリース 実行時のセットアップ SkinnedMeshRenderer 経由で指定 VRM の場合 所感 タイムライン上への自動クリップ追加 uLipSync おわりに はじめに uLipSync は Unity 上で音声データ / 音声入力をもとにリップシンクを実現するアセットです。 tips.hecomi.com 今回は要望を頂いていた以下の 2 つの機能追加・サンプル更新をしましたので解説します。 実行時にセットアップしたい Timeline でのリップシンククリップ配置を簡単にしたい リリース v2.6.0 をリリースしました。 github.com 実行時のセットアップ 例えば VRM をロードしてそこにコンポーネントをセットアップしたい場合、これまでは API が足りておらず自前で頑張る必要がありました。これを解決するために、いくつか API を生やし、それらを使うサ

    uLipSync の新機能解説(実行時のセットアップ / タイムライン上の自動クリップ追加機能) - 凹みTips
    hecomi
    hecomi 2023/01/06
    久しぶりに月末以外に書きました
  • uLipSync で Animator を使ったリップシンクができるように更新してみた - 凹みTips

    はじめに uLipSync v2.5.1 をリリースしました。 github.com 以下の 2 点のアップデートが含まれています。 Animator の BlendTree を使ったリップシンクのサポート これまでは BlendShape 指定でしたが Animator のステートでリップシンクさせることが可能になります VRM の Expression 指定によるリップシンクのサポート VRM の BlendShape ではなく Expression で指定できるコンポーネントが追加されました それぞれ PR を頂きました、ありがとうございます。 github.com github.com 記事では、これらのうち、ちょっと解説が必要な Animator 利用についてセットアップの方法やユースケースについての解説を行おうと思います。uLipSync そのものの使い方については以下の記事

    uLipSync で Animator を使ったリップシンクができるように更新してみた - 凹みTips
    hecomi
    hecomi 2022/12/28
    PRありがとうございました!