最近、DFさんのDF TALKの記事を参考にこんなツールを作ってみました。
TYGrassesSetUpTool from Takayuki Yanagisawa on Vimeo.
2013年7月8日月曜日
2013年7月7日日曜日
サウンドウェーブをmayaのtlanslateに持っていく
お久しぶりです。
今回は音声ファイルをmayaにもっていこうと思います。
単純に再生するだけならタイムラインにドラッグ&ドロップで出来ますが、
サウンドウェーブを使ったアニメーション等はできません。
なので今回はサウンドウェーブをmayaのtlanslateへもっていく方法を
ご紹介したいと思います。
まずは、サウンドウェーブをmayaからでも読み取れるカタチに
しなければなりませんので、今回はAfter Effectsを使いたいとおもいます。
コンポジション設定はこんな感じです。
デュレーションは音声ファイルの長さに合わせてください。
タイムラインに音声ファイルをのっけたら
真っ黒な平面を作成し、その上に真っ白な平面を作成します。
こんな感じです。
次に、音声ファイルを右クリックし
キーフレーム補助 → オーディオをキーフレームに変換
を実行します。
するとオーディオ振幅というレイヤーができ、
右と左と両方のチャンネルがスライダとしてキーフレームに変換されています。
次に、真っ白な平面の不透明度のストップウォッチのアイコンを
Altキーを押しながらクリックします。
すると、エクスプレッションが打てるようになります。
エクスプレッションの渦巻状のアイコンをドラッグして
スライダの上でドロップします。
では、再生してみてください。
サウンドウェーブに合わせて白黒するアニメーションができていると思います。
つまり、この白黒情報をmayaで読み取りtranslateにもっていこうという算段です。
なので、これをレンダリングします。
※注意 後でテクスチャアニメーションで読み込むので
soundWave.[###].png のように連番の前は必ず.にして下さい。
ファイルフォーマットは非可逆圧縮のpngとかをおススメします。
ここからはmayaでの作業
(maya 2013だと一部melがうまく実行されないので(バグ?)
今回はmaya 2011を使っています)
ハイパーシェードからファイルノードを作成します。
ファイルノードに先ほど作成した画像を読み込みます。
Use Image Sequenceにチェックを入れると連番で画像を読み込んでくれます。
※注意 AEで書きだしたファイルは0から始まるので0フレーム目が
1枚目のテクスチャになっています。
これを変更したい時は紫色になっているImage Numberの
エクスプレッションを変更する必要があります。
次に、スクリプトエディタを開き以下のMELを実行します。
//////////////////////////////////////////////////////
{
float $value[];
string $loc[] =`spaceLocator`;
for($i=開始フレーム;$i<=終了フレーム;$i++){
currentTime $i;
$value =`colorAtPoint -u 0.5 -v 0.5 -o A ファイルノード名`;
setAttr ($loc[0] + ".ty") $value[0];
setKeyframe ($loc[0] + ".ty");
}
}
//////////////////////////////////////////////////////
日本語のところは半角英数字に書き換えて使ってください。
ちなみに今回の場合はこんな感じ。
//////////////////////////////////////////////////////
{
float $value[];
string $loc[] =`spaceLocator`;
for($i=0;$i<=899;$i++){
currentTime $i;
$value =`colorAtPoint -u 0.5 -v 0.5 -o A file1`;
setAttr ($loc[0] + ".ty") $value[0];
setKeyframe ($loc[0] + ".ty");
}
}
//////////////////////////////////////////////////////
実行してうまくいけばlocatorが現れ、上下に動きます。
これをスケールの値に入れたりなどして
簡単なモーショングラフィックスなんかも作れますね!
今回のMELの実行内容はこんな感じです。
float $value[];
//float型の配列を定義します
string $loc[] =`spaceLocator`;
//ロケーターを作成し、作成されたロケーター名を配列の0番目にいれます
for($i=0;$i<=899;$i++){ 実行 }
//$iの初期値(0)から$i<=899が成り立っている間ループし、毎回ループ終了後に$iに1を足します
currentTime $i;
//タイムスライダを$iに以降します
$value =`colorAtPoint -u 0.5 -v 0.5 -o A file1`;
//MELのcolorAtPointコマンドを実行し色情報を取得します(詳しくはMELコマンドヘルプへ)
setAttr ($loc[0] + ".ty") $value[0];
//ロケーターの移動Yに色情報から取得した値をいれます
setKeyframe ($loc[0] + ".ty");
//ロケーターの移動Yにキーフレームを打ちます
このブログではMELの解説等を一切してなかったので
MELってなんぞ?って方もいらっしゃるかもしれませんが
簡単に言うとMaya専用のスクリプト言語です。
繰り返し処理等をする時はとても便利です。
もし興味のある方は意外と独学でgoogle先生に聞きながらでも出来ると思いますので
チャレンジしてみてください。
今回は音声ファイルをmayaにもっていこうと思います。
単純に再生するだけならタイムラインにドラッグ&ドロップで出来ますが、
サウンドウェーブを使ったアニメーション等はできません。
なので今回はサウンドウェーブをmayaのtlanslateへもっていく方法を
ご紹介したいと思います。
まずは、サウンドウェーブをmayaからでも読み取れるカタチに
しなければなりませんので、今回はAfter Effectsを使いたいとおもいます。
コンポジション設定はこんな感じです。
デュレーションは音声ファイルの長さに合わせてください。
タイムラインに音声ファイルをのっけたら
真っ黒な平面を作成し、その上に真っ白な平面を作成します。
こんな感じです。
次に、音声ファイルを右クリックし
キーフレーム補助 → オーディオをキーフレームに変換
を実行します。
するとオーディオ振幅というレイヤーができ、
右と左と両方のチャンネルがスライダとしてキーフレームに変換されています。
次に、真っ白な平面の不透明度のストップウォッチのアイコンを
Altキーを押しながらクリックします。
すると、エクスプレッションが打てるようになります。
エクスプレッションの渦巻状のアイコンをドラッグして
スライダの上でドロップします。
では、再生してみてください。
サウンドウェーブに合わせて白黒するアニメーションができていると思います。
つまり、この白黒情報をmayaで読み取りtranslateにもっていこうという算段です。
なので、これをレンダリングします。
※注意 後でテクスチャアニメーションで読み込むので
soundWave.[###].png のように連番の前は必ず.にして下さい。
ファイルフォーマットは非可逆圧縮のpngとかをおススメします。
ここからはmayaでの作業
(maya 2013だと一部melがうまく実行されないので(バグ?)
今回はmaya 2011を使っています)
ハイパーシェードからファイルノードを作成します。
ファイルノードに先ほど作成した画像を読み込みます。
Use Image Sequenceにチェックを入れると連番で画像を読み込んでくれます。
※注意 AEで書きだしたファイルは0から始まるので0フレーム目が
1枚目のテクスチャになっています。
これを変更したい時は紫色になっているImage Numberの
エクスプレッションを変更する必要があります。
次に、スクリプトエディタを開き以下のMELを実行します。
//////////////////////////////////////////////////////
{
float $value[];
string $loc[] =`spaceLocator`;
for($i=開始フレーム;$i<=終了フレーム;$i++){
currentTime $i;
$value =`colorAtPoint -u 0.5 -v 0.5 -o A ファイルノード名`;
setAttr ($loc[0] + ".ty") $value[0];
setKeyframe ($loc[0] + ".ty");
}
}
//////////////////////////////////////////////////////
日本語のところは半角英数字に書き換えて使ってください。
ちなみに今回の場合はこんな感じ。
//////////////////////////////////////////////////////
{
float $value[];
string $loc[] =`spaceLocator`;
for($i=0;$i<=899;$i++){
currentTime $i;
$value =`colorAtPoint -u 0.5 -v 0.5 -o A file1`;
setAttr ($loc[0] + ".ty") $value[0];
setKeyframe ($loc[0] + ".ty");
}
}
//////////////////////////////////////////////////////
実行してうまくいけばlocatorが現れ、上下に動きます。
これをスケールの値に入れたりなどして
簡単なモーショングラフィックスなんかも作れますね!
今回のMELの実行内容はこんな感じです。
float $value[];
//float型の配列を定義します
string $loc[] =`spaceLocator`;
//ロケーターを作成し、作成されたロケーター名を配列の0番目にいれます
for($i=0;$i<=899;$i++){ 実行 }
//$iの初期値(0)から$i<=899が成り立っている間ループし、毎回ループ終了後に$iに1を足します
currentTime $i;
//タイムスライダを$iに以降します
$value =`colorAtPoint -u 0.5 -v 0.5 -o A file1`;
//MELのcolorAtPointコマンドを実行し色情報を取得します(詳しくはMELコマンドヘルプへ)
setAttr ($loc[0] + ".ty") $value[0];
//ロケーターの移動Yに色情報から取得した値をいれます
setKeyframe ($loc[0] + ".ty");
//ロケーターの移動Yにキーフレームを打ちます
このブログではMELの解説等を一切してなかったので
MELってなんぞ?って方もいらっしゃるかもしれませんが
簡単に言うとMaya専用のスクリプト言語です。
繰り返し処理等をする時はとても便利です。
もし興味のある方は意外と独学でgoogle先生に聞きながらでも出来ると思いますので
チャレンジしてみてください。
登録:
投稿 (Atom)