ドライバーを設定してみる

(2.73a)

ドライバーとは

アニメーションカーブを数式で表現する機能です。

サンプル

  • 360コマで1回転する

  • 36コマで36度回る

  • 0-30コマの間は動かない

  • 31コマ-36コマの間に次の回転角まで回って見えるように回転させる

  • これを繰返す

下の画像をクリックするとアニメーションを見ることができます。

https://sites.google.com/site/blugjp/blenderpython/drivers/intermittent.gif?attredirects=0

新規ドライバーの定義

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