Example Project Overview

The example project showcases a clean, production-minded implementation of the plugin. It isn’t meant to be a complete FPS game, but it is a strong knowledge base and reference—created by experienced first-person shooter industry professionals.

Folder Structure

The example project is split into three folders:

  • LevelPrototyping: Default Unreal project content.

  • Maps: Contains the example map.

  • ProceduralFPDemo: Contains the main demo systems and mechanics.

The ProceduralFPDemo folder is further split into several subfolders:

  • Audio: Contains weapon and footstep sounds.

  • Characters: Contains all Animation Blueprints, plus the Manny/Quinn meshes and materials. Also includes an example first-person animation set: Equip, Holster, Idle, Jump, JumpLoop, Land, Run, and Walk.

  • Core: Contains the main Character, PlayerController, and GameMode classes.

  • Data: Contains input-related data assets.

  • Equipments: Contains all equipment assets, including a flashlight and 7 ranged weapons, along with their meshes and animations.

  • Materials: Self-explanatory.

  • Widgets: Self-explanatory.

Characters:

The example project includes three character Blueprints inside the Core folder:

  • BP_Character_Base: Implements the core character mechanics, including equipment inventory, running, sprinting, aiming, and leaning.

  • BP_Character_DualMesh: Uses a dual-mesh first-person setup: the local player sees a dedicated first-person mesh (arms/legs), while other players see a separate third-person mesh. This also enables Unreal’s first-person rendering features and helps prevent equipment from clipping into walls.

  • BP_Character_TrueFP: Uses a “true first-person” setup, where all players see the same mesh.

Inventory:

The example project includes a demo InventoryComponent and a BaseEquipment, featuring equip/unequip animations and full replication support.

Equipment:

  • Equipments are actors that can be equipped in the player’s hands.

  • Each Equipment includes both a first-person mesh and a third-person mesh.

  • Each Equipment has its own custom idle pose. Procedural Motion is layered on top of that pose, keeping the hands correctly aligned while still providing high-quality movement—without requiring a dedicated animation set per equipment.

  • Each Equipment also includes a set of ProceduralMotionComponents that communicate with the character to generate procedural motion. See Procedural for more info.

  • Equipments are spawned/managed by the InventoryComponent, which handles equipping, unequipping, and switching.

Weapons:

  • Weapons are a type of equipment. Their only additional functionality (compared to other equipments) is firing. We also plan to add reload animations to expand the demo even further in the future.

  • Weapons use a special MetaSound that automatically blends one-shot and loop layers for more realistic firing audio. It doesn’t behave like a typical “play sound” call. Instead, it exists as a persistent component on the weapon, and the weapon notifies it when firing should start and stop.

Last updated