Action Constraint

提供: wiki
2018年6月29日 (金) 06:07時点におけるYamyam (トーク | 投稿記録)による版 (1版 をインポートしました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

Action Constraint

The Action constraint allows you to control an Action using the transformations of another object.

The underlying idea of the Action constraint is very similar to the one behind Drivers, except that the former can use a whole action (i.e. a set a Fcurves of the same type), while the latter only controls a single Fcurve of their 'owner' object.

Note that even if the constraint accepts the Mesh action type, only the Object, Pose and Constraint types are really working, as constraints can only affect objects' or bones' transform properties, and not meshes’ shapes… . Also note that only the object transformation (location, rotation, scale) is affected by the action, if the action contains keyframes for other properties they are ignored, as constraints do not influence those.

As an example, let’s assume you have defined an Object action (it can be assigned to any object, or even no object at all), and have mapped it on your owner through an Action constraint, so that moving the target in the [0.0, 2.0] range along its X axis maps the action content on the owner in the [0, 100] frame range. This will mean that when the target’s X property is 0.0, the owner will be as if in frame 0 of the linked action; with the target’s X property at 1.0, the owner will be as if in frame 50 of the linked action, etc.

Options

Action panel
Target
This constraint uses one target, and is not functional (red state) when it has none.
Bone
When target is an armature object, use this field to select the target bone.
Transform Channel
This drop-down list controls which transform property (location, rotation or scale along/around one of its axes) from the target to use as “action driver”.
Target Space
This constraint allows you to choose in which space to evaluate its target’s transform properties.
To Action
Select the name of the action you want to use.
Exclamation mark.png
Even though it might not be in red state (UI refresh problems…), this constraint is obviously not functional when this field does not contain a valid action.
Object Action
Bones only, when enabled, this option will make the constrained bone use the “object” part of the linked action, instead of the “same-named pose” part. This allows you to apply the action of an object to a bone.
Target Range Min/Max
The lower and upper bounds of the driving transform property value.
By default, both values are set to 0.0
Exclamation mark.png
Unfortunately, here again we find the constraints limitations:
  • When using a rotation property as “driver”, these values are “mapped back” to the [-180.0°, 180.0°[ range.
  • When using a scale property as “driver”, these values are limited to null or positive values.
Action Range Start/End
The starting and ending frames of the action to be mapped.
Note that:
  • These values must be strictly positive.
  • By default, both values are set to 0, which disables the mapping (i.e. the owner just gets the properties defined at frame 0 of the linked action…).

Notes

  • When the linked action affects some location properties, the owner’s existing location is added to the result of evaluating this constraint (exactly as when the Offset button of the Copy Location constraint is enabled…).
  • When the linked action affects some scale properties, the owner’s existing scale is multiplied with the result of evaluating this constraint.
  • When the linked action affects some rotation properties, the owner’s existing rotation is overridden by the result of evaluating this constraint.
  • Unlike usual, you can have a Start value higher than the End one, or a Min one higher than a Max one: this will reverse the mapping of the action (i.e. it will be “played” reversed…), unless you have both sets reversed, obviously!
  • When using a Constraint action, it is the constraint channel’s names that are used to determine to which constraints of the owner apply the action. E.g. if you have a constraint channel named “trackto_empt1”, its keyed Influence and/or Head/Tail values (the only ones you can key) will be mapped to the ones of the owner’s constraint named “trackto_empt1”.
  • Similarly, when using a Pose action (which is obviously only meaningful and working when constraining a bone!), it is the bone’s name that is used to determine which bone channel’s names from the action to use (e.g. if the constrained bone is named “arm”, it will use and only use the action’s bone channel named “arm”…). Unfortunately, using a Pose action on a whole armature object (to affect all the keyed bones in the action at once) won’t work…
  • Note also that you can use the pose library feature to create/edit a Pose action datablock… just remember that in this situation, there’s one pose per frame!