FCBP_MontageWithName

Montages for one animation slot, keyed by ECSkeletalMontageName. FCBP_CPSkeletal.animMontageBases is an array of these: one FCBP_MontageWithName per slot (so the same attack can play in the upper-body slot or the final slot).

In practice you do not fill this map by hand. You use the UCGameBPLibrary helpers, which build the per-slot montages (and insert the combat notifies) from plain anim sequences:

  • createMontageForEachSlot(upperBodySequences, finalSequences, ...) → builds the whole array.
  • conv_SequenceMapAndSlotToMontageWithNameArray(sequences, slotName) → one slot’s array.

Setters

Setter Effect
animMontageBaseMap(TMap<ECSkeletalMontageName, UAnimMontage*>) Low-level: directly sets the montage for each slot name in this one slot. Prefer the helpers above.

createMontageForEachSlot takes five maps, in this order:

  1. sequences → montages built in the upper-body slot,
  2. sequences → montages built in the final slot,
  3. ready-made montages for the upper-body slot,
  4. ready-made montages for the final slot,
  5. ready-made montages played without changing slot.

Pass {} for the maps you don’t use.

.animMontageBases(UCGameBPLibrary::createMontageForEachSlot(
    /* 1. upper-body slot, from sequences */ {
        {ECSkeletalMontageName::ATTACK_0_ANIM, retrieveAsset<UAnimSequence>("ATTACK_0")},
        {ECSkeletalMontageName::ATTACK_1_ANIM, retrieveAsset<UAnimSequence>("ATTACK_1")},
        {ECSkeletalMontageName::ATTACK_2_ANIM, retrieveAsset<UAnimSequence>("ATTACK_2")},
        {ECSkeletalMontageName::DAMAGED_ANIM, retrieveAsset<UAnimSequence>("DAMAGED")},
        {ECSkeletalMontageName::BLOCK_START_ANIM_LOOP, retrieveAsset<UAnimSequence>("BLOCK_START")},
        {ECSkeletalMontageName::BLOCK_END_ANIM, retrieveAsset<UAnimSequence>("BLOCK_END")},
    },
    /* 2. final slot, from sequences */ {
        {ECSkeletalMontageName::KILLED_ANIM, retrieveAsset<UAnimSequence>("KILLED")},
        {ECSkeletalMontageName::TURN_LEFT_ANIM, retrieveAsset<UAnimSequence>("TURN_LEFT")},
        {ECSkeletalMontageName::TURN_RIGHT_ANIM, retrieveAsset<UAnimSequence>("TURN_RIGHT")},
    },
    /* 3. upper-body slot, ready-made montages */ {
        {ECSkeletalMontageName::RANGE_START_ANIM_LOOP, retrieveAsset<UAnimMontage>("RANGE_START_MONTAGE")},
    },
    /* 4. final slot, ready-made montages */ {
        {ECSkeletalMontageName::RANGE_END_ANIM, retrieveAsset<UAnimMontage>("RANGE_END_MONTAGE")},
    },
    /* 5. no slot change, ready-made montages */ {
        {ECSkeletalMontageName::ATTACK_3_ANIM, retrieveAsset<UAnimMontage>("SPECIAL_MONTAGE")},
    }))