凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

Unity

Unity でボリュームレンダリングをしてみる - vol.6 ボリュームの内部

はじめに これまでいくつかボリュームレンダリングの記事を書いてきました。以下は前回の記事です。 tips.hecomi.com これまではキューブポリゴンを描画範囲として 3D テクスチャのボリュームレンダリングを行っていましたが、これだとポリゴンの内部にカメ…

Unity の Version Defines と.unitypackage インポートについて

はじめに 先日、uLipSync v3.0.2 をリリースし、asmdef の Version Defines を利用した VRM 0.X / 1.0 のパッケージのインポート状況に応じた VRM 向けコンポーネントのエラー抑制を行いました。 tips.hecomi.com ただこちら、.unitypackage 経由でインポー…

Unity でエディタ拡張向けの重い画像生成の改善をしてみた

はじめに 大分ニッチな話だと思うのですが、現在メンテしているプロジェクトで音声の解析結果を示すために画像生成を行い、それをエディタ拡張で表示して見せています。 これは Burst と Job を使って生成しているのですが、エディタ拡張の UI の体系は同期…

uLipSync の不具合修正(VRM / .NET Standard 2.0 関連)をしました

はじめに 先日 v3.0.0 をリリースした uLipSync ですが、いくつか不具合修正が来ていたため修正しました。 tips.hecomi.com VRM パッケージを読み込んでいない際にエラーが出る VRM パッケージを両方(VRM 0.X / VRM 1.0)読み込まないとならない Unity 2019…

uLipSync v3.0.0 をリリースしました

はじめに Unity でキャラクタのリップシンクを行うことのできる uLipSync v3.0.0 をリリースしました。 github.com 本エントリではアップデートの内容について解説していきます。 MFCC の計算方法修正 一番大きなアップデートは MFCC の計算方法の改善です。…

uLipSync のアルゴリズム改善を行ってみた

はじめに ずっとやろうと思っていた Unity でリップシンクを実現するアセットである uLipSync のアルゴリズムの改善を行いました。 github.com uLipSyncでは、MFCC(Mel Frequency Cepstral Coefficients)と呼ばれる特徴量を計算しています。MFCC を利用す…

HLSLToolsForVisualStudioConfigGenerator v1.1.0 をリリースしました

はじめに HLSL Tools / HLSL Tools for Visual Studio を使うと、VS Code または Visual Studio でシェーダを書く際に補完が効くようになります。 marketplace.visualstudio.com marketplace.visualstudio.com これらを Unity のプロジェクトで使用する際は …

uLipSync の新機能解説(実行時のセットアップ / タイムライン上の自動クリップ追加機能)

はじめに リリース 実行時のセットアップ SkinnedMeshRenderer 経由で指定 VRM の場合 所感 タイムライン上への自動クリップ追加 uLipSync おわりに はじめに uLipSync は Unity 上で音声データ / 音声入力をもとにリップシンクを実現するアセットです。 tip…

uLipSync で Animator を使ったリップシンクができるように更新してみた

はじめに uLipSync v2.5.1 をリリースしました。 github.com 以下の 2 点のアップデートが含まれています。 Animator の BlendTree を使ったリップシンクのサポート これまでは BlendShape 指定でしたが Animator のステートでリップシンクさせることが可能…

結婚式のプロフィールムービーを Unity で作ってみた

はじめに 私事で恐縮ですが、先日、コロナ禍で 2 年半ほど延期していた結婚式をしました。そこでのプロフィールムービー制作を Unity でやってみましたので、本記事ではそのお話をしようと思います。 過去に友人の結婚式のムービー制作を任された時は After …

uLipSync 内の AudioClip をトリミング・再生するスクリプトの解説

はじめに 今回は小ネタです。uLipSync のキャリブレーション用にオーディオデータの選択した範囲のループ再生機能を作ったのですが、その内容をまとめておきます。元記事はこちら: tips.hecomi.com 機能について こんな感じでドラッグして再生したい箇所を…

Unity の WebGL で動的にサウンドを生成・再生する方法を調べてみた

はじめに 通常、Unity で動的にサウンドを生成したいときは、AudioClip の Create で PCMReaderCallback を渡すか、MonoBehaviour の OnAudioFilterRead 中でバッファをセットすることで可能です。 docs.unity3d.com docs.unity3d.com かなり古い記事ですが…

uLipSync で 2D キャラクタ向けにテクスチャや UV を変更できるコンポーネントを作った

はじめに Unity でリアルタイム / 事前解析対応のリップシンクを行うためのプラグインである uLipSync ですが、これまでは付属スクリプトとしては BlendShape を操作するものしかありませんでした。テクスチャを使った立ち絵などをリップシンクさせたい場合…

uRaymarching の Depth Prepass 対応をした

はじめに 以前の記事で uRaymarching の URP における Depth Prepass 問題を挙げました。 tips.hecomi.com Depth Prepass が有効になっている際は、Depth は事前に DepthOnly パス(または DepthNormals パス)で出力され、実際に色を決定する ForwardLit パ…

uLipSync の Timeline エディタのパフォーマンス改善を行ってみた

はじめに 先日、uLipSync のタイムラインの機能で長いデータを割り当てるとパフォーマンスが低下する、とのコメントを頂きました。実際に 3 分程のクリップを割り当ててみると顕著にパフォーマンスが落ちています。 原因を調べてみると、どうやら波形描画に…

uRaymarching の URP 向け機能更新をしてみた(Deferred / SSAO / Decal / Clear Coat)

はじめに 前回の記事で、Deferred を始めとする URP の新機能の調査を行いました。 tips.hecomi.com 本記事ではこの調査をもとに更新した uRaymarching の各機能やどういう処理が内部的にされているか、また注意事項などを紹介します。いくつか前回の記事と…

URP に新しく追加された Deferred レンダリングなどについてざっくりと調べてみた

はじめに 先日 Unity 2021 LTS が発表されましたね。 blog.unity.com Unity 2021 には数多くの機能追加がありますが、このうちの一つが URP への Deferred Rendering の正式サポートです(実験的に以前から追加はされていたようです)。 docs.unity3d.com ド…

Unity で Timeline のカスタムトラックおよびクリップを作成して見た目をキレイにしてみた

はじめに 前々回の記事で Unity でリップシンクを行うためのアセットである uLipSync のタイムライン対応について紹介しました。 tips.hecomi.com ここでは次のように現在どのリップシンクデータを喋らせているか分かるように色々装飾しています。 本記事で…

uLipSync にアニメーションベイク機能を追加してみた

はじめに 前回は uLipSync で、リップシンクの解析結果のベイク機能の追加とタイムラインのサポートを行いました。 tips.hecomi.com 今回は、このベイク結果を元に、ブレンドシェイプを動かすアニメーションへと変換する仕組みを作りました。アニメーション…

uLipSync でリップシンクの事前計算およびタイムライン対応をしてみた

はじめに 昨年に Unity 上でリアルタイムにリップシンクを行う uLipSync というものをリリースしました。 tips.hecomi.com AudioClip の入力を Job System と Burst コンパイラを利用してリアルタイムに解析して MFCC と呼ばれる特徴量を抽出し、予めキャリ…

Unity で自作ライブラリの Package Manager / Scoped Registry 対応をしてみた

Unity Advent Calender 2021 この記事は「Unity Advent Calendar 2021」19 日目の記事です。 qiita.com 18 日目は @Azukiidxさんによる以下の記事でした。 qiita.com 私は(残念ながら非推奨になってしまった)UNET のサーバー向けに Linux 上でヘッドレスで…

uOSC v2 をリリースしました

はじめに uOSC は、Unity 向けの OSC 実装です。数ある Unity 向け OSC 実装の中でもシンプルな使い方が出来るように目指して作ったものでした。 tips.hecomi.com github.com EVMC4U を始めとし、思っていたよりも多くのプロジェクトにて使っていただいてお…

Unity で .unitypackage で配布していたアセットを Package Manager 対応してみた

はじめに 先日 Package Manager 対応のプルリクをいただいたきました。恥ずかしながら今まで Package Manger の対応およびその調査はサボってきており、あまり知識がない状態でしたので、これを機に色々と調べて配布する側としての自分なりの利用方針を決め…

Unity で DICOM 画像をレンダリングしてみる

はじめに 先日、Twitter で手持ちの DICOM 画像を以前書いたボリュームレンダリングの記事のように描画したい、というご相談をいただき試してみましたので内容を共有します。 tips.hecomi.com DICOM(ダイコム)とは「Digital Imaging and COmmunications in…

Unity で URP 向けのファーシェーダを書いてみた(動き・アニメーション連携)

はじめに 毛の連載も 4 回目になりました。これまでの記事は以下になります。 tips.hecomi.com tips.hecomi.com tips.hecomi.com これまでは風による動きを Sin 関数でそれっぽくしてましたが、今回は実際に頂点毎の動きを見て動かしてみることをやってみま…

Unity で URP 向けのファーシェーダを書いてみた(毛ポリゴン生成)

はじめに URP でのファーシェーダの実装について、シェル法とフィン法について見てきました。 tips.hecomi.com tips.hecomi.com 最後は直接ジオメトリシェーダで毛ポリゴンを生成する方法を試してみます。 デモ ライティング 3 手法の比較 左から順に、シェ…

Looking Glass Portrait を手に入れたので Unity 向けの仕組みを調べてみた

はじめに 遅ればせながら Looking Glass Portrait を手に入れました。 lookingglassfactory.com クラウドファンディング開始からしばらくして気づいてバックしたので入手できるタイミングが第一陣の方々に比べ遅くなってしまいましたが…、ようやくといった感…

Unity で URP 向けのファーシェーダを書いてみた(フィン法)

はじめに 前回の記事ではポリゴンを何層も重ねて毛を表現するシェル法を URP 向けに実装するのを試しました。 tips.hecomi.com 今回はフィン法を試してみようと思います。色々実験しながら書くのでちょっと煩雑になるかもしれませんがご了承ください。 デモ …

Unity で URP 向けのファーシェーダを書いてみた(シェル法)

はじめに 今回は書いたことのなかったファーシェーダを試してみます。コードも書きやすいのでこれからはレガシーパイプラインではなく Universal Render Pipeline(URP)メインで書いていこうかな、と思っています(HDRP は直書きが大変すぎて趣味としては辛…

Unity で Windows のウィンドウを個別にキャプチャできる uWindowCapture の高速化をしてみた

はじめに 前回の記事で Windows Graphics Capture の解説を行いました。 tips.hecomi.com 記事中でも触れたのですが、調査の目的としては OVR Toolkit などにも使われている拙作の uWindowCapture にこの API を導入するためでした。従来の設計に合わせるの…