MayaScripts_NoiseAnimGenerator : 自動でノイズアニメーション
2023/02/20 Update
今回も自作スクリプトの紹介。
例によってPymelです。
Download
NoiseAnimGenerator
なんてことはない、ノイズアニメーションを自動生成するものです。
アニメーション作業において、必ずといっていいほどノイズアニメーションを作る機会があるでしょう?
毎回毎回、適当なフレームごとに適当なキーを打つのはめんどうだよね。
短いものならいいけど、数百フレームにおいてそれを実行するのは地獄。
悪いCGアニメータはノイズアニメーションを無限に作成する地獄か、ポリゴンの埋まりを解消する作業だけをさせられる地獄に落とされます。
たとえそんな地獄に落ちても、このスクリプトがあればノイズアニメーション地獄だけは楽に過ごせるようになります。
これでなにができるのか?
- チャネルボックス上で選択された任意のアトリビュートに対して 、自動でノイズアニメーションを生成します。
- 生成するアニメーションは、自動的にアニメーションレイヤに追加されるので、既存のアニメーションを破壊しません。
- 単なるランダム値の他に、複数の種類のオフセットタイプがあります。
使用方法
ダウンロードしたフォルダの中から、NoiseAnimGeneratorフォルダを以下に配置。
C:\Users\ユーザー名\Documents\maya\scripts
Mayaのスクリプトエディタ等に以下の内容を記述して実行。
import NoiseAnimGenerator
NoiseAnimGenerator.main()
UIについて
実行すると以下のようなUIが表示されます。
それぞれの設定項目の詳細
- Amount Value
- ノイズの強度
- Frame Range
- ノイズを生成するフレーム範囲
- Frame Step
- ノイズの間隔
- Anim Layer
- ノイズを生成するアニメーションレイヤを選択
- 基本的にはAutoで問題ないです。
- Load
- アニメーションレイヤリストをリロードします。
- Offset Type
- ノイズアニメーションの強度を オフセットする種類 。※後述
- Regenerate
- オンにしていると、ノイズ生成時に、既にアニメーションレイヤ内に存在するノイズアニメーションを削除して新規でノイズを生成します。
- オフにしていると、ノイズ生成時に、アニメーションレイヤ内にあるアニメーションを削除しません。
- Generate
- ノイズ生成開始する
- Cancel
- ウィンドウを閉じる
AnimLayerについて
AnimLayerの項目が Auto になっている状態で、ノイズを生成すると
okNoiseAnim という名のアニメーションレイヤがシーン内に追加され、ターゲットのアトリビュートのノイズアニメーションは全てこのレイヤに追加されます。
既にこのレイヤがシーン内に存在する場合は、ターゲットアトリビュートの追加のみが行われます。
また、ノイズを生成するフレーム範囲の両端は、必ず 「0」 の値が入りますので、既存のアニメーションに 不要なオフセットが入ることがないようにしています。
AnimLayerを設定するプルダウンメニューにはシーン内に存在する全てのアニメーションレイヤが表示されます※ので、任意のレイヤにノイズを生成することもできますが、Auto にして置くことをお勧めします。
※表示されない場合は、Loadボタン 押してみてください。
Offset Type
このスクリプトの推しポイントは、ノイズの強度をオフセットできる 点です。
具体的にいうと、選択した項目名ごとに以下のようなオフセットがかかります。
- RANDOM
- 単純なランダム値に基づいてノイズを生成。
- ZIGZAG
- ジグザグになるようにランダム値を生成。
- INCREASE
- 徐々に大きくなるノイズを生成。
- DECREASE
- 徐々に小さくなるノイズを生成。
- INCREASE WAVE
- 指定フレーム範囲の中間部分が、最も大きくなるようにノイズを生成。
- DECREASE WAVE
- 指定フレーム範囲の中間部分が、最も小さくなるようにノイズを生成。
画像乗っけときますね?
更新履歴
ver 2.2 不具合を修正。
ver 2.0
キーフレームを正しく打てない不具合を修正。ver 2.0.beta
Maya2022以降に対応する為、Python3でも動くように修正。
RegenerateフラグとLoadボタンを追加。ver 1.0
配布開始。
制作話
ノイズアニメーションはとにかく作るのがめんどう。
なのに必ずどっかでノイズを作らなきゃいけないこともある。
でも未だにMayaにはそのような機能はない。次のバージョンでは入っているのかな。
最近は朝晩と冷えるので、裸でノイズアニメーション作ってたら風邪引いたなんて話もよく聞きます。
そんな哀れな人を救いたい。そんな一心でつくりました。
それでは。