> ## 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.

# Character

> Configure the Sci-Fi character, its components, input, and equipment.

export const ShooterCharacter = ({characterName, shooterImage}) => <>
    <h2 id="shooter-character">Shooter character</h2>

    <p>Shooter Core keeps the shared movement and inventory behavior, then adds the actions a firearm needs. Its <code>BP_Shooter_Character</code> maps reload and fire-mode input to the currently equipped weapon. <code>{characterName}</code> inherits these connections.</p>

    <p>The added <code>AC_RecoilAnimation</code> component generates kick and recovery for the active weapon. On equip, the weapon view initializes it from the weapon's recoil settings. When a shot fires, the view starts recoil alongside the firing animation, sound, and muzzle flash. The animation graph applies that motion to the weapon pose.</p>

    {shooterImage}
  </>;

export const Character = ({characterName, shooterCharacterName, componentsImage, itemsImage, initializationImage, inputImage, nextLinks}) => <>
    <p><code>{characterName}</code> handles the player's movement, look input, and equipment. It keeps a simple inventory of spawned items, equips one at a time, and forwards actions such as use, aim, and inspect to that item.</p>
    <p>The character also owns the components that animate the hands, move the camera, and play extra weapon motion. Those components work with the equipped item's view, so changing weapons also changes the holding pose and action animations.</p>
    <h2 id="class-hierarchy">How the character is built</h2>
    <p>The character inherits its behavior through three Blueprint classes:</p>
    <ol>
      <li><code>BP_Gameplay_Character</code> extends Unreal's <code>Character</code>. It adds input handling, simple inventory, item switching, and the camera and animation connections. This is the shared Gameplay Framework character.</li>
      <li><code>{shooterCharacterName}</code> adds Shooter Core behavior: reload and fire-mode input, plus the recoil component.</li>
      <li><code>{characterName}</code> configures the pack's character and equipment on top of those shared classes.</li>
    </ol>
    <p>Duplicate <code>{characterName}</code> when you want to customize the pack character. Your copy keeps this setup while giving you a place to change equipment and defaults.</p>

    <h2 id="components">How the components work together</h2>
    <p>Unreal's movement component moves the character. <code>AC_GameplayAnimation</code> connects its movement and item actions to animation. The camera and IK motion components handle the extra motion you see in first person.</p>

    {componentsImage}
    <table>
    <thead><tr><th>Component</th><th>What it does</th></tr></thead>
    <tbody><tr><td><code>CapsuleComponent</code></td><td>Character collision.</td></tr>
    <tr><td><code>CharacterMovement</code></td><td>Walking, jumping, and movement physics.</td></tr>
    <tr><td><code>Mesh</code></td><td>Character mesh and its Animation Blueprint.</td></tr>
    <tr><td><code>Camera</code></td><td>The view you see during play.</td></tr>
    <tr><td><code>AC_FirstPersonCamera</code></td><td>Camera animation, free look, FOV transitions, and shakes.</td></tr>
    <tr><td><code>AC_GameplayAnimation</code></td><td>Active animation settings, montage playback, overrides, action state, and lean.</td></tr>
    <tr><td><code>AC_IKMotionPlayer</code></td><td>Short curve-driven motions, such as raising the weapon into a ready pose.</td></tr></tbody>
    </table>

    <h2 id="character-settings">Equipment and movement settings</h2>
    <p>In <strong>Class Defaults</strong>, <strong>Item Classes</strong> defines what the player carries. At startup, the character spawns these classes into <code>Items</code>; <code>ActiveItemIndex</code> identifies the selected entry. Switching items puts away the current item and equips the next one.</p>
    <p>Change <code>ItemClasses</code> to configure equipment. The other inventory values below describe the items created during play.</p>

    <table>
    <thead><tr><th>Property</th><th>Use</th></tr></thead>
    <tbody><tr><td><code>ItemClasses</code></td><td>Classes the character spawns as its equipment. Add your weapon or item child Blueprint here.</td></tr>
    <tr><td><code>MovementSpeeds</code></td><td>Speed configuration read by the movement logic.</td></tr>
    <tr><td><code>MouseSensitivity</code></td><td>Scales look input.</td></tr>
    <tr><td><code>Items</code>, <code>ActiveItemIndex</code></td><td>Spawned equipment and the selected entry. The character manages these during play.</td></tr>
    <tr><td><code>MovementState</code>, <code>Speed</code>, <code>Gait</code></td><td>Movement information used by the animation system.</td></tr>
    <tr><td><code>bWantsToSprint</code></td><td>Sprint intent read by movement handling.</td></tr></tbody>
    </table>

    {itemsImage}
    <h2 id="initialization-and-input">Initialization and input</h2>

    <p>At startup, the character connects its camera and mesh to the camera component and prepares its equipment. The item views can then find the owning character and its animation component. Extend <code>OnPossessed</code> when you need additional possession-time setup; keep the parent behavior.</p>

    {initializationImage}
    <p><code>IMC_Gameplay_Core</code> maps controls to shared character actions. Move and look affect the character; use, aim, and inspect go to the equipped item. For example, pressing use starts the item's <code>UseItem</code> action, and releasing it calls <code>StopUsingItem</code>. A firearm and a grenade can respond differently to those same inputs.</p>
    <p>Free look sends look input to the camera so the player can look around independently of the normal character turn.</p>

    {inputImage}
    <h2 id="interfaces-and-types">Interfaces and types</h2>

    <p>Use <code>BPI_Gameplay_Character</code> to call <code>GetCharacterMesh</code>, <code>GetAnimationComponent</code>, <code>GetEquippedItem</code>, and <code>GetFirstPersonCamera</code>. These accessors let another Blueprint work with the character without knowing its product-specific class.</p>

    <p><code>E_MovementState</code> describes the movement state consumed by animation. Keep movement state on the character and animation tuning in its settings assets.</p>

    <p>To add equipment, create a child item Blueprint and add it to <code>ItemClasses</code>. Test switching to it before changing its animation or effects.</p>

    {nextLinks}
  </>;

export const NextLinks = () => <p>For a custom mesh, follow <a href="/sci-fi-fps-pack/unreal/tutorials/animation-setup">Animation setup</a>. For equipment behavior, see <a href="/sci-fi-fps-pack/unreal/general/items-and-weapons">Items and weapons</a>.</p>;

<Character characterName="BP_SciFi_Character" shooterCharacterName="BP_Shooter_Character" componentsImage={<Frame caption="The Sci-Fi character inherits the camera and animation components."><img src="https://mintcdn.com/kinemation/9aZEADwMORfeQEcq/images/sci-fi-fps-pack/unreal/sci-fi-fps_character-components.png?fit=max&auto=format&n=9aZEADwMORfeQEcq&q=85&s=9b3afd95643fe7c994aa1266fd26ef65" alt="Sci-Fi character component hierarchy" /></Frame>} itemsImage={<Frame caption="Add weapon classes to the character's equipment list."><img src="https://mintcdn.com/kinemation/9aZEADwMORfeQEcq/images/sci-fi-fps-pack/unreal/sci-fi-fps_character-details-items-list.png?fit=max&auto=format&n=9aZEADwMORfeQEcq&q=85&s=dd5b807d2c7fd75967768b38e80a3fae" alt="Character Item Classes list" /></Frame>} initializationImage={<Frame caption="Begin Play prepares the shared character setup."><img src="https://mintcdn.com/kinemation/BvKUc44M8EsdeT19/images/gameplay-framework/unreal/gameplay-framework_event-begin-play.png?fit=max&auto=format&n=BvKUc44M8EsdeT19&q=85&s=770a0085be1a4558dde28d2828e206a6" alt="Gameplay character Begin Play graph" /></Frame>} inputImage={<Frame caption="Use input starts and stops the equipped item's action."><img src="https://mintcdn.com/kinemation/BvKUc44M8EsdeT19/images/gameplay-framework/unreal/gameplay-framework_character_use-input.png?fit=max&auto=format&n=BvKUc44M8EsdeT19&q=85&s=51d601328f5dacb1947d63a8e6fe92e3" alt="Use and Stop Using Item calls from character input" /></Frame>} nextLinks={<NextLinks />} />

<ShooterCharacter characterName="BP_SciFi_Character" shooterImage={<Frame caption="The shooter character adds reload and fire-mode input."><img src="https://mintcdn.com/kinemation/-Xb9vtQBgywM0dwu/images/shooter-core/unreal/BP_Shooter_Character_EventGraph_00000.png?fit=max&auto=format&n=-Xb9vtQBgywM0dwu&q=85&s=547766ee5a93f985d090ffd1d788e8ac" alt="Shooter character input event graph" /></Frame>} />
