ドライバーを設定してみる
(2.73a)
ドライバーとは
アニメーションカーブを数式で表現する機能です。
サンプル
360コマで1回転する
36コマで36度回る
0-30コマの間は動かない
31コマ-36コマの間に次の回転角まで回って見えるように回転させる
これを繰返す
下の画像をクリックするとアニメーションを見ることができます。
新規ドライバーの定義
Z軸にドライバーを設定。3Dビュー、プロパティパネルのLocation Z を右クリック、"Add Driver"を選択します。
カーブエディタを表示、モードをDriverにします。
Euiler Z Rotation をクリック、Nキーを押してプロパティシェルフを開きます。
ドライバーの設定を行います。以下はデフォルト状態です。
変数タイプを"Single Property"にし、プロパティとして「現在のシーン(Scene:Scene)のフレーム数(frame_current)」を指定します。
"Expr:"に指定する式を組み立てます。
間欠動作するギアの式
(var+(((var % 36) -30)*4)-30)*pi/180 if (var % 36 >= 30 ) else (var-(var % 36 ))*pi/180
関数で制御したい場合には?
bpy.app.driver_namespace に関数を登録します。以下のように書いて、一度実行(テキストエディタ上で[Alt]+[P]を押す)します。
そのあとにカーブエディタでドライバーを設定します。
ドライバーで使用する関数のスケルトン
import bpy
def driverFunc(val):
return val * val # return val squared
bpy.app.driver_namespace['driverFunc'] = driverFunc
先ほどの式を書いてみると…
式を関数にしてみる
import bpy
def driverFunc(val):
return (val+(((val % 36) -30)*4)-30)*pi/180 if (val % 36 >= 30 ) else (val-(val % 36 ))*pi/180
bpy.app.driver_namespace['driverFunc'] = driverFunc
Expr: には関数を書きます。引数はvar