> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinemation.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Bone motion extractor

> Use BP_BoneMotionExtractor to prepare animation curves.

export const Modifier = ({modifierName, example, graphImage}) => <>
    <p><code>{modifierName}</code> turns a bone's movement into float curves. Use it when an animation graph needs motion values without sampling the original bone again.</p>

    <h2 id="apply-the-modifier">Apply the modifier</h2>

    <ol>
    <li><p>Open a copy of the target Animation Sequence.</p>
    </li>
    <li><p>Open <strong>Window &gt; Animation Data Modifiers</strong> and add <code>{modifierName}</code>.</p>
    </li>
    <li><p>Set the source and other properties described below, then apply the modifier.</p>
    </li>
    <li><p>Inspect the resulting curves and preview the animation.</p>
    </li>
    </ol>

    {example}
    <h2 id="settings">Settings</h2>

    <table>
    <thead><tr><th>Property</th><th>Use</th></tr></thead>
    <tbody><tr><td><code>SourceAnimation</code></td><td>Animation to sample. If unset, the modifier uses the sequence you apply it to.</td></tr>
    <tr><td><code>BoneName</code></td><td>Bone whose transform is sampled.</td></tr>
    <tr><td><code>RefBoneName</code></td><td>Bone sampled at time zero to establish the reference transform. If empty, the source bone supplies that reference.</td></tr>
    <tr><td><code>CurveName</code></td><td>Prefix added to the generated curve names.</td></tr>
    <tr><td><code>SampleRate</code></td><td>Samples per second. Use a positive value.</td></tr></tbody>
    </table>

    <p>The extractor records the source bone's transform relative to the reference pose sampled at the beginning. It does not recalculate the reference bone at every frame.</p>

    <p><code>CurveNames</code> holds the output suffixes used by the Blueprint. <code>Playback</code> and <code>RefPose</code> are working values maintained while applying it.</p>

    <h2 id="result-and-revert">Result and revert</h2>

    <p>The modifier writes the sampled transform channels into float curves on the target sequence. <strong>Revert</strong> removes the curves built from the prefix and suffixes; it does not restore older curves with those names. Use a distinct prefix when keeping other authored curves.</p>

    {graphImage}
  </>;

export const Example = () => <><h2>Example: customize a Sci-Fi animation</h2><p>For a custom Sci-Fi motion, duplicate a character sequence, select a bone from its Skeleton, and use a new curve prefix. Apply the modifier and compare the extracted curves with the bone motion.</p></>;

<Modifier modifierName="BP_BoneMotionExtractor" example={<Example />} graphImage={<Frame caption="BP_BoneMotionExtractor apply logic. Open the image to inspect the graph."><img src="https://mintcdn.com/kinemation/SNGN1MO-2cou2Sl-/images/kinemation/unreal/BP_BoneMotionExtractor_EventGraph_00000.png?fit=max&auto=format&n=SNGN1MO-2cou2Sl-&q=85&s=9f2505c2b8f96d82a3f5eac13f6d87ce" alt="BP_BoneMotionExtractor apply and curve-processing graph" /></Frame>} />
