Releases: MikalDev/c3_spine_plugin
Init refactor
Initi refactor
More straightforward init process within IsSpineReady
Create texture in init process, instead of withing Draw()
Separate skeletonData and texture assets init from loadSkeletons()
Fix current time event regression, no apply() in setAnimation
Fix current time event regression
Do not state.apply(skeleton) animation in setAnimation.
Only do this on tick. Will save some CPU from doing redundant animation setting.
Fix bbox expressions when object is flipped
1.34.2 1.34.2 Fix bbox values when Spine is mirrored/flipped.
Bone cache, repeated init bug fix
Cache bone control for better bone control performance.
Insure only one skeletonData initialization is done per Spine object.
Runtime skeletondata render quality control.
Only apply to one Spine instance per Spine object (e.g. use pick top instance).
Wait 0.1S after applying (caution for race condition, reviewing need.)
After done, destroy all Spine instance and then recreate as needed.
RenderOnce a tick+ after SetBoneControl
Have SetBoneControl have an effect even if animation is complete.
Add expressions and condition for bone control
Condition:
- Is bone {bone} {property} control active
Expression:
- Bone.Rotation(bone)
- Bone.X(bone)
- Bone.Y(bone)
- Bone.ScaleX(bone)
- Bone.ScaleY(bone)
Bone Control ACEs
Bone control ACEs
Action:
- Remove bone {bone} control of {property}
- Set bone {bone} {property} to {value}
{property} values: x, y, rotation, scale x, scale y
Condition:
TBD
Expressions
TBD
X and Y will be relative to local spine origin.
This is best used for the 'end' of ik chains (e.g. crosshairs) or bones without ik, etc. already applied to the property under control.
Delete Animation with reduced animation fix.
Add animate once to DeleteAnimation. Fix animation on a upper track not mixing to lower animations on delete of the upper track animation.
GL cache optimization
Experimental, may interfere with C3 render. Default disabled.
Add gl cache class and debug variable for control one time cache or not.
Could help with CPU limited applications.
Use spine debug variable ACE to control:
spineGLCache : ["enable|"disable"]