OmniShift is built on a modular, component-based architecture that integrates seamlessly with Unreal Engine's systems. The framework is designed around 7 core components that work together to provide a complete character solution.
┌─────────────────────────────────────────────────────────────────┐
│ GASPAC_CharacterBase │
│ (Main Character Class) │
└─────────────────────┬───────────────────────────────────────────┘
│
┌─────────────┼─────────────┐
│ │ │
┌───────▼──────┐ ┌────▼────┐ ┌─────▼─────┐
│ Core │ │ Data │ │ Input │
│ Components │ │ Assets │ │ System │
└───────┬──────┘ └────┬────┘ └─────┬─────┘
│ │ │
┌───────▼────────────────────────▼─────────────────────────────────┐
│ 7 Core Components │
├─────────────────────────────────────────────────────────────────┤
│ 1. GASPAC_AbilitySystemComponent │ 5. GASPAC_ProceduralRigComponent │
│ 2. GASPAC_AttributeSet_Core │ 6. GASPAC_ProceduralAnimationComponent │
│ 3. GASPAC_BodyProcessingComponent │ 7. GASPAC_InteractionHandComponent │
│ 4. GASPAC_CameraManagerComponent │ │
└─────────────────────────────────────────────────────────────────┘
Purpose: Simplified Gameplay Ability System (GAS) integration
Key Responsibilities:
Integration Points:
GASPAC_AttributeSet_Core for attribute managementGASPAC_AbilitySetDataAsset for ability definitionsPurpose: Character attribute management
Key Attributes:
Integration Points:
Purpose: Full-body awareness and IK processing
Key Features:
Integration Points:
Purpose: Multi-mode camera system management
Supported Camera Modes (8 total):
Key Features:
Purpose: Real-time bone manipulation and rig management
Key Features:
Integration Points:
Purpose: Animation state management and blending
Supported Locomotion States (16 total):
Key Features:
Purpose: Trespasser-style F-Key interaction system
Key Features:
Integration Points:
OmniShift uses a comprehensive data asset system for configuration. Each data asset type handles specific aspects of character behavior:
Data Assets/
├── Core Configuration/
│ ├── GASPAC_CharacterConfigDataAsset (Main character settings)
│ ├── GASPAC_RigConfigDataAsset (Bone hierarchy & IK)
│ └── GASPAC_LocomotionProfileDataAsset (Animation states)
├── System Configuration/
│ ├── GASPAC_CameraProfileDataAsset (Camera modes & settings)
│ ├── GASPAC_BodyConfigDataAsset (IK & visibility)
│ ├── GASPAC_RagdollConfigDataAsset (Physics & ragdoll)
│ ├── GASPAC_InputProfileDataAsset (Input mappings)
│ ├── GASPAC_AbilitySetDataAsset (GAS abilities)
│ └── GASPAC_SoundProfileDataAsset (Audio configuration)
Input System → Character Base → Component Manager → Individual Components
↓ ↓ ↓ ↓
Enhanced Input Event System Update Loop (Tick) System-Specific Logic
↓ ↓ ↓ ↓
Input Actions Delegates Performance Updates State Changes
↓ ↓ ↓ ↓
Character State Notifications Optimized Updates Network Replication
OmniShift supports multiple character types through its configurable rig system:
Each character type has specific rig configurations:
| System | Performance Target | Optimization Technique |
|---|---|---|
| Full Character System | < 2ms/frame | Component-level optimizations |
| Procedural Animation | < 1ms/frame | IK chain optimization |
| Camera System | < 0.5ms/frame | Smart culling and updates |
| Network Sync | < 10KB/s/character | Delta compression and prioritization |
You can extend OmniShift by creating custom components:
// Example: Custom AI behavior component
UCLASS(ClassGroup = (OmniShift), meta = (BlueprintSpawnableComponent))
class OMNISHIFT_API UMyCustomComponent : public UActorComponent
{
// Custom implementation
};
Create custom configuration data assets:
UCLASS(BlueprintType)
class OMNISHIFT_API UMyCustomConfigDataAsset : public UDataAsset
{
// Custom configuration properties
};
Subscribe to character events for custom behavior:
// Example: Custom health system
Character->OnHealthChanged.AddDynamic(this, &AMyGameMode::OnCharacterHealthChanged);
gaspack.DebugMode 1 # Enable debug visualization
gaspack.ShowIK 1 # Show IK targets and chains
gaspack.Profile 1 # Enable performance profiling
gaspack.NetworkStats 1 # Show network statistics
Now that you understand the core architecture, explore these detailed guides:
Ready to implement specific features? Jump to the detailed component documentation for implementation guides and examples.