実践編5  AEとの逆連携(C4d Lを音楽と同期させる)戻る   デジタル降魔録へ   次へ


使用されている略語は以下のとおりです。
C4d L……Cinema 4D Lite AE……After Effects Ai……Adobe illustrator Ps……Photoshop






テクスチャを経由して小技こわざ(5) AEとの逆連携(音楽と同期させる)     メニューへ戻る

従来のワークフローは『C4d L』で作って『AE』でまとめて、あるいは加工してから『映像』へ、という流れでしたが、『AE』で作って、それを『C4d L』で加工と 3D化を経て再び『AE』に戻されて、もう一度手を加えてから『映像』にする、ラウンドトリップ・ワークフローで、C4d Lが利用できないかと考えていて、このアイデアを思いつきました。【雨の波紋を 3D化する】もその一つですね。

 今回はもう一つ突っ込んでみました。それは、Lite版の C4d Lでは、オーディオに関してはほぼ何もできませんが、AEの助けがあれば不可能ではなくなることに気づいたからです。
 もう使い古された感も濃厚ですが、AEに備わった【オーディオスペクトラム】と【オーディオをキーフレームに変換】と呼ばれる機能を使って映像を作り、それを C4d Lに持ち込んで、モーション 3Dグラフィックスを作ってみようという試みです。

 ここからしばらくは AEの復習みたいな説明が続きます。すっかり熟知している方はそのあたりは飛ばしてくださって結構です。

 C4d Lを使っていない方でも AEのオーディオ振幅関係に興味のある方は、これらのエフェクトや機能の紹介を兼ねて、まずは何に利用するものなのかを説明しますので、このまま読み進んでください。そのあとに、具体的に何を作ったのか、その作り方を参考にしてください。そして最後に、それを C4d Lへ持ち込む際の注意点やその方法を説明します。



【オーディオスペクトラムって何?】

AEのエフェクトに付属している【オーディオスペクトラム】と呼ばれるものは、オーディオデータを周波数別に細かく分解して、各周波数の強さを取り出してグラフィックを動かすものです。
 文章で説明するよりも現物を見てもらったほうがいいですね。次の映像がその一例です。

back to top


音が出ますので音量にご注意ください

最初の例のように、スペクトラムアナライザみたいなものでも可能ですし、円形マスクを反転してパスを利用すると丸くかたどることもできます。マスクの反転をしないと正しく円形になりません。ふつうはマスクを使わずに【オーディオスペクトラム】を掛けた上に、エフェクトの極座標を加えて円形に丸めてもかっこいいものができますが、マスクパスを使うと変形させることができますから、使い勝手がいいと思います。

 そして、このピコピコ動くものは、オーディオビジュアライザー (Audio Visualizer)とか、スペクトラムアナライザー、あるいはグラフィックイコライザーとか、いろいろな名称で呼ばれるものです。それらは音楽に合わせて動くグラフィックを指していまして、昔は音楽系のユーチューブなどでは引っ張りだこのものでした。呼び名が長ったらしいので、ここでは総称して『スペアナ・グラフィック』、ピコピコ動く部分を『イコライザーバー』あるいは単に『イコライザー』と書かせていただきます。


 続いて【オーディオをキーフレームに変換】です。
 これはオーディオデータの音量レベルを数値に変換して、それをフレーム毎に数値をキーフレームとして打ち込んでくれるものです。ただそのままではただのキーフレームの羅列(振幅キーフレーム)でしかない何の役にも立たないものですが、この数値をデータとしてエクスプレッションで読み取って、各種のプロパティの値に代入することで、その物体がオーディオに合わせて動き出すというものです。

 AE単体でもこれらを利用して、ビートに合わせたモーショングラフィックスを作ることができますが、今回はこれを C4d Lに持ち込んで、モーション 3Dグラフィックスに変身させてみようというのが目的です。




 ということで……。
 せっかく 3D化するのですから、形のある、それでいて簡単でちゃちゃっと作れちゃうものがいいと考えたのですが、でき上がったのは、まったくもってセンスのかけらも無い、悪役レスラーが隠し持っているガジェットみたいな、 "謎の物体 X" で恥をさらしてしまいましたが、そこはひとつ、ご辛抱ください。(家具を傷だらけにしそうなお掃除ロボにも見えます)

back to top


音が出ますので音量にご注意ください

UFOのような円盤型の腹部には、スペアナ・グラフィックが 2つ、イコライザーとして動いており、その中心部には【オーディオをキーフレームに変換】を利用したビートに合わせて大きさが変わる光る球体をはめ込んでいます。この 3つを合わせて『ぴょこぴょこイコライザー』と命名しました。(だっせぇよ!)


 そして円盤の周囲から尖ったものが出たり入ったりしているのは、AEで作った単純な白黒グラデーションで塗った円形シェイプです。映像を見る限りそうは思えないかもしれませんが、リズムに合わせてグラデーションの濃淡に変化を与えるだけで、C4d Lはそれを 3Dの高低差に変換します。名前は『とげとげライダー』です。(なんでライダー?)




【2つのイコライザーを作る】

円盤部の周囲から内側へ向かって広がるイコライザーと、中央で放射状に広がるイコライザーは、ともに【オーディオスペクトラム】を利用したものです。
 AE単体でもこの部分は利用できますので【オーディオスペクトラム】の作り方や設定値などは次の映像から参考になさってください。

back to top


音が出ますので音量にご注意ください



 円形のイコライザーを例に、いまの映像をまとめます……。
 まず、黒の平面に円形マスクをかけて、マスクの反転にチェックを入れます。反転しておかないと正しくイコライザーが出ませんので注意してください。利用しているのはマスクのパスですから、マスク自体には何の意味もありません。そして円形でなくても問題ありません。
 そしてこの平面に【オーディオスペクトラム】を適用して、別レイヤーに対象となる BGM素材をセットします。このオーディオを解析してスペアナが作られます。

【オーディオレイヤー】

対象となるオーディオを載せたレイヤーを指定します。

【バンド】

指定の周波数帯を何分割するか、の指示です。大きいほど細かくなりイコライザーバーがぎっしりと並びますが、その分パソコンに負荷が掛ります。

【オーディオの長さ】

フレーム毎で解析する音の時間幅(時間長)です。
 値を小さくする(例:20ms)と、音に過敏に反応してトゲトゲしく激しく動き、値を大きくする(例:200ms)と前後の音を平均化するため、滑らかでゆったりした動きになります。

【オーディオオフセット】

人間の感覚は、聴覚が敏感で視覚がその次だそうです。つまり、耳が先に反応して遅れて視覚が反応するため、耳に入るよりも映像のほうを少し早めに動かしてやると自然に感じます。
 そこで、耳で聞こえたときと視覚が反応したときの差がなくなるように、ここの数値で調整します。プラス方向へ数値を上げると実際の音より数値(ミリ秒)分速く動きします。(例:30ms)

【極パスを使用する】

開始ポイントをセンターにして放射状に伸びるようになります。隙間がないため円形になるというイメージではなく。1点から四方八方にに触手が伸びる感じになります。



【ぴょこぴょこイコライザーの中心にある球体を作る】

中心部で動いている光の球体は【オーディオをキーフレームに変換】を使って作られています。
 この機能は【オーディオスペクトラム】とはまるで逆のもの。それ自身が動いたり光ったりしません。参照するオーディオの音量変化を記録したものですが、それをうまく利用すると、多種のコントロールができます。

 その一つの例が、映像の中心部でビートに合わせて大きさが変化している光る球体です。

back to top


中心の青白い球体がそれです

原型はブラーの掛かった白色の円形シェイプです。たまに曲の雰囲気に合わせて光の色が変化するのは、単純に【塗り】の【カラー】にキーフレームを打って細工しているだけです。参考にするほどではありませんので省略させてください。



《振幅キーフレームの作り方》

【オーディオをキーフレームに変換】を起動するには、まず参照するオーディオレイヤーの変換範囲をワークエリアで示すか、その範囲でオーディオレイヤーをを切り取ったものにします。それを選択してから、ウィンドウメニューの【アニメーション】→【キーフレーム補助】→【オーディオをキーフレームに変換】を押すか、右クリック→【キーフレーム補助】→【オーディオをキーフレームに変換】で実行します。変換はすぐに終わります。
 続いて、変換された振幅キーフレームをエクスプレッションで制御します。 例えば、ビートに合わせてシェイプの大きさを変化させるには、シェイプの【サイズ】プロパティに次のエクスプレッションを書きます。


v = thisComp.layer("オーディオ振幅").effect("両方のチャンネル")("スライダー");
// 【調整ココ】音量の最小値と最大値の想定(曲に合わせて調整してください)
minScale = 0; 
maxScale = 25; 
// 音量の変化(min〜max)を、スケールの比率(0〜150)に変換
s = linear(v, minScale, maxScale, 0, 150);
[s, s]


 これももう散々やってられるでしょうから、説明は必要ないかもしれませんが、簡単にしておきます。

① 対象となる円形シェイプの【サイズ】プロパティにエクスプレッションを書く

円形シェイプの中にある【レイヤートランスフォーム】欄を展開して、【サイズ】プロパティにあるストップウォッチアイコンを "Alt" キーを押しながらクリックすると、【サイズ】の項目にエクスプレッションが使えるようにデフォルトのコードが出ますので、それを消して先ほどのコードを書きます。

② v = thisComp.layer("オーディオ振幅").effect("両方のチャンネル")("スライダー"); の説明

【オーディオをキーフレームに変換】を実行すると【オーディオ振幅】と名前の付いたヌルレイヤーが作られます。その中にオーディオの振幅を数値化した振幅キーフレームが並びますが、その項目を展開してみてください。

【右のチャンネル】と【左のチャンネル】、そして【両方のチャンネル】の 3つの項目に分かれてキーフレームが打たれています。その中の【両方のチャンネル】からフレームごとに数値を取り出して『v』という変数に入れるということです。

minAudio = 0;  maxAudio = 25; の意味

この意味を考える前に、【両方のチャンネル】の項目を選択してから、グラフエディタを起動してみてください。ただの点々だったキーフレームがギザギザと上下するグラフに展開されます。

 その中の最大値と最小値がどれぐらいかを見て、minAudio = 0;  maxAudio = 25の数値を変更してください。音が鳴っていないときは、ほぼ『0』を示していますが、オーディオによって最大値はまちまちです。そのためこれは調整するのが必須になります。

s = linear(v, minScale, maxScale, 0, 150); の意味

これは、変数 vの値を minAudio ~ maxAudio の範囲内に制限しつつ(クランプする)、その比率のまま 0~150 の数値に変換して変数 s に代入する働きをしています。

《補足》
 所詮、振幅キーフレームには物理的に音量の大小がグラフ化されているだけですから、そのまま利用すると、人間が意識したとおりの動きにはならず、だらだらとメリハリのない繰り返しの動きになります。そこで、聞いている人が意識する旋律に切り替わるような動きをあえて入れてやるのも、一つの方法だと考えています。

 例えばバスドラムの音に意識がいっているときは、『ドン、ドン、ドン』とビートに合わせてグラフが上下しているのは許容範囲です。しかしそこにピアノの旋律が入ってきたときなどは、意識はドラムの音から離れて、ピアノを追いかけたくなるのが人間の心理です。ついそちらへ引っ張られてしまうものです。そんなときはあえてグラフを操作して、ピアノの流れに合わせてグラフを上下させるような調整はするべきだと思います。

 今回は触れませんでしたが、一つの音源から一つの振幅波形を得るのではなく、 AEに搭載されている【パラメトリック EQ】や【ハイパス・ローパス】等を利用して、ベース音とピアノ音を分けた音源にして、それぞれの振幅波形から個別に制御するなどが考えられます。

「そこまで手を入れるなら、最初からオーディオ振幅を作る意味があるの?」と思われるかもしれませんが、ゼロから手動でキーフレームを打つよりも、オーディオ振幅を『動きの基本波』として利用し、そこに人間の感覚に合わせた補正を加えていく方が、圧倒的に効率的で自然な動きを作ることができると思っています。




【振幅波形の修正前と修正後】

上の画像の右側みたいに、もともとの振幅波形が跡形もなくなるまで整形する必要はないと思いますが、単調な動きばかりではなく、意識的にコントロールされているという部分もあってもいいのではないかと思っています。でもここは、個人の感性の部分になりますので、どれが正解というものはないかもしれませんが、参考までにご覧ください。


《振幅キーフレームを整形する方法》

 例にしたのは別の曲になりますが、とてもビートが読みやすい曲でした。そこでこの映像を参考にしてもらいたいのですが、AEでオーディオ振幅を調整するにあたり、DTM(音楽制作)の専門用語に出てくる ADSRの中で、最低限知っておいていただきたいものに『アタック』と『リリース』の概念があります。

アタック: 音が鳴り始める瞬間の立ち上がり(立ち上がりの速さ・強さ)

リリース: 音が鳴り終わって消えるまでの余韻(減衰の長さ)

複雑な音響理論まで知る必要はありませんが、これらの言葉の意味だけ把握しておくと、この後の波形編集のロジックが格段に理解しやすくなります。


back to top


音が出ますので音量にご注意ください



 それでは続いて『とげとげライダー』を作りますので、ここから先は C4d L寄りの話になります。

【初めて CINEMA 4D Liteを知った方へ】

まだ C4d Lに手を出していない方も、せっかく AEに搭載されている本格3Dソフトですから、使わずにいるのはもったいないです。
『機能限定版』とはいっても、それは単なるオマケではなく、制作に必要な基本機能はしっかり備わっています。ぜひ一度挑戦してみてください。きっと AEで制作する映像の中で新しい世界が開けるはずです。

 とはいえ、C4d Lを最初からここで説明するには、あまりにも内容が濃すぎます。そこで 3Dの面白さと奥深さに目覚め、ぜひ挑戦してみようと奮起された方は、【CINEMA 4D Liteやってます【最初の一歩】 】から順にお読みになっていただければ、今ここで書かれていることが「なぁんだ、たいしたことやってねえな」とほくそ笑む日が必ずやってきます。なにしろワタシがその道を歩んできたのですから……。
(参考までに、My Portfolioに並んでいる映像はすべて C4d Lで作成されています)



『とげとげライダー』が立体的に出たり入ったりしているのは、AEで作った白色と黒色の変化する映像が基本になっています。これを C4d Lの【変位】チャンネルで利用すると、高低差の付いた物体に変換してくれます。

 ではその作り方です。

 まずは 300×300pxのコンポジション、『とげ原型』を作り、それにすっぽりはいる、白黒濃淡の円形シェイプ『丸シェイプ』を一つ作ります。


『線』は無しで、『塗り』はセンターを白色にして、外に向かって黒色に変化するグラデーションを掛けただけのものです。

 タイムラインにはこの円形シェイプのレイヤーと、目的の音源を参照して【オーディオをキーフレームに変換】が吐き出した【オーディオ振幅】レイヤーとその音源が載っているだけです。



『オーディオ振幅』レイヤーと『丸シェイプ』レイヤーを展開しますと、次の画像のようになります。


『丸シェイプ』の【不透明度】プロパティには、次のエクスプレッションが書かれています。



v = thisComp.layer("オーディオ振幅").effect("両方のチャンネル")("スライダー");
// 【調整】音量の最小値と最大値の想定
minAudio = 0; 
maxAudio = 25; 
// 音量の変化(min〜max)を、不透明度の(0〜100)に変換
c = linear(v, minAudio, maxAudio, 0, 100);
// [c] で不透明度を変える
[c]


『オーディオ振幅』レイヤーに並ぶキーフレームを見て、なんとなく違和感を覚えた方もおられるかもしれませんので、簡単に説明しておきます。

 これはワタシ風のやり方で、振幅が音楽のときはビートのアタックにあたるキーフレームを、リップシンクのときは声優さんの声のピーク時にあたるキーフレームを "フクシアピンク" の色にして目立つようにしています。

 こうすると……、次の画像をご覧ください。
 音源の『波形表示(緑部分)』と【オーディオ振幅】レイヤー(赤色)の『キーフレーム』の関係。そしてその下のノコギリの歯のような波型は、そのキーフレームをグラフエディタで見たときの画像が合わさっています。


ノコギリの歯のようになっているのは【オーディオ振幅】レイヤーのキーフレーム一つ一つを整形して、かつ、音源のアクセントとなるアタック位置を示すフクシアピンクのキーフレームがぴったり合っています。こうすると、波形の整形中にズレた場合、音源のビートとピンク色のキーフレームの位置がズレていますので、目でも確認できるようになります。

 では次です。
 音楽で変化する白黒グラデーションの『とげ原型』コンポジションができたら、次に全体の入れ物になるものとして、6800×300pxの『stage』コンポジションを作り、その中に『とげ原型』コンポジションを次のように並べます。


すべて同じ『とげ原型』コンポジションです。異なるのは場所の配置と、タイムラインの時間軸の配置がピラミッド状になったところです。
 つまり、緑色のレイヤーを時間軸の先頭にして、それ以降は 1フレームずつズラして配置、場所の配置も緑のコンポジションを画面中央の 3400pxの位置に配置して、あとは外に向かって均等配置にして広げています。

 C4d Lの【変位】チャンネルに必要なものは、白から黒のデータです。今のままだと白から透明に変化しますから、タイムラインの一番下に黒色の平面を置いて対処しています。

 次の画像が、音楽と同時に『とげとげライダー』の原版を動かしたところです。


音が出ます 音量にご注意ください

back to top

複雑そうな動きに見えますが、構造は先ほどの説明したとおり単純で、ビートに合わせて明暗を繰り返しているのは一つだけです。それが 1フレームずつ時間をズラして動くので、アメリカのレトロテレビドラマ【ナイトライダー】の動きと、基本は同じです。だから『とげとげライダー』です。(うへぇ。昭和!)

 それを C4d Lの【変位】チャンネルのテクスチャに使えば、白色はでっぱり、黒色はへっこむという高低差を作ってくれます。するとそれがレベルメーターのように音楽に合わせてピコピコ動くものになります。もちろん 3Dですから見る角度は自由です。




 次はこれらのデータを C4D Lite に持ち込みます。

 ところで、先ほどから作っていたものは AEのオーディオエフェクトで動く動画ばかりです。それを C4d Lに持ち込んだところで、なにがどうだという疑問しか浮かばないかもしれません。
「だいたい Lite版で動画がインポートできるのか?」と、心配になるかもしれませんが、Maxon社の開発チームはちゃんと道を残してくれていました。

 少々、問題点はありましたが、すべて解決して、かつ 3Dの中できれいな映像となって再び AEに戻ってきているのは、先にお見せしました "謎の物体 X "が実証しています。



【テクスチャに使える動画の種類】


『H.264』でエンコードした『mp4』動画はすんなりと持ち込めました。例えば、平面オブジェクトのマテリアルとして『mp4』動画のテクスチャを張り付けてやれば。ちゃんと C4d Lの中で動いています。
 注意が必要なのは、動画を利用したテクスチャを使用するには、アニメーションの設定をしないと動きません。それについてはこちらをお読みください。
テクスチャにアニメーションを使う

● QuickTimeのProResデータ(movコンテナ)も『16:9』のサイズなら持ち込めました。それ以外の比率のものは無視されますので注意してください。

連番PNG(ファイル名に通し番号がついているもの)も読み込めます。PNGは静止画のデータですが、AEの【レンダーキュー】のデフォルトで『PNG』を選択すると、ワークエリアの範囲を『連番PNG』として通し番号を振った画像が出力されます。C4d Lではその中のもっとも最初の番号のファイルを選んで読み込んだ後、【計算】ボタンを押すとすべての画像を取り込んで動画として扱えるようにセッティングしてくれます。

【計算】ボタンがどこにあるか、なども【テクスチャにアニメーションを使う】で説明しています。

● C4d Lでオーディオファイルが再生できないと映像が作れない、と思われたかもしれませんが、安心してください。C4d Lの中でも映像に合わせてオーディオを鳴らすことはできます。その方法は以下のページで説明しています。
オーディオを再生したい

● AEで作った白黒映像を C4d Lのマテリアルチャンネルで使う方法は【雨の波紋を3D化する】でやったの同じですので、【テクスチャの特殊な使用法】をお読みください。




【フォーマットによるレンダリング速度の違い】

 ひとまずマテリアルに動画持ち込めることはわかりましたが、どのフォーマットが効率いいのかです。なにしろエンコードを 3回通すからです。最初は、AEから C4d Lのテクスチャに渡す映像作成時です。次が C4d Lで 3D化したあと それを AEに持ち込んで加工とオーディオのミキシングをするときに『.c4d』ファイルのままでは激重ですので、QuickTimeの ProRes4444あたりに変換してから加工に入ります。それが終わったら 3回目のエンコードを経て、晴れて映像となります。

 このような工程ですので、できたらなるべく速いのに越したことはありません。このことは以前このサイトのトップページぼやいていますが、1回目と 3回目のエンコードは通常のシーケンスですから、エンコードの速い順。

1.ProRes422HQ  2.ProRes4444 3.H.264

という一般的な順序になりますが、問題は C4d Lで作業した『.c4d』ファイルを AEでエンコードするときです。テクスチャに使用した動画のフォーマットの違いで、通常のエンコードで費やす時間の比ではないほどの時間が掛かりますので要注意です。



 何も知らずに軽いから『H.264』でテクスチャに送ったもので通したら、たったの 1分半ほどの 1080pサイズなのに、なんと 7時間半という。新幹線で東京まで往復できる(ここは大阪ですので)、現代のタイパをなめとんのか、とでも言いたくなるような時間を費やした苦い経験があるからです。

 そこで、QuickTimeの ProRes422HQで実行したところ、約 3時間47分で、約半分に短縮できたのですが、まだ東京まで行けてしまいます。
 ということで、お察しのとおり『連番PNG』が最速でした。

 連番PNGを使うと、ぬあんと 59分53秒でした。7時間半が 1時間にまで短縮したのです。

 ただし!
 ここは声も高々に宣言しますよ。やはり世の中そんなに甘くない。
 エンコード時間は最速でしたが、ファイルの数と容量がとんでもないことになります。
『スペアナ・グラフィック』と『とげとげライダー』2つで、7826個の PNGファイルと 12.1GBにものぼるハードディスクを占領されました。(気ぃつけなはれや~)


 ところで……。
『H.264』が最も遅かった理由を調べてみると、差分データで記録されていたからでした。

 差分データというのは、一定の間隔で 1枚の完全版の静止画を記録し、その後は変化のあった部分だけをデータ化して記録する方式のことです。このデータをテクスチャに使用してレンダリングすると、レンダラーはあるフレームの画像データを再現するために、何フレームもさかのぼった場所に記録された完全版のデータから、レンダリングする画像までの差分を計算して生成するために、普通よりも多くの時間を費やすということです。

『PNG』ファイルは 1フレームごとに独立したファイルですので、ダイレクトアクセスで画像を読み込めますから、その分、爆速でレンダリングが進んでいくのは後から考えれば当然です。
 ちなみに、ProRes(.mov)も1フレームごとに完全な画像を記録していますが、動画ファイルの構造から読み出しフレームを探し出す処理や、色データ(4:2:2や4:4:4)の展開にわずかな負荷がかかるため、『連番PNG』よりも少し遅くなります。

 どちらにしても特殊な使用方法ですから、このようなことはめったにないと思いますが、とりあえず、3Dに動画をテクスチャとして取り込むときは『16:9』サイズの『mov』ファイルか、ハードディスクに余裕があるのなら『連番PNG』と覚えておいてください。




 では説明を元に戻します。
 これが C4d L側の作業画像です。


円盤の構造ですが、何も凝ったところはありません。円盤の中心になる部分は【フィレット】を付けた角の丸い円柱で、その円柱と同じぐらいの直径の円柱をキャップ無し(フタの無い円筒形)にして、円盤の周りを囲っているのが、『とげとげライダー』が張り付く円柱です。オブジェクトマネージャでは『とげとげ』と書かれています。
【変位】チャンネルが機能して、ただの白黒グラデーションが尖った物体になっています。最も尖っている部分が白色で、黒に近づくほど低くなっています。

 形が円錐形ではないのは、マテリアルタグ でサイズやタイリング設定を調整しているせいです。(ピンク枠の部分)
 上の画像の『』『』は2つの映り込み専用の球体 に使用するマテリアルをコンポジットタグ (右クリック→【レンダータグ】→【コンポジット】)で映り込む先を変えている部分です。

 コンポジットタグの設定は次のようになっています。


映り込み専用ですので、影が落ちないようにしているのは共通ですが、『』はカメラから見える映り込み、すなわち背景としている宇宙の絵です。
』はカメラから見えないようにした別の宇宙の絵で、これは円盤の中央部分の鏡面反射に強く反射して、ツルツルに磨き上げられたような滑らかな表面を作っています。

 その円盤部分の【発光】チャンネルに、『スペアナ・グラフィック』のイコライザー動画をテクスチャとして読み込んでいるのが、次のマテリアル設定です。


ご覧のように 5220個の「連番PNG』ファイルが使われていて、動きが速いイコライザーでもきれいに見えるように、奮発して 60fpsです。これもファイルが巨大になった原因の一つですね。



 次の画像が『とげとげライダー』のマテリアル設定です。


色は【発光】チャンネルで作った "虹色グラデーション" で、暗い宇宙でも光って見えるようにしつつ、【変位】チャンネルに読み込んだ『togeToge.png』で高低差を作る【変位量】や『最大高さ』で設定しています。
【タイプ】の設定は『強度(中心)』がいい結果を生みますが、この『とげとげライダー』に関しては普通の『強度』の設定で、いい感じになりました。

 右端の画像が、読み込んだアニメーション設定です。30fpsで、2600個の『連番PNG』がセッティングされています。

 これが "謎の物体 X "の全貌でした。




《C4d Lを音楽と同期させる:カールノイズ編》

『スペアナ・グラフィック』と『とげとげライダー』だけではあまりにも陳腐ですので、もう少し別の例で実験してみます。

 次の映像は我流の方法で整形した振幅キーフレームを使って、AEの最新エフェクト【カールノイズ】の【コントラスト】プロパティを制御した例です。

back to top


音が鳴ります。音量にご注意ください

ここまで徹底的に整形する必要はないかもしれませんが、これでもまだ細かい点でビートとズレてしまっている点が多々あります。満足するまで作業をしていたら、完了のときを迎えることは無いかもしれません。(凝りすぎ注意報発令)


コントラストプロパティに記載したエクスプレッション


v = thisComp.layer("オーディオ振幅").effect("両方のチャンネル")("スライダー");
// 【調整ココ】音量の最小値と最大値の想定
minAudio = 0; 
maxAudio = 70; 
// 振幅の変化(min〜max)を、30~200にする
s = linear(v, minAudio, maxAudio, 30, 200);


【カールノイズ】というのは 2026年6月より AEに搭載された最新のエフェクトで、流動体の動きを作ることができます。よく似たものに『フラクタルノイズ』がありますが、あちらは『雲』『煙』のようなものに適しています。

 この【カールノイズ】が白黒画像を出力するのも理由があって、余計な色情報がない白黒(グレースケール)は、彩度ゼロの純粋な輝度情報(明暗)だけです。だからこそ、AEの色付けエフェクトが素直に乗ってどんな色彩にも自在に加工が可能であり、かつ C4d L的に、もってこいのシロモノなのです。

 例えば、白色に近いほど不透明になり、黒色に近づくほど透明になる【アルファ】チャンネルのテクスチャに使えたり、白に近いほど出っ張り、黒に近づくほど引っ込む、という高低差のデータとして機能する【変位】チャンネルにも使えます。


 上記の映像は【コントラスト】を制御していますので、AEの画面では明るさが変化しているだけですが、C4d Lを通すと凸凹した グニャ~が出たり入ったりを繰り返すとことになります。


 次の映像は同じ【カールノイズ】の【展開】プロパティをエクスプレッションで制御した例です。【コントラスト】プロパティとは異なり、ビートに合わせて脈打つような動きに変化します。

back to top


音が出ますので音量にご注意ください




展開プロパティに記載したエクスプレッション


v = thisComp.layer("オーディオ振幅").effect("両方のチャンネル")("スライダー");
// 【調整ココ】音量の最小値と最大値の想定
minAudio = 0; 
maxAudio = 70; 
// 振幅の変化(min〜max)を展開の数値として -20~20にする
s = linear(v, minAudio, maxAudio, -20, 20);


 最後に先ほどの白黒の【カールノイズ】を C4d Lで 3D化した『カールノイズ グニャ~』の映像です。

back to top


音が鳴ります。音量にご注意ください

カールノイズには、まだまだたくさんのパラメータがあります。面白い動きが作れるかもしれません。いろいろ試してみてください。






エクスポーターを経由して(青ウニ参上!)小技こわざ(5) AEとの逆連携(音楽と同期させる)メニューへ戻る

前回は "謎の物体 X "で始まり、【カールノイズ】の "グニャ~" とした抽象的な映像を 3D化しましたが、少々不満が残りました。それは C4d Lの【変位】チャンネルを利用したものですから、どんな形のものでも、複雑な高低差が作れるのですが……なんとなくインパクトに欠けていました。

 それは【変位】チャンネルは『白黒のカラー情報で高低差を付ける』という間接的な手法であり、いまひとつ手ごたえが得られない感じだったからです。ただ曲面を持ったとても複雑なものであっても、確実に 3D化できる有効な方法だと思いますが、派手さがないというか……そこらあたりがしっくりこなかったのです。

 そこでもっと強烈なものができないか探っていたところ、いいものを見つけました。こんな方法も可能なんだ。というか、「こんな機能、誰が使うねん」という、超マニアックで変態的なアプローチを紹介します。(なんかムチャクチャなこと書いてますが……)

 それが【Maxon Cinema 4D Exporter】機能です。
おおぉ、なんかすごそう!

 以前紹介した、C4d Lの数値を AEへ送る方法、運び屋ヌルの逆パターンで、AEから C4d Lへデータを送ることができます。

 さすがに Lite版である C4d Lでは不可能だろうと思っていたのですが、ちゃんと存在していました。まじで びっくりカメラでした。(出た! オヤヂ……)


 数値を扱いますから、何にでも使えるのですが、派手な例で実験したほうがインパクトがありますね。そんな要求に適したものは、やっぱりオーディオビジュアライザーでしょう。

 今、オーディオと同期させて動くグラフィックのブームが一周回って、再来の兆しを感じますので、ここではオーディオの振幅波形から数値を拾い、それを C4d Lに送りましょう。そして受け取った数値でオブジェクトを直接制御します。

 例えば、オブジェクトの位置座標と連携させればピョコピョコ動くし跳ねるし。スケール値ならビートに合わせてビクビク脈打つような動きを繰り返します。あるいは、デフォーマのいずれかのパラメータと連携させれば、音楽とともに変形するとか、波打つとか、歪むとか、モーグラフ で制御すれば、想像を超えるものが生まれるかもしれません。とまあ、ちょっと考えただけで、たくさんのアイデアがあふれ出します。しかもすべて 3Dオブジェクトですからね。360度ぐるりと見渡せるんです。


 全部試していたらキリがないので、とりあえず、どうやって AEの振幅レイヤーに並んだキーフレームを C4d Lに送れるのか、その工程を順に箇条書きします。

① オーディオレイヤーを参照して【オーディオをキーフレームに変換】を適用。そして振幅レイヤーを作る

毎度の作業です。詳しくはこちらをお読みください。
振幅キーフレームをつくる

② ヌルオブジェクトを作り 3Dレイヤーにする

これは必須です。この 3Dヌルの動きをあとでキーフレーム化して C4d Lへ送ります。そうしないと、送るときに「3Dレイヤーが無いよおまへん~」というエラーが出ます。

back to top


「3Dレイヤーが無い」と出たエラーダイアログ


③ 次元に分割を適用して振幅レイヤーを読み込むためのエクスプレッションを、ヌルオブジェクトの『Y』プロパティに書く

次元に分割をして X、Y、Zプロパティを個別にコントロールできるようにすると、少しだけエクスプレッションインストラクションが省略できます。今回送るのは『Y』座標です。

『Y』座標を送る理由は特にないです。キーフレームが打てるプロパティならなんでも可能ですが、受け取るのは C4d Lのヌルですから、【位置】のプロパティが都合いいのと、波形の上下がなんとなく『Y』座標の動きと一致したから、ただそれだけです。利用するのは AEから送られてきたキーフレームの数値のみです。

※ここ重要

 要するに、リアルタイムに AEからデータが送られてくるのではなく、一旦キーフレームという時系列データ(フレームごとの数値)に変換されたものを読み取って、その数値を C4d Lのフレーム毎に利用するということです。


 そしてこの段階で、曲のリズムに合わせた波形に整形をします。ついでにその作業を助けるためのヘルパーオブジェクトを作ります。ヘルパーオブジェクトについて詳しくは後述しています。

④『Y』プロパティを選択してから【アニメーション】→【キーフレーム補助】→【エクスプレッションをキーフレームに変換】を実行する

これで C4d Lへ送るキーフレームが作成されます。


⑤【ファイル】→【書き出し】→【Maxon Cinema 4D Exporter】を実行する

できた『.aep』ファイルが変換されて、『.c4d」ファイルとして書き出されますエクスポート

少し経って、こんなダイアログが出ますが、これは「2Dレイヤーが混ざってるけどそれはエクスポートしませんからね」というメッセージですので、気にせず『OK』を押してください。2Dレイヤーとは、振幅レイヤーとか波形整形のヘルパーオブジェクトのことです。

⑥ C4d Lを起動して、書き出した『.c4d』ファイルを読み込む

⑦ AEからカメラやカメラターゲットに続いて、キーフレームを打ったヌルがオブジェクトマネージャに並んでいるか確認する

AEから送り込まれるのはヌルだけではなく、AEの 2ノードカメラと目標点が自動的に作られて、それが、C4d Lのカメラと、カメラターゲットに変換されます。
 カメラ類が必要なければその場で削除しても問題ありませんが、のちに必要になると思いますよ。

 そして、肝心なのは AEから持ち込まれたヌルが、C4d Lのヌルとなって、その『Y』座標にキーフレームが打たれた状態でできあがっていることです。
 タイムラインパネルを開いて再生ヘッドを動かすと、ちゃんとそのヌルが動くのが見られます。ただし、C4d Lと AEでは『Y』座標の挙動が逆なのを頭に入れておいてください。AEは位置が下へ行くほど『Y』座標の数値が大きくなり、C4d Lは下へ行くほど小さくなります。そこで、Xpressoで『-1』を掛けて反転させます。

 Xpressoというのは C4dで使用される AEのエクスプレッションみたいなものの、もっと今風のビジュアルプログラミング環境と呼ばれるものです。
 テキストベースプログラミングの人間からしたら、回りくどくてやっとれんワ、と思わず漏らしそうになる代物です。(ここの説明もくどいぞ、実際……)

⑧ あとはそのヌルのY座標を何らかのパラメータの制御値として Xpressoで加工してやる

【変位】の白黒データと違って、数値で直に 3Dをコントロールしますので、Xpressoは必須です。
 ただし、そのヌルを親として単純に上下させるだけでしたら、Xpressoを使わずとも、ヌルの子階層にそのオブジェクトを設置すればリズムに合わせて上下します。

 Xpressoの出し方やノードのポートの扱いなどは、このサイトでも少し触れていますので、初めての方は下記の記事を参考にしてください。
パースガイド作成ツール(その 4/6)[思わずうなる XPresso] 前編
パースガイド作成ツール(その 5/6)[むむむの XPresso]後編

 ここで使用した Xpressoは後述します。先に AEで作った上下運動するヌルの動きを何に利用するかを考えました。
 せっかくですので、派手にパーッと弾けるようなのがいいですね。

 最初に考えたのが、【地形】オブジェクトの山の高さを曲に合わせて上下運動させるというパターン。【変位】チャンネルで凸凹を繰り返していた動きが、もっと派手になるぞ、と考えたのですが、あまりにも短絡的でひねりも何もないのが恥ずかしくなったため、急遽取りやめてこれになりました。

 音楽に同期した 3Dモーショングラフィック。
 題して『青ウニ参上!』(仮面の忍者かっ! リメイク版みてね……

相も変わらず意味不明の物体ですみません。なにしろデザインは二の次、動かすことに先走る習性を持つワタシの病気みたいなものです。クソゲーメーカー から何も変わっとらん……)

 右下に出ている数字は Xpressoで正しく制御されているかをモニターしている AEから送られてきた 『Y』座標を表す数値です。『0』から『1000』までの数値が来ています。つまり、AEでのコンポジションサイズの縦サイズが『1000』pxだということです。

 想像したとおり、【変位】を使った動きよりも直接的でダイナミックな動きが作れますので、こっちのほうが見ていて楽しいですね。(だからといって、何でウニ? しかも青いし……)

 また、このウニは、【地形】オブジェクトを球体にして、ビシビシしたトゲが出るようにしています。そのとげの高さを AEから送られてきたリズムデータに合わせて動かしているのです。



 それでは本題に入ります。
 AEから C4d Lへ【オーディオをキーフレームに変換】で作成した振幅キーフレームを送る方法です。



ヘルパーオブジェクトを作る】

【オーディオをキーフレームに変換】で作られた振幅波形は、上下に波打つものです。それを C4d Lでは【青ウニ】オブジェクトのトゲを伸ばしたり引っ込めたりする運動に変えています。つまり曲のビートに合わせてトゲの伸縮をイメージして操作するのですが、目で見えるのは波形の上下です。しかも波形が上がると『Y』座標は下がるという、混乱極まりない状態での波形の整形は、長く続けていられない苦痛に襲われます。

 それを直感的に『大きさの変化』として補助的に動くものがあれば、イメージが伝わりやすくなります。そのためのヘルパーとして、作業中の AEにプレビュー用の円形シェイプを用意します。そしてこの円が振幅の上下を円形の伸縮に変換します。

 このように最終レンダリングには使わず作業の補助・視覚化のためだけに使うオブジェクトを CGの世界では『ヘルパーオブジェクト』(またはガイド)と呼びます。

 次が、そのヘルパーオブジェクトの動きとヌルオブジェクトの動きを説明した映像です。

もっとも下の黄色の 3Dレイヤーが C4d Lに送るキーフレームで、下記のエクスプレッションが次元に分割をした『Y』プロパティに書かれていて、振幅の変化が『Y』座標の位置に変換されて動いています。
 この説明だけでは混乱するかもしれませんので、もう少しかみ砕いて説明します。

 オーディオの振幅の変化は【オーディオ振幅】レイヤーの【スライダー】プロパティにキーフレームに変換されていますが、これはこのままでは C4d Lには送れません。ヌルレイヤーの『X』あるいは『Y』座標に打たれたキーフレームにする必要があります。そこで、下記のエクスプレッションをヌルレイヤーの『Y』プロパティに書き、動きをつくっています。その動きをこの先で今度はキーフレームに変換して、C4d Lへ書き出そうという作戦です。


v = thisComp.layer("オーディオ振幅").effect("両方のチャンネル")("スライダー");
// 【調整ココ】音量の最小値と最大値の想定
minAudio = 0; 
maxAudio = 70; 
// 振幅の変化(min〜max)を、Y座標0~1000にする
s = linear(v, minAudio, maxAudio, 0, 1000);

このヌルレイヤーの動きは振幅が大きいときは下へ動き、小さいときは上に動きます。(上端が Y=0になっているから)
 これをヘルパーの役をする円形シェイプの【スケール】プロパティに、次のエクスプレッションを書いて、サイズの大小の変化にしています。
 ところで、ヘルパーの円形シェイプがガイドレイヤーになっている理由は、単純に作業中だけの存在で、正式には表に出ないようにしています。(裏方さんです)


 こうすることで、振幅が大きくなるとトゲが伸びる=大きな円になる。振幅が小さくなる=トゲが引っ込んで小さな球体になる、とイメージしやすくなり、波形整形の手助けになります。



v = thisComp.layer("オーディオ振幅").effect("両方のチャンネル")("スライダー");
// 【調整ココ】音量の最小値と最大値の想定
minAudio = 0; 
maxAudio = 70; 
// 振幅の変化(min〜max)を、X,Yサイズの 0~100にする
s = linear(v, minAudio, maxAudio, 0, 100);
[s,s]



 振幅の整形ができたら、その動きは 3Dヌルの『Y』プロパティに書かれたエクスプレッションのおかげで、何もすることなく そのヌルの動きとなりますので、それをキーフレームに変換します。工程④ですね。3Dレイヤーのヌルの『Y』プロパティを選択してから【アニメーション】→【キーフレーム補助】→【エクスプレッションをキーフレームに変換】を実行します。

 するとすぐに『Y』プロパティのタイムラインにずらっとキーフレームが並びます。

 続いて 工程⑤、【ファイル】→【書き出し】→【Maxon Cinema 4D Exporter】を起動します。

 このあと、C4d Lを立ち上げてから書き出した『.c4d』ファイル開くと、次のような画面になります。

オブジェクトマネージャに AEから送られてきたもろもろが揃っています。そして画面下部にあるタイムラインのドープシートには、送られてきたキーフレームが打たれて並んでいます。

 同じような画面にならないときは、オブジェクトマネージャが展開されていない、ビューポートが【透視】以外になっている。そもそも『.c4d』のエクスポータがエラーを起こしている。など初歩的なミスもあります。
 特に、AEに 3Dレイヤーが作られていないと『.c4d』ファイルの書き出しが始まりません。送り出そうとしているヌルレイヤーが 3Dレイヤーになっているか確認してください。
『.c4d』ファイルを開いたら、ヌルオブジェクトが肝心です。正しくキーフレームが打たれていて、キーフレームごとに数値が変化していることを確認してください。

 タイムラインのドープシートの使い方などは【タイムラインのトラブル】をご覧ください。
 また、C4d L側で作業するときも同じ曲が流れていないと確認が取れません。C4d Lでオーディオを鳴らす方法は、以下のページをご覧ください。そこでも書いていますが、音源は『.wav』よりも『mp3』のほうがエラーが少ないようです。
オーディオを再生したい



 キーフレームも打たれていて、再生バーを動かすとヌルオブジェクトが上下するようでしたら、ほぼ問題ないと思われます。オブジェクトマネージャではグループ化されているカメラやカメラターゲット等の階層からヌルオブジェクトを引きはがして、最上階層に移動させ、あとはご自由に料理する準備を始めましょう。

 ワタシの場合は『青ウニ参上!』ですから、青ウニを作って Xpressoを作成しました。これがオブジェクトマネージャの様子です。

上の画像の【属性マネージャ】が【地形】オブジェクトの『ウニ』設定です。
【サイズ】の『Y値』はすでに Xpressoで制御されているため、フレーム毎にいろいろな値に変化しますので無視してください。Xpressoは最後にまとめて説明します。
 それと完成動画とは異なって、数値表示が 2つ出ているのは、Xpressoの説明に必要でしたので追加しただけです。

 もう一つ、重要なことがあります……。


【AEの振幅レイヤーを後から修正したときはどうするのか】

もし AEの波形整形を修正したときは、AEにある 3Dヌルの『Y』プロパティに打たれていたキーフレームは全部削除して、再度キーフレームを作成し直します。その後続けて『.c4d』ファイルをエクスポートしますが、そのときは別名ファイルにしないと、せっかく進んでいた 3D作業が上書きされてしまいます。

 別名保存したら、その『.c4d』を開いて、その中のヌルオブジェクトを作業中のプロジェクトにコピペし、新『振幅』ヌルオブジェクトとします。
 次に、旧『振幅』ヌルに貼っていた Xpressoタグを新『振幅』ヌルにペースト。古い『振幅』ヌルはこの時点で削除。
 続いて、ペーストした Xpresso内の【振幅】ノードをクリックしたら、【属性マネージャ】を見てください。その中にある【ノードの属性】→【参照】に、新『振幅』オブジェクトを指定すると、新規の振幅に入れ替わります。



 ではオブジェクトマネージャに並んだ順に説明していきます。不必要な部分は読み飛ばしてください。

①『Objの映り込み』

これは定番の、対象にしているオブジェクトに背景が映りこむようにするための装飾オブジェクトです。コンポジットタグでカメラには映らない巨大な球体が置かれていて、青色光球画像や、抽象的(宇宙的)な模様のマテリアルが二重に掛けられています。そして『青ウニ』には強烈な鏡面反射マテリアルが使われているため、この映り込みオブジェクトが反射して『青ウニ』が青色に見えています。

 上の赤い丸が点いているのは、作業中にこの映り込みオブジェクトが見えてしまうとジャマなので、消しているからです。

②『ライト・環境』『ライト』

環境ライトと【減衰】を『2乗に反比例』にした『全方向』ライトで、これら 2個は照明用です。

③『カメラレール』

『青ウニ』の周りでカメラを走らせるための『円形パス』です。この円形パスの直径を変えたり、位置を上下させることで、カメラズームや撮影角度を変えたり、そしてこのパスを周回させてオービットの動きを再現しています。
 この詳しい撮影方法は【カメラレールを使った撮影方法】をご覧ください。

④『カメラターゲット』

AEでいうところの、カメラの目標点です。カメラが常に向く点になります。この場合は『青ウニ』のセンターに固定しています。

⑤『カメラヌル』

カメラレールの円形パスに沿って走るのは、この『カメラヌル』で、子階層のカメラではありません。そうしないとカメラの自由が利かないからです。カメラの視点はカメラターゲットから離れませんが、撮影する角度を変化させるときに、この親子関係が必要になります。
【スプラインに沿う】のタグが貼られています。

⑥『カメラ』オブジェクト

『青ウニ』を撮影するためのカメラです。【ターゲット】タグが貼られて、そのターゲットが『カメラターゲット』ヌルになっています。

⑦『Text』オブジェクト(ValとVal2)

カメラの視野には、AEから送られてきた数値を常にモニターするテキストを実体化した【押し出し】オブジェクトが設置されています。そしてその位置を固定するために、カメラの子階層に入れています。こうするとカメラがどこを向いても、『Textオブジェクト』は同じ位置を維持します。ただこの『Textオブジェクト』は数値のモニターですから、最終的には不要なものです。
 ちなみに Valは『青ウニ』の下の数値で、Val2は上の数値です。詳しくはXpressoで説明します。

⑧『振幅』ヌルオブジェクト

AEから送られてきたヌルで、このヌルに Xpressoタグを貼っています。

9『青ウニ』ヌルオブジェクト

『青ウニ』の親となるヌルです。下層階に『青ウニ』の本体、【地形】オブジェクトが入っています。



 この後は、AEから送られてきた振幅キーフレームの数値を読み取って、『青ウニ』のトゲを出し入れする Xpressoの説明です。


 『青ウニ』のトゲを出し入れするのは、【地形】オブジェクトの【サイズ】パラメータの『Y値』を変えればいいだけです。ただ、AEからやってくる数値は、だいたい『0~1000』です。
 だいたいと書いたのは、振幅を整形したときに波形がマイナスへ振れたり、最大値の『1000』をたまに超えることがあります。それを適した数値に変換しないと画面から飛び出したり、ちまちました動きになったりします。そのあたりも考慮した制御にしないといけません。

 これが Xpressoの状況です。

これを見ると、テキストベースでバリバリプログラムしてきた人はたじろぎますが、これがビジュアルプログラミング環境だということです。

 正直、何度触っても「腑に落ちん……」と首をかしげています。複雑になってくると、線がぐちゃぐちゃと接続されて、視覚的に見苦しくなります。なんだか昔の『goto』文のスパゲッティ状態みたいに思えるのですが、いまやこれが流行りだそうで。まあ、新しい波には乗っておくのが無難ですかね。(思考が昭和で止まってますもんで……)

 では順に説明します。
 ①では【振幅】オブジェクトの『Y』座標値を の【数式】ノードへ入れています。

 数式ノードでは以下の計算式が入っています。

ここで AEからやってきた数値を反転しています。座標系の補正ですね。
『V1』と記載があるのは、この【数式】ノードの入力ポートの変数名です。

 で、次。
 反転された数値が、【マップ変換】ノードにはいりますが、【マップ変換】の説明の前に、覚えておかないといけないおきてがあります。この手のややこしい話が嫌いな人は飛ばしてください。もし C4d Lのことを隅々まで知りたい方はこのままお付き合いください。ここから先は自分の忘備録ともなっています。

 まずこの数値の違いを見てください。(青ウニは鬱陶しいので消してあります)
 写真は 2枚合成してあり、右下が AEの画面、左上が C4d Lの画面です。

back to top

役者が勢ぞろいしました

AEから送られてきた数値の流れを順に見ていきます。

 最初は右下の AEの画面で、442フレームに再生ヘッドが止まっていて、そのときの 『Y』座標が 763.5724、単位は pxです。

 つぎに C4d Lの同じ442フレームのときの【振幅】の 『Y』座標の値は -7635.7242です。AEの示す数値の 10倍になっています。
 その振幅が、Xpressoの【数式】ノードで、-1を掛けて正の数にしましたので、そこから吐き出された数値が 763.572となっています。マイナスが消えていますが、また 1/10になっています。
 そしてそれが【マップ変換】ノードを通って出された答えが 229.072となっています。

 まず、一つ目の疑問。
 なぜ AEの数値とそれを引き受けた 『Y』座標の値が10倍になっているのか

 これは簡単、C4d L側の環境設定(単位設定)が『mm』になっているからです。AEの 763.5724という数値を、C4d Lが自分の基本単位である『cm』として受け取り(763.5724 cm)、それを mm 表記に換算(×10)して属性マネージャに表示しているためです。

 次の疑問。
 では、『cm』扱いになったとしても AEの『px』とは共通性が無いはず

 はい、これも簡単。C4d Lでは、『px』という単位は直接扱いませんので、単純に同じ数値を『cm』として引き継ぎます。つまり Xpressoでは基本単位を『cm』にしているということです。
 環境設定(単位設定)と Xpressoの内部単位(cm)の違いを理解しておくと、数値の桁ズレに悩まされなくなります。



 続いて、今回の要です。

【マップ変換 ノードについて】


 もう一度、【マップ変換】ノードに関する部分の写真をご覧ください。

ここではいったい何をやっているのかといいますと、AEのエクスプレッションを思い出してください。何度も出てくるこの部分です。


s = linear(v, minAudio, maxAudio, 0, 100);

これは、変数 vの値を minAudio ~ maxAudio の範囲内に収めつつ(クランプする)、その比率のまま 0~100 の数値に変換して変数 s に代入する働きをしています。

 これと同じことを Xpressoでは上の画像のような設定でプログラムします。ここがテキストベースのプログラミングとビジュアルプログラミングの違いですね。

 画像の『パラメーター』欄をご覧ください。

◇ 入力の下限:0
◇ 入力の上限:1000

入力ポートに入ってくる数値を『0~1000』の範囲にするのですが、AEと比べるとさらに細かい設定になっていて、クランプの設定まで可能になっています。(AEは範囲の上下を自動クランプしています)

 要するに『下を切る』『上を切る』にチェックを入れないとクランプしない状態ですので、いまのままだと、0未満や1000を超える数値が入ってきても、そのまま計算されてしまう "何でもあり" 状態です。ですので、AEのように、求める数値の範囲外に突き抜けないように『下を切る』『上を切る』にチェックを入れるのが正解です。ちなみに『下を切る』とは『0』以下の数値、マイナスの数値が入ってきたときに出力を『0』で止めるための設定になります。

◇ 出力の下限:0
◇ 出力の上限:300 (入力値の0.3倍)

入力設定の比率のまま 『0~300』 の数値に変換して、出力ポートから出す、となります。つまり入力値を『0.3倍』にした数値に変換されます。

【入力範囲】【出力範囲】の設定は画像のように『ユーザー定義』で問題ありません。『0→1』とか『0→100』などがありますが、これはただのショートカットみたいなもので、例えば『0→100』に設定すると、

◇ 入力の下限:0
◇ 入力の上限:100

 と自動的に変更してくれて、入力の手間を省くことができます。かといって、その設定に固定されることもなく、自由に変更できます。
 何か特別なものかと思っていましたが、C4d Lで時々あるお茶目な「なんじゃこれ?」設定のようです。

 そしてラスト。【マップ変換】で出力範囲に変換された数値が『青ウニ』のとげの長さと、画面でモニターしている上のテキストへ送られています。もう一度写真をどうぞ。

入力ポートが 0.3倍にされますので、820.509×0.3=246.1527≒246.153となっています。(あぁ。スッキリ)





オーディオスペクトラムと同期させる小技こわざ(5) AEとの逆連携(音楽と同期させる) メニューへ戻る

これは不可能だろうと思っていた AEの【オーディオスペクトラム】を C4d Lに持ち込む方法です。正規版の C4dにはオーディオ信号に同期して制御できるモーグラフがあるようですが、C4d Lは AEにバンドルされた Lite版ですので悲しいかなその機能は制限されています。でも、こちらには充実した AEのエフェクト群がそろっています。これらを利用してその制限を超えようというのが、このサイトの目的で、いろいろと踏ん張っております。

 AEに搭載されている【オーディオスペクトラム】をまだ使用したことのない方は、最初に紹介していますので、こちらをご覧ください。

 このエフェクトは、オーディオデータの各周波数をバンドと呼ばれる帯域に分解して、その音量レベルに合わせてスペクトラムのバー(イコライザーバー)をピコピコと動かすエフェクトです。昔の音楽系ユーチューブでは定番のエフェクトでしたが、今はより複雑なグラフィックやアニメーションが主体となりました。それでも、映像を音に完全同期させる基礎的な表現として、今でもその裏側で幅広く重宝されています。

 だったら、この【オーディオスペクトラム】を C4d Lに持ち込む方法を考えたら、立体感あふれるものができるのではないのか、と頭を捻ってみたのが今回の記事です。

 しかし【オーディオスペクトラム】はそれ自身が描画エフェクトですから、外部に対して何かを制御するようなことはできません。ですから何らかの細工をしてやる必要があります。
 そこでイコライザーバーの、"ある範囲内のピクセル" を監視しつつ、白色のバーが監視エリアを通過したときに起きる輝度の違いをフレーム毎に数値化して、その数値の違いから高さを計算して、キーフレームに記録するという方法を使ってみました。

 キーフレームができたらあとは前回の『青ウニ 』のときと同じ流れで AEから書き出し、C4d Lでそれに従って制御すれば、スペクトラムバーの動きが 3Dで再現できるという流れです。

 今回の重要ポイントは次の 3つです。

[1] 描画されたイコライザーバーの動きをどうやって数値化するのか

詳しい仕組みは後述しますが、数値化さえできれば前回と同じです。エクスプレッションをキーフレームに変換して『.c4d』ファイルに書き出すだけです。

[2] C4d L側の Xpressoはどうなるのか

こちらも前回と同じようなもので、AEから読み込んだキーフレームで動くヌルオブジェクトの数値を読み取って、動かす相手のパラメータに適した数値に変換して制御するだけです。

[3] C4d Lで何を制御するのか……

誰も真似できない特殊な技術を除けば、今や AIのサポートもあり「どう作るか」というハードルは大きく下がりました。言ってみれば、プログラミングは目的地へ行くための自転車のようなものです。大切なのは自転車に乗ることではなく、乗って何をするか という価値の創造にあります。ですから、ワタシにとってはこの三番目の問題が最大の難関でした。何しろこれまで最悪のセンスで実験作品を披露し続けていますから、何とかしたいところです。

 そこであれこれ試してみたのです。地形オブジェクトを曲に合わせて隆起させたり引っ込ませたり、砂に潜るアナゴが出たり入ったり……。
 どれも「なんだこりゃ?」でした。

 原因はオーディオスペクトラムの動きが激しくて、制御した物体から受ける情報量が多すぎるのか、見ていてストレスを感じるだけだったからです。

 そこで、びっくり箱から飛び出てきた "バネのおもちゃ" なら素早く動く物なので、オーディオスペクトラムの動きと合うのでは、という考えで進めてみました。


 まず、元となったオーディオイコライザーの動きをお見せします。


『音が鳴ります。音量にご注意』

back to top

最初に出てくる白い縦バーが AEのオーディオイコライザーの動きで、途中からオレンジ色の横向きバーと切り替わりますが、これが白い縦バーの動きをエクスプレッションで読み取り、『Y』座標の数値に変換したヌルの動きにリンクしたオレンジバーです。

 このオレンジバーは制作には直接関わっていませんが、この動きが "びっくり箱のおもちゃ" のイメージとなるものです。つまりだいたいどんな動きになるかを探るための仮のオブジェクトです。前回にも出てきましたが、このようなものをヘルパーオブジェクトと呼んでいます。

 では作業に入ります。
 1920×1080サイズのステージ(コンポジション)を作ります。

続いて、画像のように音源レイヤーを数十フレーム右にずらし、あえて無音部分を作って置きます。
 無音部分を作るのは、エクスプレッションがすぐに動いてしまい、調整しづらいからです。

 次に『黒』の平面を出して、それに『spectrum』という名前をつけたら、【エフェクト】→【描画】→【オーディオスペクトラム】を適用します。

 上の画像にある赤いガイドラインはただの目安です。オーディオスペクトラムの【開始ポイント】【終了ポイント】の『Y』座標(540px)に引いています。

 最後に一つのヌルレイヤーを『spectrum』レイヤーの上に作って、画面に並んでいるイコライザーバーの最も左にあるバーの中央あたりと、ヌルオブジェクトの左端が一致するように配置します(画像参照)。このヌルの『Y』位置は次に述べますエクスプレッションで変化しますので、イコライザーバーの原点位置より少し上あたりに置いてあれば問題ありません。
 このヌルがイコライザーの1番目のバンドとなりますので、レイヤー名を『band 1』としておきます。この名前は C4d Lでも継承されていきます。

 次に、オーディオスペクトラムの設定値を確認してください。

①【オーディオレイヤー】は音源レイヤーを示してください。

②【開始周波数】【終了周波数】はバンド数で分割される帯域を示しますが、あまり範囲を広げると動きが鈍くなります。曲にもよりますが『20~1200Hz』ぐらいではないでしょうか。

③【周波数バンド】はイコライザーバーの数になります。多いと制作の手間が増えますし、PCへの負担も大きくなります。このあと C4d Lでの作業も待っていますから、16バンドぐらいが妥当かと思われます。

④【最大の長さ】イコライザーバーがどこまで帯びるかの調整値ですが、追従するヌルの動きはエクスプレッションで制限していますから、大体画面の上を少し超えるぐらいにしました。

⑤ ピンク枠の中は曲によってまちまちです。目安としては【オーディオの長さ】は敏感に変化するかゆったり変化するか。【オーディオオフセット】を大きくすると音より先にバーが動き、人間の脳の反応に合わせる働きをします。(耳が先に反応して遅れて視覚が反応するため、耳に入るよりも映像のほうを少し早めに動かしてやると自然に感じるから)

⑥【内側、外側のカラー】ともに白色です。輝度の違いで数値化しますので白色が最適です。

⑦【柔らかさ】も重要で、ある程度ボケた感じでないと急激な変化になって、ガタついた動きになります。

⑧【表示オプション】は『デジタル』で、【サイドオプション】は『サイドA』上側のみです。

⑨【元を合成】にチェックを入れて黒平面の色(=黒)を出したままにしておきます。とにかく黒と白が重要です。

実際に曲を流してみて、スペクトラムのイコライザーバーの動きを再調整したら、次の作業に入ります。


 作ったヌルの【位置】プロパティを【次元に分割】をして『Y』プロパティにエクスプレッションのコードを書きます。

【次元に分割】をして『Y』プロパティだけに分離するのには理由があります。もし【次元に分割】を行わないでいると、不要な『X,Z』座標にもキーフレームが打たれて、無駄な処理に時間やメモリを消費するからです。

『Alt』キーを押しながら『Y』プロパティのストップウォッチアイコンをクリックすると、エクスプレッションエディタが開き、デフォルトのコードが出ますので、それを消して次のコードを書きます。



// --- 設定項目 ---
targetLayer = thisComp.layer("spectrum"); // スペクトラムのレイヤー名
sampleY = 400; //白のバー(波形)が通過するY座標(px)
baseY = 510; // 基準となるY位置(音=0のときの位置。あまりバーにギリギリはだめ)
maxHeight = 700; // 跳ね上がる最大距離
// --- ヌル自身の現在のX座標をそのままサンプリングに使用 次元に分割を対策もする ---
worldPos = toComp(anchorPoint); // 現在のレイヤーのワールド座標を取得 [x, y, z]
sampleX = worldPos[0];

// --- サンプリング(幅を持たせる) ---
// バンド幅に合わせてサンプリングサイズを少し調整できる
//(配列のXを大きくすると鈍くなり、あまり上昇しない。小さくすると大きく上がるが。細々した動きになる。
// 配列Y側もバーの追従に影響するので、曲に合わせて調整する)
sampleSize = [5, 400]; 
color = targetLayer.sampleImage([sampleX, sampleY], sampleSize, true, time);

// 赤色とアルファをサンプリングして、色あり(1.0)〜色なし黒(0.0) に
val = color[0] * color[3];

// --- Y位置の計算 ---
newY = baseY - (val * maxHeight);
newY;


 エクスプレッションが書けましたら、タイムラインの再生バーを音楽が鳴る位置からドラッグします。するとイコライザーバーの動きに合わせてヌルが上下するのが見えます。   スペースキーを押して再生してしまうと、ヌルが見えなくなりますので、ヘルパーオブジェクトを作るまでは再生バーをドラッグして確認してください。

 もし動かないときは次の項目をチェックしてください。

オーディオスペクトラムが適用されているレイヤー名とエクスプレッションの参照名が同じか?

targetLayer = thisComp.layer("spectrum"); ←この " " で囲まれている名前と同じか確認してください。変なところにスペースが入っていないか、大文字小文字も区別されます。

オーディオスペクトラムが参照している音源は正しくそのレイヤーを示していますか?

もっともこの場合はヌルだけでなく、イコライザーバーも動きません。

ヌルのアンカーポイントマークの場所をイコライザーバーが正確に通過していますか?

ヌルに書かれたエクスプレッションは、ある決められた範囲内(Y=400のあたりを『横5px 縦400px』のエリア)の光の量(色)をフレームごとに検知して、光が増えるほど高くなり、少なくなると下がるような計算でヌルを動かしています。

オーディオスペクトラムの【元を合成】にチェックが入っていますか?

【元を合成】にチェックを入れないとイコライザーバー以外の部分が透明になります。すると、エクスプレッションのこの部分、

val = color[0] * color[3]; が、
val = color[0]; だけにすると、透明部分の考慮が抜けているため、サンプリングエリアが完全に透明になり、color[0](赤色のサンプリング)が不定(=1)となります。するとバーが跳ね上がったまま動かなくなります。

もし、val = color[0]; で動かすなら、【元を合成】にチェックを入れて元の "黒色平面" を表示させないとだめです。
 何しろサンプリングエリアの光の量(色)でバーの高さを検知しているのですからここは重要です。


 無事にヌルがイコライザーバーに合わせて動くようになったら、次にヘルパーオブジェクトを作ります。これはスペクトラムレイヤーを非表示にしても、ヌルの動きが再現されて、それが C4d Lでの動きのイメージとなります。

 適当な長方形シェイプを作り、無音部分でヌルと同じ初期位置に配置します。完了したら親子関係をヌルの子にします。次がその画像です。

これでプレビューしてください。スペクトラムレイヤーを非表示にしても、ヘルパーオブジェクトがヌルと同じ動きをしていたら成功です。


 次の映像がその状態です。動きなどを参考にどうぞ。


『音が鳴ります。音量にご注意』

back to top


 うまく動けば、このペアーをコピペして 16バンド全部に配置します。エクスプレッションの制御下になっていて、縦方向は動きませんから『Shift+→』キーで右方向に動かしていきます。そして次のイコライザーバーのセンター付近に来ると自動的にスナップされるように自分から貼りつきますから、あとは『←』や『→』キーで微調整します。

 配置ができたらレイヤー名も『band 1~band 16』として、このヌルとヘルパーオブジェクトを分けて管理します。これ以降使うのは 16個のヌルレイヤーだけで、ヘルパーオブジェクトは動きのチェックをするときだけが役目です。

 これが別々に分けた状態です。親子関係も正しくなっているか確認しましょう。

面倒ですが、ヌルに名前を付けておかないと、C4d Lへ持ち込まれたときに、どのバンドがどのヌルか分からなくなります。


 ここまで完成したら、次は C4d Lへ送るイコライザーバーの動きを『Y』座標の振幅キーフレームに変換します。

 方法は『青ウニ 』のときと同じです。『青ウニ』は【オーディオをキーフレームに変換】で打ち出されたキーフレームを整形して、その動きをエクスプレッションで、ヌルの『Y』座標に変えました

 今度もスペクトラムのイコライザーバーの動きをエクスプレッションで計算して、ヌルの『Y』座標に変えています。手段は違いますが、やっていることは同じで、ようするに……、

何らかの方法で 3D座標にキーフレームを打ったものを作らないと『.c4d』ファイルに書き出しても意味のないものが生まれる。

ということですね。

 ただし今回はヌルの数が多いです。手間もかかりますし、PCに負担が掛らないように、ヌルが 2Dレイヤーの時点でエクスプレッションを『Y』座標の振幅キーフレームに変換します。

 まず 16個すべてのヌルの『Y』プロパティを選択して、【アニメーション】→【キーフレーム補助】→【エクスプレッションをキーフレームに変換】を実行します。


 補足するのを忘れていましたが、音源と同じワークエリアにしないと、16本ともに無駄な(無音の)キーフレームが打たれますから、注意してください。

青ウニ 』と違って少し待たされます。【情報】パネルを出しておくと、進捗状況が見えますのでお勧めです。


 次の画像はすべてのバンドのヌルに『Y』座標の振幅キーフレームが打たれた状態です。

もし、動きを緩やかにしたいときは、この時点で各ヌルに打たれたキーフレームを選択して【スムーザー】処理を通すことができます。

 【スムーザー】処理は、【ウィンドウ】→【スムーザー】で出てきます。適用量は『3~10』ぐらいではないでしょうか。あまり大きくするとだらだらした動きになります。


《重要》

オーディオスペクトラムの設定を変更して『Y』座標の振幅キーフレームを作り直すことも考えて、現在の 16個のバンド別のヌルとヘルパーオブジェクトの配置までを済ませたプロジェクトファイルを別名で保存しておくことを推奨します。



 さて、次で AEでの工程は最終です。完成した 16個のヌルオブジェクトを 3Dレイヤーにします(これを忘れると書き出しができません)。そして、C4d エクスポーターを経由して『.c4d』ファイルの書き出しを行いますが、このままでは 16個のヘルパーオブジェクトまで C4d Lへ転送されてジャマになりますので、ワタシは ヘルパーオブジェクトの親子関係を切るか、削除してから C4d エクスポーターを起動しています。

 C4d エクスポーターの起動は、【ファイル】→【書き出し】→【Maxon Cinema 4D Exporter】で、開いているコンポジション内が変換されて、『.c4d」ファイルとして書き出されます。


 実行して少し経つと、次のようなダイアログが出ますが、これは「2Dレイヤーが混ざってるけどそれはエクスポートしませんからね」というメッセージですから、気にせず『OK』を押してください。2Dレイヤーとは、音源のレイヤーやオーディオスペクトラムが適用された黒平面などです。



 書き出し完了後、C4d Lでそのファイルを読み込みますと……。

オブジェクトマネージャのピンク矢印の場所には、カメラとカメラターゲットまで自動で作られています。そしてドープシートを開くと、AEで作った『band 1』~『band 16』の動きがキーフレームに記録されたヌルが並んでいます。ヌルの名前も AEで付けたときのままです。



 さて、ここから先は C4d Lの出番です。
 まず、"びっくり箱のバネのおもちゃ" を一つ作ります。

トップページを飾っているいつもの鳩クンに、バネを付けたおもちゃです。

 バネは【らせん】パスを円形シェイプでスイープさせて、金メッキのマテリアルを貼って作っています。ハトは木製のマテリアルを貼った【楕円形】のプリミティブをボディとして、【カプセル型】のプリミティブを頭に持ったごく普通のオブジェクトを【ハト 1】→【オフセット】→【頭 1】→【鳩 master】という何段か下層のヌルに入れています。

 AEから持ち込まれたのバンド別のヌルは『Y_振幅』と書かれたヌルの中に『band 1』~『band 16』まで並んでいて(ピンク枠)、その大元の『Y_振幅』ヌルに Xpressoタグが貼られています。

 Xpressoでは、振幅ヌルの『Y』座標値からバネを構成する【らせん 1】オブジェクトの【高さ】プロパティ(ピンク矢印)を制御することで、バネの伸縮を制御しています。また、そのままではハトが動かず、バネだけが伸縮します。そこで同じ振幅ヌルの『Y』座標から、ハトが入った【頭 1】ヌルの『Y』座標も一緒に動かしています。

【ハト 1】や【らせん 1】、【頭 1】など、番号が振られているのは、『band 1』のオブジェクトであることを示す添字です。全体を示した Xpressoエディタの中を見てもらうとわかりますが、この添字が無いと混乱します。

 また、Xpressoで制御するオブジェクトに直接キャラ類を置かずに、何段階かヌルオブジェクトで階層を作ってあるのは、Xpressoで制御されるとそのオブジェクトの位置が動かせなくなることがあります。そのためそれより下層に入れて調整ができるようにしています。


 これが『Y_振幅』ヌルに貼られた Xpressoエディタの中身です。

ピンク枠で囲ってある【テキストスプライン】ノードは例によって、AEから書き出されたバンドの『Y』座標値と、【マップ変換】ノードの出力値が思ったとおりの数値になっているかモニターするもので、動きには関係ありません。『青ウニ 』と同じで【カメラ】オブジェクトの子階層にテキストオブジェクトを置いています。

 Xpressoエディタの中身も『青ウニ』のときと同じですが、今回はこの Xpressoを 16バンド分作ることになります。数が多いですが、一つの Xpressoエディタの中に作りますので、ノードの設定値を変更するときは、そのノードを全選択すれば一度に変更できます。

 ただし、先頭にある【band_1】~【band_16】のノードはバンド別に『Y_振幅』の中から指定することになりますし、【らせん 1】や【頭 1】など、添字のあるものも個別に選ばなければいけません。

 各ノードにオブジェクトを参照させる方法です。次の画像をご覧ください。

対象のノードをクリックします(①)。
 次に属性マネージャの【ノードの属性】下の【参照】と書かれた欄の右端にあるスポイトアイコンをクリック(②)。
 そして(③)参照先のオブジェクトをクリックします。

【らせん 1】や【頭 1】なども同じ方法で参照先を指定します。



 それらを組み立てると、こんな感じで 16個分が並びます。


 次にXpressoの構造です。
 ほとんど『青ウニ』ときと同じで、以下の流れになっています。(『n』は 1~16の添字です)

【band-nのY座標】→【数式】→【マップ変換】→【らせんnの高さと頭nのY座標



【数式】ノードの内容は次の画像のようにになっています。

back to top


【数式】ノードとその内容

510-(-1*V1)』という数式は、AEの『Y』座標を補正して C4d Lに適した数値にするためのもので、AEは位置が上へ行くほど数値が小さくなり、C4d Lでは上へ行くほど数値が大きくなります。さらにそれが負の数に変化されて入ってきます。そこで『-1』を掛けることで、負の数を正の数にしてから、510pxより減算して『0』から始まる数値にしています。


 次です。
 C4d L用に変換された『Y』の値は【マップ変換】を通ります。以下がその設定パネルです。

back to top


【マップ変換】ノードとその内容

このパネルの意味は、【入力の下限・上限】で指定した『0~510』の数値を、【出力の下限・上限】で指定した『30~1000』の範囲に同比率で変換します。この場合、入力値をおおよそ 2倍に増幅させつつ、最小値を『30』に持ち上げる処理をしています。『30』に持ち上げる理由は、下がりすぎるとバネが一点に "ぎゅっ" と圧縮された不自然な形になるため、これ以上下げないという制限を作っています。

【マップ変換】を出た数値は二つに分かれて、【らせん】の『高さ』プロパティと、バネの頭に付けたハトの『Y』座標へと送って二つを同時に動かしています。

 Xpressoの部分はほとんど『青ウニ』と同じですので、こちらを 参考にしていただくか、Xpressoエディタの出し方やノード、ポートの扱いなどは、このサイトでも少し触れていますので、初めての方は下記の記事も参考にしてください。
パースガイド作成ツール(その 4/6)[思わずうなる XPresso] 前編
パースガイド作成ツール(その 5/6)[むむむの XPresso]後編



【AEでの修正が必要になったとき】

途中経過のプロジェクトが保存されておらず、やむを得ずやり直す場合は、以下の順序でやると最低限の工程で元に戻せます。

 まず全部の 3Dヌルを 2Dに戻し、『Y』座標の振幅キーフレームは全部削除します。
 次に、前回エクスプレッションをキーフレームに変換をしたときに、エクスプレッションが無効なっています(数値が白字)。そこでエクスプレッションエディタを開いて閉じると、再適用されて数値が赤字に変わります。これで全部元に戻りますが、ヘルパーオブジェクトを削除していた場合は、作り直すしかありません。

《補足》

エクスポーターを使って再書き出しする場合は、別名ファイルで書き出すことをお忘れなく。作業途中のプロジェクトが上書きされてしまいます。




 そしてこれが、びっくり箱に入れたハトを16個並べて、映り込みなどをの体裁を少々施してから映像にしたものです。


『音が鳴ります。音量にご注意』

back to top

モニターしている数値は左端のバネで、上がマップ変換ノードの結果、下が AEからきた 変換前のY座標です。


 思っていたとおり、バネの動きとイコライザーバーの動きがよく似ていますので、最初に作った『珍アナゴ』よりは、違和感が少なくなってほっとしました。


 次の例は、プリミティブスプラインの円形シェイプを 16個並べてジェネレータのロフトを適用することで、パイプ状の物体を作っています。そしてその円形シェイプの半径に AEのオーディオスペクトラムの動きを移植したものです。


『音が鳴ります。音量にご注意』

back to top

AE側の処理は音源が変わっただけで、何も触っていませんし、C4d L側の Xpressoも出力先が円形シェイプに変っただけです。


back to top


【全体の構造】

画像のオブジェクトマネージャを見てもらうとわかりますが、ロフトで作ったパイプ状のものを Xpressoタグを貼ったまま、もう一つコピペして上下さかさまにくっ付けてあります。これで対称的な動きが作れます。



 Xpressoも最終出力が【円形 n】に変わっただけで、【マップ変換】ノードの設定値を少々調整して完了しています。

back to top


【マップ変換】ノードとその内容

いろいろとアイデアは出てくるのですが、結局はオーディオスペクトラムの動きに合ったものを考えるのが一番苦労する、というのが本音でした。





 実践編 Topへ

戻る   デジタル降魔録へ   次へ