Possible Bug: Record Translate gets turned on importing physics .rag

I’ve sanity checked this a few times and its consistent:

Turn off Record Translation on marker, export physics file, import that file onto rig and Record Translation is enabled.

What it appears is if there’s a marker that’s a child of another marker who does have Record Translation on, then it must be inheriting that attribute from its parent and ignoring its own. Or this isn’t getting included in the .rag file at all and its defaulting to record translation.

Edit: on linux ragdoll version 2024.07.01, Maya 2023.3

I’ve created a script to turn off record translation as a temporary workaround as I’m using it on 10+ rigs meaning this impacts 100+ markers and they’re only turn off-able one at a time without something like this (expects a namespace):

# This script sets the "recordTranslation" attribute to 0 for all selected objects in Maya,
# finding the attribute on nodes prefixed with "rMarker_" and using the selected object's name without the namespace.

import maya.cmds as cmds

# Get all selected objects
selected_objects = cmds.ls(selection=True)

# Check if any objects are selected
if selected_objects:
    for obj in selected_objects:
        # Strip namespace if present to get the base object name
        base_name = obj.split(":")[-1]
        
        # Construct the marker node name
        marker_node = f"rMarker_{base_name}"
        
        # Construct the attribute path
        attr = f"{marker_node}.recordTranslation"
        
        # Check if the marker node and attribute exist
        if cmds.objExists(marker_node) and cmds.attributeQuery("recordTranslation", node=marker_node, exists=True):
            try:
                # Set the attribute to 0
                cmds.setAttr(attr, 0)
                print(f"Set {attr} to 0")
            except RuntimeError as e:
                print(f"Error setting {attr}: {e}")
        else:
            print(f"Node '{marker_node}' or attribute 'recordTranslation' does not exist.")
else:
    print("No objects selected.")

Thanks for reporting this, I can confirm that this attribute is not exported as part of the .rag file, and thus would default to its True value.

Another way to get the same effect is to lock the Translate channels of the control, Ragdoll won’t record to locked attributes.

This will be exported proper in the next upcoming release.