広告
広告

Blender のドライバー Tips

カテゴリ:blender

ドライバーでフレーム数を取得する

frame で現在フレームを取得できる。

frame

アクションの F-Curve を取得すれば1フレーム前の値を取得することもできる。以下の例では1フレーム前の X 位置を Y 位置に設定している。

set prev frame
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
result
実行結果

バージョン 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

関連記事

Drivers

Dependency Graph passed to Drivers

Blender 記事の目次


広告
広告