Skip to content

routersys/YMM4-SpaceAudio

Repository files navigation

SPACE AUDIO for YMM4

License .NET Release

Important

v2.0.0 より、音響エンジンが全面的に刷新されました。
本バージョンでは幾何学的反射エンジン・ルームモード周波数に基づく FDN ディレイ計算・バイノーラル HRTF 近似・高品質モードでの畳み込みリバーブが新たに導入されています。 これにより残響の密度・空間的な定位・高周波の自然な減衰が大幅に改善され、以前のバージョンと比較して出力音が変化します。 既存のプロジェクトへ適用する際は音量・残響バランスを再確認してください。


YukkuriMovieMaker4(YMM4)上で動作する、物理音響モデルに基づくルームリバーブシミュレーター音声エフェクトプラグインです。 初期反射エンジン・フィードバックディレイネットワーク(FDN)・周波数帯域別素材吸収係数・バイノーラル HRTF 近似・音源 / リスナー配置・カスタム形状ジオメトリといった要素を組み合わせ、仮想空間における残響を多角的にシミュレートします。 さらに、インタラクティブな 3D ルームエディタ・カスタム形状エディタ・カスタムマテリアル管理・プリセット管理・YMM4 アニメーション完全統合を備え、映像制作における音声演出の幅を大幅に広げます。

SPACE AUDIO Screenshot


目次

  1. 概要
  2. 動作要件
  3. インストール方法
  4. 主な機能
  5. パラメータ一覧
  6. 使い方ガイド
  7. 技術的な実装詳細
  8. 注意事項
  9. 免責事項
  10. ライセンス

概要

本プラグインは YMM4 の音声エフェクトとして動作するルームリバーブシミュレーターです。 音源とリスナーを 3D 空間内に配置し、部屋の寸法・形状・壁素材・残響パラメータを組み合わせることで、実空間に近い残響感を音声に付加できます。

Warning

完全な物理シミュレーション(多重回折・透過など)ではありません。

全パラメータは YMM4 のアニメーションシステムと完全に統合されており、部屋の寸法・音源位置・残響時間にいたるまで、タイムライン上でキーフレームアニメーションを設定できます。


動作要件

項目 要件
OS Windows 10 / 11 (64bit)
YukkuriMovieMaker4 最新版を推奨
ランタイム .NET 10.0

インストール方法

  1. リリースページから最新の SpaceAudio プラグインファイル(.ymme)をダウンロードしてください。
  2. YMM4 が起動していないことを確認し、ダウンロードしたファイルを実行(ダブルクリック)してインストールします。
  3. YMM4 を起動し、音声エフェクトの追加ダイアログを開きます。
  4. 「エフェクト」グループの中に 「スペースオーディオ」 が追加されていますので、それを選択してください。

主な機能

1. 音響エンジン

物理音響モデルに基づく 2 段階のリバーブ構造を実現します。 処理品質の設定により使用するエンジンが切り替わります。

初期反射エンジン

処理品質が「スタンダード」以上のとき、幾何学的反射エンジンが使用されます。

  • 最大32本の反射パスをリアルタイムに計算します。
  • 1 次反射:各面の鏡像点から音源の鏡像を求め、リスナーへの直接パスを計算します。
  • 2 次反射(スタンダード・高品質のみ):2 つの面の組み合わせで生じる反射パスを追加計算します。
  • 高品質モード:BVHツリーを用いたレイキャストにより、2 次反射の遮蔽判定を行います。
  • バイノーラル HRTF 近似(スタンダード・高品質のみ):頭部半径 0.085 m をもとに左右それぞれの耳への到達距離を個別に計算し、両耳間レベル差を模擬します。
  • エコノミーモード:単純な定位角に応じた左右ゲイン配分を用います。
  • 各反射タップには一次 IIR フィルタが設けられており、素材の高域減衰特性と距離に応じた追加減衰を加えます。
  • ディレイタイムはフレーム間をスムージングし、パラメータ変化時の瞬時ジャンプを防ぎます。

エコノミーモード時はルーム形状に応じた固定鏡像点から反射を生成します。

フィードバックディレイネットワーク(FDN)

高密度な後期残響を生成します。

  • 8 ラインの独立したディレイラインと ハダマール行列混合(1/√8 スケーリング)による均質な混合を実現します。
  • 各ラインには一次 IIR ローパスが接続されており、高周波の自然な吸収を模擬します。
  • スタンダード・高品質:部屋の寸法からルームモード周波数を計算し、各モードの周期をディレイ長として使用します。
    使用するモード:(1,0,0), (0,1,0), (0,0,1), (1,1,0), (1,0,1), (0,1,1), (1,1,1), (2,0,0)
    各ラインは素数に近い値になるよう補正されます。
  • 高品質:各ラインのモード周波数に基づいた周波数依存ダンピングを適用します(モード周波数が高いほどダンピングが増加)。
  • エコノミー:部屋の体積の立方根でスケーリングしたフォールバック素数ディレイ長を使用します。
  • ディレイ長は補間付きで滑らかに変化します。
  • 出力は 4 本の AllPassFilter(2系統 × 2段直列)で拡散処理を行い、エコー密度を調整します。

畳み込みリバーブ(高品質モードのみ)

高品質モードでは、FDN によるリアルタイム処理に加え、インパルス応答(IR)を非同期生成し OLA 畳み込みを適用します。

  • IR 長さ:2.0 秒(サンプルレート × 2.0)
  • IR 生成は AsyncIrPipeline によりバックグラウンドスレッドで行われます。生成中は FDN によるリアルタイム処理が継続されます。
  • OlaConvolver のブロックサイズ:1024 サンプル
  • IR が利用可能になると自動的に切り替わり、以降のブロックは畳み込みパスで処理されます。
  • FFT は 自前実装を使用し、AVX / SSE / FMA 命令セットによる SIMD 最適化が施されています。

プリディレイ

音源とリスナー間の距離から物理的な到達時間を計算し、ユーザー設定の「プリディレイ」値と合算します。 プリディレイの変化は 50 ms の時定数でスムージングされ、音のクリックを防ぎます。

HF ダンピング

2 段カスケード一次ローパスフィルタにより空気吸収による高域減衰をシミュレートします。 カットオフ周波数:0.45 × (1.0 - HfDamping × 0.8)(正規化周波数)


2. ルーム形状

ルーム形状は 3D ビューの見た目だけでなく、初期反射の生成パターンと FDN のスケーリングに影響します。 「カスタム」を選択した場合は、カスタム形状エディタで定義した任意のジオメトリを使用します。

形状 説明
矩形 標準的な直方体。汎用的なルームリバーブに最適です。
L字型 間仕切りのある空間を想定。非対称な反射パターンが生まれます。幅の 1/2・奥行きの 1/2 の位置に折れ曲がりが入ります。
大聖堂 高い天井と長い残響を持つ大型空間。天井高が通常の 1.5 倍スケール・天井吸収が半減し、スケールと拡散が増強されます。
スタジオ 吸音処理された閉鎖空間を想定。壁吸収が 1.5 倍・天井吸収が 1.5 倍に強化され、残響が短く締まった音になります。
カスタム カスタム形状エディタで作成した任意のポリゴンジオメトリを使用します。面ごとに異なる素材を割り当てられます。

3. 壁素材と周波数帯域別吸音率

壁・床・天井それぞれに異なる素材を設定できます。 各素材は 6帯域(125 Hz・250 Hz・500 Hz・1 kHz・2 kHz・4 kHz)の吸音率データを保持しており、これらの値が音響処理に直接反映されます。

ブロードバンド吸音率(6 帯域平均)と帯域別特性

素材 125 Hz 250 Hz 500 Hz 1 kHz 2 kHz 4 kHz ブロードバンド
コンクリート 0.010 0.010 0.015 0.020 0.020 0.020 0.016
木材 0.150 0.110 0.100 0.070 0.060 0.070 0.093
ガラス 0.350 0.250 0.180 0.120 0.070 0.040 0.168
カーペット 0.020 0.060 0.140 0.370 0.600 0.650 0.307
吸音パネル 0.280 0.550 0.800 0.900 0.850 0.800 0.697
レンガ 0.030 0.030 0.030 0.040 0.050 0.070 0.042
石膏ボード 0.290 0.100 0.050 0.040 0.070 0.090 0.107
タイル 0.010 0.010 0.015 0.020 0.020 0.020 0.016

スペクトルダンピングの計算

各素材の帯域別吸音率からスペクトルダンピング係数が自動計算されます。 これは低域反射率(125 Hz・250 Hz の幾何平均)と高域反射率(2 kHz・4 kHz の幾何平均)の比から求められ、FDN の各ラインのダンピングと初期反射タップフィルタに反映されます。

カスタムマテリアルの使用

マテリアル管理機能で独自の素材を定義した場合、そのカスタム素材を壁・床・天井に割り当てることができます。 カスタム素材も 6 帯域の吸音率を個別に設定可能です。


4. カスタム形状エディタ

「部屋の形状」をカスタムに設定すると、任意のポリゴンジオメトリで部屋を定義できます。

エディタで編集できる要素

  • 頂点:3D 空間内の点。X・Y・Z 座標をスライダーで編集します。座標は部屋の寸法(幅・高さ・奥行き)の範囲内にクランプされます。
  • :頂点インデックスの順序付きリストで定義されるポリゴン。各面に素材を割り当てられます。
  • 素材:面ごとに異なる吸音特性を持つ素材を割り当てられます。

形状プリセット

エディタにはすぐに使える 6 種類の形状プリセットが内蔵されています。

プリセット名 説明
箱形 標準的な直方体(6 面)
L字型 L 字型(8 面)
大聖堂 ゴシック風アーチ型天井(7 面)
スタジオ 傾斜天井付き直方体(6 面)
T字型 T 字型(10 面)
U字型 U 字型(10 面)

頂点編集

  • 単一頂点選択:リストまたは 3D ビューのクリックで選択。X・Y・Z スライダーで座標を変更します。
  • 複数頂点選択:Shift / Ctrl + クリック、またはリストの複数選択で多頂点を同時に選択。「デルタ X / Y / Z」スライダーで選択頂点を一括移動できます。Shift キーを押しながら操作すると移動方向が反転します。
  • 軸ロック:3D ビューでの頂点ドラッグ中に X / Y / Z キーを押すと、その軸方向のみに移動を制限できます。
  • グリッドスナップ:グリッド表示が有効なとき、頂点ドラッグがグリッドにスナップします。
  • 追加 / 削除:「頂点追加」ボタンで現在のジオメトリの重心に新頂点を追加、「頂点削除」で選択頂点を削除します(その頂点を含む面も同時に削除されます)。

面編集

  • 追加 / 削除:面の追加・削除ができます。
  • 頂点メンバーシップ:選択した面に含める頂点をチェックボックスで管理します。各頂点の面内での順序を上下ボタンで変更できます(順序は法線方向と面の正しい描画に影響します)。
  • 素材割り当て:面ごとにジオメトリ内の素材を選択できます。

アンドゥ / リドゥ

Ctrl+Z でアンドゥ、Ctrl+Y または Ctrl+Shift+Z でリドゥができます。 操作前に自動的にスタックにプッシュされます。

グリッド・寸法表示

  • グリッド表示:3D ビューにグリッドを重ねて表示します。
  • 寸法表示:各辺の長さをリアルタイムに 3D ビューに表示します。カスタム形状の場合は全エッジの長さが表示されます。

設計図のエクスポート / インポート

  • エクスポート:現在のジオメトリを A4 サイズの PNG 画像として出力します。平面図・正面図・側面図の三面図形式で描画され、各辺に寸法線が自動配置されます。PNG ファイルには JSON データが PNG メタデータ(tEXt チャンク)と、画像右上の視覚的バーコード(FNV-1a ハッシュ + GZip 圧縮 JSON)の両方として埋め込まれます。
  • インポート:エクスポートした PNG ファイルからジオメトリデータを復元します。メタデータが読み取れない場合は視覚的バーコードから復元を試みます。

ジオメトリの保存・読み込み

作成した形状を .srg ファイルとして保存し、別のエフェクトから読み込んで再利用できます。 保存先はプラグイン実行ファイルと同じディレクトリの geometries フォルダです。


5. カスタムマテリアル管理

「マテリアル管理」からオリジナルの素材を作成・編集・削除できます。

編集できる項目

項目 説明
名前 素材の表示名
帯域別吸音率 125 Hz・250 Hz・500 Hz・1 kHz・2 kHz・4 kHz の各帯域の吸音率(0〜0.99)
ブロードバンド吸音率 6 帯域の平均値(自動計算・読み取り専用表示)
表示色 3D ビュー上での素材色

操作

  • 追加:新規素材を作成します(デフォルト名「新規素材」)。
  • 更新:編集内容を選択中の素材に適用します。
  • 複製:選択した素材をコピーして新規作成します(名前に「(コピー)」が付加されます)。
  • 削除:選択した素材を削除します(組み込み素材は削除できません)。
  • 並び替え:上下ボタンでカスタム素材の表示順を変更できます(組み込み素材は移動不可)。

組み込み素材(コンクリート・木材・ガラス・カーペット・吸音パネル・レンガ・石膏ボード・タイル)は削除できませんが、同一 ID で上書き保存することで特性を変更することが可能です。

マテリアルデータはプラグインの実行ファイルと同じディレクトリの materials.json に保存されます。


6. インタラクティブな 3D ルームエディタ

ソフトウェアレンダリングによる 3D ビューを搭載しています。パースペクティブ投影・ポリゴン裏面カリング・近平面クリッピングを実装し、任意の視点から部屋・音源・リスナーの配置を視覚的に確認・編集できます。

3D ビューの描画要素

  • ルーム形状:各面を素材カラーで半透明塗りつぶし、輪郭線を描画します。カスタム形状モードでは面ごとの素材色が反映されます。
  • 音源マーカー「S」:赤橙色の円形マーカー。選択時は明るくなります。
  • リスナーマーカー「L」:緑色の円形マーカー。選択時は明るくなります。
  • パスライン:音源からリスナーへの直線(破線)。
  • 情報オーバーレイ:左上に部屋の寸法・体積・音源〜リスナー距離・RT60・ドライ / ウェット比をリアルタイム表示します。
  • 軸インジケーター:左下に X(赤)・Y(緑)・Z(青)軸の向きを表示します。

カメラ操作

操作 動作
左ドラッグ(空間部分) カメラを回転(ヨー・ピッチ)
右ドラッグ カメラをパン(平行移動)
マウスホイール ズームイン・アウト
+ ボタン ズームイン(距離 × 0.85)
ボタン ズームアウト(距離 × 1.18)
T ボタン 上面図(Pitch 89°)
F ボタン 正面図(Yaw 0°・Pitch 5°)
S ボタン 側面図(Yaw 90°・Pitch 5°)
R ボタン ビューをリセット(Yaw -30°・Pitch 25°・距離 18m)
エディタ右下をドラッグ エディタの高さを変更(80〜800 px)。設定は永続化されます。

マーカー操作

操作 動作
「S」マーカーをドラッグ 音源の X・Y・Z 位置を変更
「L」マーカーをドラッグ リスナーの X・Y・Z 位置を変更

マーカーのヒット判定半径は 14 px。両マーカーが重なっている場合は「S」が優先されます。 カスタム形状モードでは、マーカーの移動がジオメトリのポリゴン内に制限されます。

右クリックコンテキストメニュー

3D ビュー上で右クリックすると以下の操作が行えます。

メニュー項目 動作
部屋形状を編集… カスタム形状エディタを開く
マテリアル管理… マテリアルマネージャーを開く
ジオメトリの読み込み 保存済みジオメトリの一覧から読み込む
音源位置リセット 音源を初期位置(X:2・Y:1.5・Z:3 m)に戻す
リスナー位置リセット リスナーを初期位置(X:6・Y:1.5・Z:3 m)に戻す
音源を中央に配置 音源を部屋の 1/4 × 1/2 × 1/2 の位置に移動
リスナーを中央に配置 リスナーを部屋の 3/4 × 1/2 × 1/2 の位置に移動
音源とリスナーを入れ替え 音源とリスナーの座標を入れ替える
ビューオプション 上面図・正面図・側面図・リセットのサブメニュー

7. 音源 / リスナー配置

音源とリスナーはそれぞれ X・Y・Z 座標で配置します。 座標は部屋の寸法(幅・高さ・奥行き)の範囲内に自動クランプされます。

カスタム形状使用時はさらに以下の制約が適用されます。

  • XZ 平面クランプ:音源・リスナーがジオメトリのポリゴン外に出た場合、最も近い内点にクランプされます。
  • Y 軸クランプ:現在の XZ 座標における床高さ〜天井高さの範囲内に Y 座標がクランプされます。
  • 移動衝突判定:アニメーション更新時には移動パスが壁と交差しないよう制限されます。

音源〜リスナー間の距離は反射の到達時間・方向・ゲインに影響します。各座標は YMM4 のアニメーションシステムに対応しており、音源が動くような演出も可能です。


8. リバーブパラメータ

パラメータ グループ 範囲 説明
空間設定 1〜50 m 部屋の幅
高さ 空間設定 1〜20 m 部屋の高さ
奥行き 空間設定 1〜50 m 部屋の奥行き
部屋の形状 空間設定 矩形 / L字型 / 大聖堂 / スタジオ / カスタム ルーム形状タイプ
ドライ / ウェット ミックス 0〜1 原音とエフェクト音の混合比
音源 X 音源 0〜50 m 音源の X 座標
音源 Y 音源 0〜20 m 音源の Y 座標(高さ)
音源 Z 音源 0〜50 m 音源の Z 座標(奥行き)
リスナー X リスナー 0〜50 m リスナーの X 座標
リスナー Y リスナー 0〜20 m リスナーの Y 座標(高さ)
リスナー Z リスナー 0〜50 m リスナーの Z 座標(奥行き)
プリディレイ リバーブ 0〜200 ms 直接音と初期反射の時間的分離(物理到達時間に加算)
残響時間 リバーブ 0.1〜10 s 残響の減衰時間(RT60)
高域減衰 リバーブ 0〜1 高周波の減衰量(空気吸収のシミュレーション)
拡散 リバーブ 0〜1 残響の拡散度(オールパスフィルタのゲインを制御)
初期反射レベル リバーブ −40〜+6 dB 初期反射音のレベル
残響レベル リバーブ −40〜+6 dB 後期残響音のレベル
壁素材 マテリアル 素材一覧から選択 壁面の素材
床素材 マテリアル 素材一覧から選択 床面の素材
天井素材 マテリアル 素材一覧から選択 天井面の素材

音源・リスナー座標、部屋の寸法、リバーブパラメータ(プリディレイ・残響時間・高域減衰・拡散・初期反射レベル・残響レベル・ドライ / ウェット)はすべて YMM4 のアニメーションキーフレームに対応しています。


9. 処理品質設定

歯車アイコンの設定画面から 3 段階の処理品質を選択できます。

品質 初期反射エンジン FDN ディレイ計算 バイノーラル HRTF 2 次反射 BVH 遮蔽判定 周波数依存ダンピング 畳み込みリバーブ ステレオ幅
エコノミー EarlyReflection(最大 24 本・単純パン) 体積スケール素数 0.8
スタンダード Geometric(最大 32 本・バイノーラル) ルームモード周波数 1.0
高品質 Geometric(最大 32 本・バイノーラル) ルームモード周波数 ✓(OLA 畳み込み) 1.2

高品質モードは精度が向上しますが CPU 負荷が増加します。多数の音声アイテムに適用する際はご注意ください。


10. アニメーション完全統合

全パラメータは YMM4 のアニメーションシステムと統合されています。

  • アニメーションが設定されている場合、フレームごとにパラメータを補間し、リアルタイムにリバーブエンジンを再設定します。
  • アニメーションが設定されていない場合はブロック単位で処理され、不要な再設定コストを回避します。
  • プリディレイ・FDN ディレイ長・初期反射ディレイはそれぞれ独立したスムージングで補間されるため、パラメータ変化時の瞬時ノイズを防ぎます。

11. プリセット管理システム

現在のルーム設定をプリセットとして保存・読み込みできます。

  • プリセットファイルは SARP マジックバイト + フォーマットバージョン + CRC32 チェックサム付きのバイナリ形式(.sap)で保存されます。
  • データ破損時は .bak ファイルからの自動復元を試みます。
  • 新規エフェクト追加時に自動適用するデフォルトプリセットを設定画面から指定できます。
  • ファイル書き込みは一時ファイル経由の原子的書き込みで行われ、書き込み中断によるデータ破損を防ぎます。

プリセットの保存場所:プラグインの実行ファイルと同じディレクトリ内の presets フォルダ
(YMM4 のプロジェクトファイルには保存されません)

プリセットの操作方法

操作 動作
ドロップダウンをクリック プリセット一覧を表示
プリセットをダブルクリック プリセットを読み込む
「保存」ボタン 現在の設定をプリセットとして保存(名前を入力)
プリセットを右クリック 名前変更・削除のコンテキストメニュー

12. 出力保護

後段処理として以下の保護機構を備えています。

  • ソフトクリッパー:±24.0 を超える信号を線形クリッピングします(NaN・Infinity も 0 に置換)。
  • ピークリミッター:±24.0 を超える信号を線形クリッピングします(NaN・Infinity も 0 に置換)。
  • ステレオワイドナー:ミッド / サイド(M/S)処理によるステレオ幅の調整を行います。幅は処理品質によって自動設定されます(エコノミー: 0.8、スタンダード: 1.0、高品質: 1.2)。

13. エフェクトラベルの動的表示

タイムライン上のエフェクトアイテムのラベルが現在の設定を反映してリアルタイムで更新されます。

スペースオーディオ - {幅}x{高さ}x{奥行き}m RT60:{残響時間}s

例:スペースオーディオ - 8x3x6m RT60:1.5s


14. タイムラインオーバーレイ

3D ビュー下端にタイムラインオーバーレイが表示されます。

  • カーソルを 3D ビュー下部のホバーゾーンに近づけるとタイムラインバーが拡大表示されます。
  • バーをクリック・ドラッグして再生位置をシークすると、3D ビューがその時刻のパラメータで更新されます。
  • シーク中はタイムコード(HH:MM:SS:FF 形式)のツールチップが表示されます。
  • 再生中はリアルタイムに現在フレームを追従します。

パラメータ一覧

空間設定グループ

パラメータ名 範囲 デフォルト値 アニメーション
Animation 1〜50 m 8.0 m
高さ Animation 1〜20 m 3.0 m
奥行き Animation 1〜50 m 6.0 m
部屋の形状 Enum 矩形 / L字型 / 大聖堂 / スタジオ / カスタム 矩形

ミックスグループ

パラメータ名 範囲 デフォルト値 アニメーション
ドライ / ウェット Animation 0〜1 0.3

音源グループ

パラメータ名 範囲 デフォルト値 アニメーション
X座標 Animation 0〜50 m 2.0 m
Y座標 Animation 0〜20 m 1.5 m
Z座標 Animation 0〜50 m 3.0 m

リスナーグループ

パラメータ名 範囲 デフォルト値 アニメーション
X座標 Animation 0〜50 m 6.0 m
Y座標 Animation 0〜20 m 1.5 m
Z座標 Animation 0〜50 m 3.0 m

リバーブグループ

パラメータ名 範囲 デフォルト値 アニメーション
プリディレイ Animation 0〜200 ms 20.0 ms
残響時間 Animation 0.1〜10 s 1.5 s
高域減衰 Animation 0〜1 0.5
拡散 Animation 0〜1 0.7
初期反射レベル Animation −40〜+6 dB −3.0 dB
残響レベル Animation −40〜+6 dB −6.0 dB

マテリアルグループ

パラメータ名 デフォルト値
壁素材 素材 ID (string) 石膏ボード
床素材 素材 ID (string) 木材
天井素材 素材 ID (string) 石膏ボード

使い方ガイド

基本的な使用フロー

  1. YMM4 のタイムライン上で音声アイテムを選択し、エフェクトの追加を行います。
  2. 「エフェクト」グループから 「スペースオーディオ」 を選択します。
  3. エフェクトのプロパティパネルに 3D ルームエディタが表示されます。
  4. 「空間設定」タブで部屋の寸法・形状をパラメータスライダーで設定します。
  5. 3D ビュー上で「S」マーカー(音源)と「L」マーカー(リスナー)をドラッグして配置します。
  6. 「リバーブ」タブで残響パラメータを調整し、目的の空間感を作ります。
  7. 「素材」タブで壁・床・天井の素材を選択します。
  8. 「ミックス」グループのドライ / ウェット スライダーで原音とエフェクト音のバランスを設定します。

カスタム形状を使用する場合

  1. 「空間設定」タブの「部屋の形状」で「カスタム」を選択します。
  2. 3D ビューを右クリックし「部屋形状を編集…」を選択します。
  3. カスタム形状エディタで頂点・面を編集、または形状プリセットを選択します。
  4. 「適用」ボタンをクリックするとエフェクトに反映されます。

カスタム素材を使用する場合

  1. 3D ビューを右クリックし「マテリアル管理…」を選択します。
  2. 「マテリアル追加」で新規素材を作成し、6 帯域の吸音率と表示色を設定します。
  3. 「更新」ボタンで保存します。
  4. 「素材」タブの壁・床・天井ドロップダウンから作成した素材を選択します。

プリセットの使い方

  1. 3D エディタ上部のドロップダウンをクリックします。
  2. 一覧から適用したいプリセットをダブルクリックします。
  3. 現在の設定を保存するには「保存」ボタンをクリックし、プリセット名を入力してください。
  4. プリセットの削除・名前変更は右クリックのコンテキストメニューから行えます。

設定画面

歯車アイコンから開く設定画面では、以下の項目を変更できます。

  • 処理品質:エコノミー / スタンダード / 高品質を選択します。
  • デフォルトプリセット:新規エフェクト追加時に自動で読み込むプリセットを指定します。
  • プリセット管理:プリセットの一覧確認・削除が行えます。

技術的な実装詳細

音響エンジン

  • GeometricReflectionEngine:最大 32 本の反射パスを計算。BVH ツリーによる高速レイキャスト、バイノーラル HRTF 近似(頭部半径 0.085 m)、ILD 模擬、スペクトルダンピングフィルタ(ReflectionTapFilter)。
  • EarlyReflectionEngine(エコノミー):最大 24 本の鏡像点ベース反射を計算。ルーム形状ごとに固定された鏡像点パターンを使用。
  • FeedbackDelayNetwork:8 ライン FDN・ハダマール行列混合(1/√8 スケール)・ルームモード周波数ベースのディレイ計算・補間付き可変ディレイ・4 段オールパスフィルタ拡散。
  • AsyncIrPipeline:バックグラウンドスレッドで 2 秒 IR を生成し OlaConvolver に非同期投入。
  • OlaConvolver:1024 サンプルブロックの OLA 畳み込み。左右チャンネル独立 FFT スペクトル。AVX / SSE / FMA 命令セットによる SIMD 最適化。
  • CooleyTukeyFft:自前実装 Cooley-Tukey FFT。AVX / SSE / FMA SIMD 対応。
  • LowPassOnePoleCascade:2 段一次 IIR ローパスフィルタ。
  • StereoWidener:M/S 処理によるステレオ幅調整。
  • DampingFilter:一次 IIR ローパスフィルタ(FDN ライン用)。
  • AllPassFilter:シュレーダーオールパスフィルタ(拡散用)。
  • DelayLine:2 の冪乗サイズのリングバッファ。GC ピン止め配列・補間読み出し対応。
  • ReflectionTapFilter:反射タップごとの一次 IIR フィルタ(素材スペクトルダンピング + 距離依存減衰)。

幾何学処理

  • FaceBvhTree:ポリゴン面の BVH ツリー。SAH(Surface Area Heuristic)なしの単純中央分割。Möller–Trumbore 交差判定・ポリゴン内点判定。
  • RoomGeometry:頂点・面・素材の保持。FacePlane キャッシュ(遅延計算)・体積・表面積計算・XZ 投影クランプ・RayCastXZ・GetYBoundsAtXZ。
  • FacePlane:面の平面方程式(法線 + D 値)・点の反射・距離計算。
  • GeometryVertex:3D 頂点の演算(加減算・スケール・内積・外積・正規化)。

インフラストラクチャ

  • ゼロアロケーション設計ArrayPool<float> によるバッファ再利用・GC.AllocateArray<float>(size, pinned: true) によるピン止め配列。
  • アトミックファイル書き込み:一時ファイル経由の File.Replace による原子的書き込みと .bak バックアップ。
  • CRC32:プリセットファイルのチェックサム検証に使用。
  • PresetFileFormatSARP マジックバイト + バージョン + CRC32 + UTF-8 JSON のバイナリ形式(.sap)。旧 JSON 形式(レガシー)も読み込み可能。
  • ObjectPool:汎用オブジェクトプール(ConcurrentBag ベース、最大サイズ 64)。
  • CompositeDisposableINotifyPropertyChanged イベントのサブスクリプション管理。
  • EditScope:YMM4 の Undo/Redo システムとの統合用エディットスコープ。

レンダリング

  • RoomVisualHost:WPF DrawingVisual を用いたソフトウェアラスタライザー。パースペクティブ投影・ポリゴン裏面カリング・近平面クリッピング(ProjectionMatrix.ClipPolygonZ)。素材カラーによる面塗り・マーカー・軸インジケーター・情報オーバーレイ・グリッド・寸法ラベル。
  • Camera3D:オービットカメラ(ヨー・ピッチ・距離・ターゲット)。視点プリセット。
  • ThemePalette:背景輝度に基づくダーク / ライトテーマ自動検出。
  • BlueprintRenderer:A4 三面図(平面図・正面図・側面図)レンダリング・寸法線・引き出し線。
  • BlueprintSerializer:PNG への FNV-1a ハッシュ + GZip JSON 視覚バーコード埋め込み・復元。
  • TimelineOverlayControl:WPF FrameworkElement 直接描画によるタイムラインバー。

サービス

  • ServiceLocator:シングルトン DI コンテナ(Lazy<T> ベース)。
  • PresetService.sap ファイルの CRUD・バックアップ管理。
  • MaterialServicematerials.json の CRUD・組み込み素材管理。
  • RoomGeometryService.srg ファイル(Newtonsoft.Json)の CRUD。
  • UpdateService:GitHub Releases API(api.github.com)によるバージョン確認。フォールバック URL(manjubox.net)対応。
  • UserNotificationService:クールダウン付きトースト通知・確認ダイアログ・入力ダイアログ。
  • WindowThemeServiceDwmSetWindowAttribute による Windows 11 タイトルバーの色テーマ適用。
  • PlaybackTimelineServiceEnvironment.TickCount64 ベースのフレーム補間によるリアルタイムタイムライン追跡。

自動アップデート通知

起動時に GitHub Releases API へアクセスし、新バージョンが公開されている場合は 3D エディタのヘッダーにアップデートボタンを表示します。これ以外の目的での通信は行いません。


注意事項

  • 処理品質:処理品質を「高品質」にすると精度が向上しますが、CPU 負荷が増加する場合があります。多数の音声アイテムに適用する場合はご注意ください。

  • プリセットファイルの保存場所:プリセットはプラグインの実行ファイルと同じディレクトリ内の presets フォルダに保存されます。YMM4 のプロジェクトファイルには保存されません。

  • インターネット通信:本プラグインは起動時に GitHub API へのアクセスによるアップデート確認を行います。これ以外の目的での通信は行いません。

  • プロジェクトのバックアップ:本プラグインを使用する前に、YMM4 プロジェクトファイルのバックアップを作成することを強く推奨します。


免責事項

本プラグインは MIT ライセンスのもとで公開されています。

本ソフトウェアは「現状のまま」提供されており、明示・黙示を問わず、商品性、特定目的への適合性、および権利非侵害に関する保証を含む、いかなる種類の保証も行いません。

作者は、本プラグインの使用または使用不能に起因するいかなる損害についても、一切の責任を負いません。

本プラグインを使用する前に、YMM4 プロジェクトファイルのバックアップを作成することを強く推奨します。

ご利用は自己責任でお願いします。


ライセンス

MIT License

About

YukkuriMovieMaker4 向けルームリバーブシミュレータープラグイン。初期反射エンジン・8ラインFDN・インタラクティブ3Dルームエディタ・アニメーション完全統合

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages