CCHARUMODULE

Overview

The CCHARUMODULE is a character framework providing pre-assembled base classes for actors, pawns, characters, projectiles and players. Each base class comes with a component-based architecture where components are automatically created and wired in the constructor via UCInitializerComponent. At runtime, a data-driven spawner system instantiates and manages actors in a tile-based pooling pipeline, while a separate player spawner handles player creation and possession.

Depends on CCOREUMODULE.

Functionalities Overview
Base Classes Pre-assembled actor hierarchy: ACActor, ACPawn, ACCharacter, ACProjectile, ACPlayer1STCharacter, ACPlayerFLYPawn, ACSun, ACPortrait
Components Modular components: initializer, life, interaction, selection, skill, combat (combotter), movement, camera, debug, FOW, minimap, compass, automation, navigation, AI perception
Data Configuration structures: FCCharacterDetailMaker (DataTable row), FCNPCMaker, FCPlayerMakerStruct, UCActorInformation (runtime state)
Spawner ACActorSpawner for NPC/actor pooling around a tracked pawn, ACPlayerSpawner for player creation and switching
Animation UCAnimInstance with typed variable system and montage priority, CMontageNotifier for combat/block/range notify events
Blueprint UCCharBPLibrary exposing player retrieval, team attitude and tag queries to Blueprint

Architecture

The character pipeline works as follows:

  1. FCCharacterDetailMaker DataTable rows define everything about an actor: class, mesh, animations, skills, AI, combat stats, team, scale, biome constraints.
  2. ACActorSpawner reads a FCNPCMaker DataTable row, creates a UCActormaker that distributes actors across room cells using RoomUtility.
  3. On tick, UCActormaker::buildASync computes which actors should be active based on pawn proximity, pools spawn/despawn in batches, and manages NavMesh bounds.
  4. When an actor is spawned (popOn), UCInitializerComponent::init cascades initialization to every component: capsule, mesh, interaction, life, combat, skills, etc.
  5. ACPlayerSpawner creates UCPlayermaker instances from FCPlayerMakerStruct rows, handles player creation, teleportation to eligible rooms, and player switching.
  6. UCAnimInstance drives animation state via typed variables (CAnimBoolVar, CAnimFloatVar) and integrates with UCCombotterComponent state machines for attack/block/range combat.