スクリプト

NCS風音声波形 (NCSAudioVisualizer)

概要

パーリンノイズを用いた、NCS風の音声波形を再現するスクリプト

詳細説明

NCSAudioVisualizer

概要

プロジェクトに存在する音声に同期し、NCS(NoCopyrightSound)の3Dオーディオビジュアライザー(ぽよんぽよん跳ねる例のたまっころ)を生成するAviUtl2用スクリプトです。MVやVJ、オーディオスペクトラムの動画に最適です。


仕組み

周波数ごとの音量を取得し、特定の帯域を平均化します。lerp関数を使って平滑化し、これを音声同期のソースとします。

800x800の正方形を、細分化のパラメータで分割し格子点を用意します。例えば分割数150ならば22,500点になります。

パーリンノイズと呼ばれるノイズの生成手法を用いて、以下のように少しずつ離れた三か所からサンプリングします。

x += 振幅 * noise(nf*xi + 流れX,  nf*yi,         Z + 100)
y += 振幅 * noise(nf*xi + 100,    nf*yi + 流れY, Z)
z += 振幅 * noise(nf*xi,          nf*yi + 100,   Z)

100ずらすことで、互いに独立した3つの値をとることができます。(パーリンノイズは近い座標ならば類似した値になってしまうためです) これを3次元の変位ベクトルとすることで、平らな格子がうねうねと動くようになります。流れX/Yにフレーム番号がかかっているため、時間とともにサンプリング位置が変化し、実際に動くようになります。

出来上がった布のような物体を、極座標変換という手法により、球面に移します。このとき、裏側は手前に折り返され、3D的には半球のようになります。

最後に仮想バッファに描画されたものをオブジェクトにロードすることで、このスクリプトが実現します。やったね。


導入方法

AviUtl2のデータファイル(一般的にはProgramData/aviutl2に存在します)の、ScriptフォルダにNCSVisualizer.obj2を入れてください。


作者(もし何か不具合があればの問い合わせ先)

X: https://x.com/tettu0530
Discord: tettu0530