Skip to main content

Upgrading Rukhanka

If Rukhanka was installed in custom location (not via package manager) delete previous contents of the package before new version installation.

2.5.x → 2.6.0

  • New skinned mesh baking approach makes several components obsolete. The following list describes the component changes in the Rukhanka source code:
    • AnimatedRendererComponent. This component was used on skinned mesh render entities to link them to the corresponding skinned mesh component and the animator. Render entities no longer exist, so this component no longer serves any purpose and has been removed.
    • SkinnedMeshRenderEntity dynamic buffer component. This buffer previously held references to all render entities related to a given skinned mesh entity. Since render entities are no longer used, this buffer also no longer serves any purpose and has been removed.
    • AnimatedSkinnedMeshComponent. This component, which held baked skinned mesh data, has been renamed to SkinnedMeshRendererComponent to better reflect its purpose. An entity with SkinnedMeshRendererComponent now holds all rendering-related data.

This change greatly simplifies the dynamic skinned mesh attachment workflow (there is no longer a need to manage the SkinnedMesh → Root Bone → Render Entities hierarchy), and all relevant data is now located on a single entity. The approach to applying MaterialOverrides is now the same as for ordinary mesh renderers.

2.4.x → 2.5.0

  • Deprecation of IAspect. The Entities package marked the use of IAspect as deprecated starting from v1.4.0-exp.2. The usage of IAspect was removed from the codebase in Rukhanka.Animation v2.5.0. The migration process is straightforward:

Animator Parameters Aspect

Before v2.5.0:

struct MyAnimationProcessingJob: IJobEntity
{
public FastAnimatorParameter moveSpeedParam;

void Execute(AnimatorParametersAspect apa)
{
apa.SetFloatParameter(moveSpeedParam, 1.0f);
}
}

After v2.5.0:

struct MyAnimationProcessingJob: IJobEntity
{
public FastAnimatorParameter moveSpeedParam;

void Execute(DynamicBuffer<AnimatorControllerParameterComponent> animatorParametersBuf,
AnimatorControllerParameterIndexTableComponent animatorParametersIndexTable)
{
var apa = new AnimatorParametersAspect(animatorParametersBuf, animatorParametersIndexTable);
apa.SetFloatParameter(moveSpeedParam, 1.0f);
}
}

Animator State Query Aspect

Before v2.5.0:

struct MyAnimatorStateQueryJob: IJobEntity
{
void Execute(AnimatorStateQueryAspect animatorStateQuery)
{
// Use animatorStateQuery object
}
}

After v2.5.0:

struct MyAnimatorStateQueryJob: IJobEntity
{
void Execute(DynamicBuffer<AnimatorControllerLayerComponent> layers)
{
var animatorStateQuery = new AnimatorStateQueryAspect(layers);
// Use animatorStateQuery object
}
}

The same approach should be used for idiomatic foreach migration.

2.1.x → 2.2.0

  • Entities.Graphics deformation shader is deprecated to use with Rukhanka Animation System. A console warning will be issued if such shader is detected on skinned mesh shader material. Please upgrade your deformation shaders as described in the documentation. Note that new deformation features like in-place skinning, half-precision deformation data, and dual quaternion skinning will not work with Entities.Graphics deformation shader.

1.9.x → 2.0.0

  • Due to the massive amount of internal changes all animated entities and blob assets require rebake.

1.6.x → 1.7.0

1.5.1 → 1.6.0

  • With introducing of animation culling ability, previously configured authoring prefabs can behave incorrectly. Please, carefully read Animation Frustum Culling section of documentation and make necessary prefab adjustments.
  • With introducing of skinned mesh renderer bounding box recalculation ability, previously configured authoring prefabs can behave incorrectly. Please, carefully read Renderer Bounding Box Recalculation section of documentation and make necessary prefab adjustments.

1.5.0 → 1.5.1

  • RebuildOutdatedBonePoses function was removed from the public accessibility level. AnimationStream will rebuild outdated bone poses automatically on Get calls. It is now derived from an IDisposable interface, and disposal is required after its usage.

1.4.0 → 1.5.0

  • The internal package name has been changed to com.rukhanka.animation. You need to adjust your assembly references if Rukhanka is referenced by name.
  • Entity bone stripping mode needs to be configured again due to the RigDefinitionAuthoring UI change.

1.2.x → 1.3.0

  • The rig definition avatar mask asset is not needed anymore. Prepare your model to contain all necessary information by following the rig definition setup process. All previously created rig definition avatar mask assets can be safely deleted.