Blender のドライバー Tips
カテゴリ:blender
ドライバーでフレーム数を取得する
frame で現在フレームを取得できる。
アクションの F-Curve を取得すれば1フレーム前の値を取得することもできる。以下の例では1フレーム前の X 位置を Y 位置に設定している。
1フレーム前の X 位置を Y 位置に設定
ドライバーの式を直接設定する
ドライバーを設定できるパラメータの頭に#をつけた式を入力すると、ドライバーが直接設定される。例えば回転のZに #noise.random() を入力するとランダム回転させられる。
frame と組み合わせる
python 式で frame と入力すると現在のフレーム数を取得できる。1回転して元に戻るような回転をさせたい時は「#2*pi*sin(frame/100)」と入力すればいい。
簡易まばたき
まばたきをコントロールするボーンの位置をランダムに動かせばまばたきもできる。まばたきをコントロールするボーンのZ位置を 10 %の確率で動かすには以下の式を入力する。
#1 if noise.random() < 0.1 else 0
ドライバーに自作関数を登録する
bpy.app.driver_namespace に関数を登録すれば、ドライバー式から自作関数を呼び出せる。
import bpy import math def my_sin(val:float) -> float: return math.sin(val) bpy.app.driver_namespace['my_sin'] = my_sin
実行結果
バージョン 2.83.5 に登録されている関数・定数
「for f in bpy.app.driver_namespace: print(f)」で表示できる。
- acos
- acosh
- asin
- asinh
- atan
- atan2
- atanh
- ceil
- copysign
- cos
- cosh
- degrees
- erf
- erfc
- exp
- expm1
- fabs
- factorial
- floor
- fmod
- frexp
- fsum
- gamma
- gcd
- hypot
- isclose
- isinfinite
- isinf
- isnan
- ldexp
- lgamma
- log
- log1p
- log10
- log2
- modf
- pow
- radians
- remainder
- sin
- sinh
- sqrt
- tan
- tanh
- trunc
- pi
- e
- tau
- inf
- nan
- bpy
- noise