タグ

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

  • 2024 の振り返り - 凹みTips

    はじめに 今年は業が忙しくあまり個人活動が出来ない年でした。。今年最後の記事は簡単な振り返りにさせてください。 uMicrophoneWebGL 今年唯一...作った新規のプロジェクトです。WebGL 上で UnityAPI とは非互換ですがマイク入力をリアルタイム含めて扱えるようにするためのライブラリです。 tips.hecomi.com github.com uLipSync のマイク入力によるリアルタイムなリップシンクのデモを WebGL 上でも動かせることができるように作成しました。が、まだ接続が出来ていないので来年の何処かで対応します。 uLipSync 今年は株式会社エーアイ様に A.I.VOICE for GAMES での uLipSync 対応をしていただきました。 aivoice.jp tips.hecomi.com 私の方に関しては今年は小さいアップデートやバグ

    2024 の振り返り - 凹みTips
    hecomi
    hecomi 2024/12/31
    来年もよろしくお願いいたします
  • uMicrophoneWebGL の複数チャンネル対応 - 凹みTips

    はじめに 今年はじめに Unity の WebGL ビルドでマイク入力を使えるようにするライブラリを作りました。 tips.hecomi.com ただ、次の記事にも記載したのですが、どうやら録音時に音声が遅くなってしまう(ピッチが低くなってしまう)という問題があるようです。 tips.hecomi.com 記事では、こちらの調査と修正を行った結果をまとめたいと思います。 リリース github.com 問題と対応 ピッチが低くなるのはおそらくマルチチャンネル入力のバッファをモノラルの AudioClip のバッファに入れているからかな、と当たりをつけました。ライブラリ内には 2 箇所、モノラルを前提とした処理を行ってしまっている場所があります。 AudioClip の生成 まずは録音終了時です。AudioClip.Create() での AudioClip 生成時には、引数にチャンネル数

    uMicrophoneWebGL の複数チャンネル対応 - 凹みTips
    hecomi
    hecomi 2024/11/30
  • 雑談: uLipSync と UnityFurURP の GitHub でのお気に入り数が 1000 を超えました! - 凹みTips

    はじめに 前回に引き続き、まだ諸々の事情により開発の時間が取れておりませんので GitHub の現状についての雑談記事です。 現在の状況 uRaymarching に続いて今月は uLipSync と UnityFurURP のお気に入り数が 1000 を超えました!皆さんありがとうございます。今のトップページがこんな感じになりました(嬉しい): uLipSync github.com 大昔に書いた記事でリップシンクのプラグイン作成を試みたのをきっかけに、いろいろなモデルのセットアップに対して簡単にリップシンクを適用できるように汎用的なものにしようと開発を始めたのがきっかけのライブラリです。元の記事が 2013 年、uLipSync を作り始めたのが 2021 年なのでだいぶ息の長いプロジェクトですね。 tips.hecomi.com tips.hecomi.com 最近はもっぱらこちらの

    雑談: uLipSync と UnityFurURP の GitHub でのお気に入り数が 1000 を超えました! - 凹みTips
    hecomi
    hecomi 2024/11/30
  • uLipSync が Unity 6 で動くかどうか調査してみた - 凹みTips

    はじめに 先日、Unity 6 が公開されました。 unity.com unity.com 最近はあまり時間が取れず新機能は追えてないないですが、ひとまず手持ちのライブラリを Unity 6 でテストしてみようと思い、uLipSync で試してみることにしました。作業メモとなります。 パッケージエラー解決 playablegraph visualizer アップグレードしたらまずは以下のエラー: com.unity.playablegraph-visualizer は Timeline 対応のときにデバッグ用に入れたもので、皆さんのパッケージでは含まれておりません。更新も長らくないのでサポート外となったのかもですね。 github.com Deprecated packages Deprecated パッケージのエラーが出ます。やっぱりメジャーバージョンが上がると色々ありそうですね。 Vi

    uLipSync が Unity 6 で動くかどうか調査してみた - 凹みTips
    hecomi
    hecomi 2024/10/31
    動きました
  • uLipSync 周りの今後の作業メモ - 凹みTips

    はじめに 別記事でも述べましたが、最近はちょっと時間が取れず…、更新のネタも実作業も出来ておりません。そこで現状溜めてしまっているタスクを洗い出しておこうと思います(完全に私の備忘録です)。中には素晴らしいプルリクも頂いてますので、そのあたりも今年度中には見ていきたいです。 uLipSync github.com Baked Data バッチ生成のディレクトリ構造コピー github.com こちらのプルリクでは、BakedData 生成時にディレクトリ構造もコピーすることを提案として頂いています。現状、uLipSync の BakedData のバッチ生成機構では、ディレクトリ入力の場合はその中に含まれている AudioClip 自体は再帰的に調べますが、出力先のディレクトリ直下に全ての BakedData を生成してしまいます(こちらの記事参照)。こちらは、このディレクトリ構造を保つた

    uLipSync 周りの今後の作業メモ - 凹みTips
    hecomi
    hecomi 2024/08/31
    何も開発してないのでメモ記事...
  • uLipSync の Timeline の軽量化オプションを改良してみた - 凹みTips

    はじめに 前回の記事で、Timeline で長い uLipSync クリップを表示した際のパフォーマンス問題を解決するために、Timeline でのテクスチャを非表示にする Preference の追加を紹介しました。 tips.hecomi.com ただこれだと現在どのデータを表示しているか分かりづらい、というお声をいただき別のオプションを追加してみました。 リリース github.com 紹介 テクスチャの横幅 Max Width Of Waveform Texture を調整すると生成するテクスチャの横幅を調整できます。重いときは横幅を小さい値にすることで低解像となりますが軽量にテクスチャを生成できるようになります。 2048 / 128 / 32 テクスチャの滑らかさ 普段はグラデーションで滑らかな画像を生成しているのですが、解像度を下げたときなどはちょっとボヤッとしすぎてしまいま

    uLipSync の Timeline の軽量化オプションを改良してみた - 凹みTips
    hecomi
    hecomi 2024/07/31
    書きました
  • uLipSync で Timeline の軽量化オプションを追加しました - 凹みTips

    はじめに Twitter で利用者の声を見ていたところ、Timeline に uLipSync の BakedData を配置した際に Unity が重くなったりフリーズしたりする、というものをちらほら見かけました。こちらはおそらく内部的にテクスチャ生成処理を走らせたりしている波形描画のところと思われるため、これをオフにするオプションを今回追加しました。 ダウンロード github.com 使い方 Unity > Settings... から Preference を開くと、uLipSync の項目が追加されています。 ここで Display Waveform On Timeline をオフにすると、Timeline 上で波形描画がスキップされて表示されなくなります。 おわりに 現状は今回の項目しかありませんが、適宜エディタの設定などはここに追加していこうと思います。

    uLipSync で Timeline の軽量化オプションを追加しました - 凹みTips
    hecomi
    hecomi 2024/06/29
  • A.I.VOICE for GAMES 向けの uLipSync の更新 - 凹みTips

    はじめに 前回の記事で A.I.VOICE for GAMES の uLipSync 連携機能の紹介を行いました。 tips.hecomi.com 一つだけ対応していなかったのが細かいところですが、連携機能で生成した Baked Data において Profile がセットされていないという Warning(Please set Profile)が出てしまう点でした。 ここを修正して Warning が出ないようにしました。 修正方法メモ A.I.VOICE for GAMES はローカルの Package としてインストールする方法となっていますので、Version Defines が利用可能です(.unitypackage だと利用不可ですが、Package であれば可能なようです)。 tips.hecomi.com { "name": "uLipSync.Editor", ... "

    A.I.VOICE for GAMES 向けの uLipSync の更新 - 凹みTips
  • A.I.VOICE for GAMES に uLipSync 連携機能が追加されました - 凹みTips

    はじめに このたび、株式会社エーアイ様の提供する A.I.VOICE for GAMES に uLipSync 連携の機能を追加いただきました! 【A.I.VOICE for GAMES バージョンアップ情報】 uLipSync連携による口パク情報の出力機能を追加しました。 その他バージョンアップ情報についてはお知らせをご確認ください。https://t.co/ujpzHqkTEP#アイボス— A.I.VOICE公式 (@AIVOICE_PR) 2024年4月25日 記事では、実際に使用してる流れや仕組みの解説を行いたいと思います。 デモ セリフやパラメタを入力して Apply すると、自動的に AudioClip とともにリップシンクデータ(Baked Data)が生成されるため、これを uLipSync へセットすることでリップシンクが実現できます。A.I.VOICE を導入していな

    A.I.VOICE for GAMES に uLipSync 連携機能が追加されました - 凹みTips
  • 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