mirror of
https://github.com/Ed94/Cog.git
synced 2026-06-13 08:02:23 -07:00
Merge branch 'main' of https://github.com/arnaud-jamin/Cog
This commit is contained in:
@@ -7,17 +7,18 @@ Cog is a set of debug tools for Unreal Engine built on top of [Dear ImGui](https
|
||||
- [Sample Executable](https://drive.google.com/file/d/1T7jQFoZ5rd6goBtDH-FCbjn6Kr1RzUCE/view?usp=sharing) (300 MB)
|
||||
|
||||
Cog provides:
|
||||
- ImGui windows to inspect and configure various Unreal features (Enhanced Inputs, Gameplay Abilities, Core Engine)
|
||||
- ImGui windows to inspect and configure various Unreal systems (Enhanced Inputs, Gameplay Abilities, Core Engine)
|
||||
- Window mangement with persistent configuration and layouts.
|
||||
- C++ and Blueprint functions to log and debug draw within Log Categories.
|
||||
- Control over the server regarding debug draw, logging, spawning, cheats.
|
||||
|
||||
## Windows
|
||||
|
||||
- In the sample press the `[Tab]` key or use the `Cog.ToggleInput` console command to open the ImGui Main Menu.
|
||||
- Most windows display their contents based on a selected actor.
|
||||
- The selector actor can be chosen using the `Engine/Selection` window or widget.
|
||||
General Info:
|
||||
- Cog can be used both in editor and package builds. It is disabled by default on shipping builds.
|
||||
- Press the `[Tab]` key or use the `Cog.ToggleInput` console command to open the ImGui Main Menu.
|
||||
- Mouse over a window title to display its help.
|
||||
- Most windows display their contents based on a selected actor. The selector actor can be chosen using the `Engine/Selection` window or widget.
|
||||
|
||||
## Cog Windows
|
||||
|
||||
### Abilities
|
||||
|
||||
@@ -31,23 +32,34 @@ Displays the gameplay abilities of the selected actor.
|
||||
### Actions
|
||||
Displays the state of Input Action.
|
||||
|
||||

|
||||

|
||||
- Can be used to inject inputs to help debugging.
|
||||
- The display input action are read from a Input Mapping Context defined in a Data Asset.
|
||||
|
||||
### Attributes
|
||||
Displays the gameplay attributes of the selected actor.
|
||||
|
||||

|
||||

|
||||
- Attributes can be sorted by name, category or attribute set.
|
||||
- Attributes with the Current value greater than the Base value are displayed in green.
|
||||
- Attributes with the Current value lower than the Base value are displayed in red.
|
||||
- Use the options 'Show Only Modified' to only show the attributes that have modifiers.
|
||||
|
||||
### Behavior Tree
|
||||
Displays the behavior tree of the selected actor.
|
||||
|
||||

|
||||
|
||||
### Blackboard
|
||||
Displays the blackboard of the selected actor.
|
||||
|
||||

|
||||
|
||||
|
||||
### Cheats
|
||||
Used to apply cheats to the selected actor.
|
||||
|
||||

|
||||

|
||||
- The cheats are gameplay effects configured in a data asset.
|
||||
- Key modifiers can be used to change which actor should be affected by the cheat:
|
||||
- [CTRL] apply the cheat to the controlled actor
|
||||
@@ -57,7 +69,7 @@ Used to apply cheats to the selected actor.
|
||||
### Collisions
|
||||
Used to inspect collisions by performing a collision query with the selected channels.
|
||||
|
||||

|
||||

|
||||
- The query can be configured in the options.
|
||||
- The displayed collision channels can be configured in a Data Asset.
|
||||
- It can be used to better understand what object collisions are blocking a raycast.
|
||||
@@ -65,24 +77,25 @@ Used to inspect collisions by performing a collision query with the selected cha
|
||||
### Debug Settings
|
||||
Used to tweak how the debug display is drawn.
|
||||
|
||||

|
||||

|
||||
|
||||
### Effects
|
||||
Displays the gameplay effects of the selected actor.
|
||||
|
||||

|
||||

|
||||
- Mouse over an effect to see its details such as its modifiers, the gameplay tags it grants, the remaining time, etc.
|
||||
|
||||
### Gamepad
|
||||
Display the state of the gamepad
|
||||
|
||||

|
||||

|
||||
- Can be displayed as an overlay
|
||||
- Can be used to inject inputs to help debugging, as loosing window focus when breaking in the code doesn't affect the state of injected inputs unlike real inputs.
|
||||
|
||||
### Inspector
|
||||
Used to inspect and modify an Object properties
|
||||
|
||||

|
||||

|
||||
- Inspect the selected actor by default
|
||||
- Favorites can be added with a custom function defining what happens when the user press the Apply button (typically this can be used to modify and apply the Game User Settings)
|
||||
- Manage a history of inspected objects.
|
||||
@@ -90,7 +103,7 @@ Used to inspect and modify an Object properties
|
||||
### Log Categories
|
||||
Can be used to activate and deactivate log categories
|
||||
|
||||

|
||||

|
||||
- Activating a log category set its verbosity to VeryVerbose.
|
||||
- Deactivating a log category set its verbosity to Warning.
|
||||
- The detailed verbosity of each log category can be shown by using the Option menu.
|
||||
@@ -100,39 +113,54 @@ Can be used to activate and deactivate log categories
|
||||
### Metric
|
||||
Gather various values sent by the selected actor and compte their rate per second. This is typically useful to compute the damage dealt or received per second.
|
||||
|
||||

|
||||

|
||||
|
||||
### Net Emulation
|
||||
Used to configure the network emulation
|
||||
|
||||

|
||||

|
||||
|
||||
### Output Log
|
||||
Display the output log based on each log categories verbosity.
|
||||
|
||||

|
||||

|
||||
- The verbosity of each log category can be configured in the 'Log Categories' window.
|
||||
|
||||
### Pools
|
||||
Displays attributes of the selected actor as pools.
|
||||
|
||||

|
||||

|
||||
- The pools can be configured in a data asset.
|
||||
|
||||
### Plots
|
||||
Plots values overtime. When applicable, only the values of the selected actor are displayed.
|
||||
### Plots
|
||||
Plots values and events overtime. When applicable, only the values and events of the selected actor are displayed.
|
||||
|
||||

|
||||

|
||||
- The following code snippets show how to plot values and events:
|
||||
```cpp
|
||||
// Plotting a value
|
||||
FCogDebugPlot::PlotValue(Character, "Speed", Velocity.Length());
|
||||
|
||||
// Starting an event
|
||||
FCogDebugPlot::PlotEvent(this, "Effects", GameplayEffectSpec.Def->GetFName(), GameplayEffectSpec.GetDuration() == 0.0f)
|
||||
.AddParam("Name", AbilitySystemComponent->CleanupName(GetNameSafe(GameplayEffectSpec.Def)))
|
||||
.AddParam("Effect Instigator", GetNameSafe(GameplayEffectSpec.GetEffectContext().GetInstigator()))
|
||||
.AddParam("Effect Level", GameplayEffectSpec.GetLevel())
|
||||
.AddParam("Effect Duration", GameplayEffectSpec.GetDuration());
|
||||
|
||||
// Stopping an event
|
||||
FCogDebugPlot::PlotEventStop(this, "Effects", RemovedGameplayEffect.Spec.Def->GetFName());
|
||||
```
|
||||
|
||||
### Scalability
|
||||
Used to configure the rendering quality.
|
||||
|
||||

|
||||

|
||||
|
||||
### Skeleton
|
||||
Display the bone hierarchy and the skeleton debug draw of the selected actor if it has a Skeletal Mesh.
|
||||
|
||||

|
||||

|
||||
- Mouse over a bone to highlight it.
|
||||
- Right click a bone to access more debug display.
|
||||
- Use the [Ctrl] key to toggle the bone debug draw recursively.
|
||||
@@ -140,42 +168,42 @@ Display the bone hierarchy and the skeleton debug draw of the selected actor if
|
||||
### Selection
|
||||
Used to select an actor either by picking an actor in the world or by selecting an actor in the actor list.
|
||||
|
||||

|
||||

|
||||
- The actor list can be filtered by actor type (Actor, Character, etc).
|
||||
- The current selection is used by various debug windows to filter out their content.
|
||||
|
||||
### Settings
|
||||
Configure the settings of Cog Windows.
|
||||
|
||||

|
||||

|
||||
- Can configure the input key to toggle the input focus between the game and imgui
|
||||
- Can change the DPI Scaling
|
||||
|
||||
### Spawn
|
||||
Used to spawn new actors in the world. The spawn list can be configured in a Data Asset.
|
||||
|
||||

|
||||

|
||||
|
||||
### Stats
|
||||
Displays engine stats such as FPS, Ping, Packet Loss.
|
||||
|
||||

|
||||

|
||||
|
||||
### Tags
|
||||
Displays the gameplay tags of the selected actor.
|
||||
|
||||

|
||||

|
||||
|
||||
### Time Scale
|
||||
Used to change the game global time scale.
|
||||
|
||||

|
||||

|
||||
- If changed on a client the time scale is also modified on the game server, and replicated to the other clients.
|
||||
|
||||
### Tweaks
|
||||
Used to apply tweaks to all the spawned actors
|
||||
|
||||

|
||||

|
||||
- The tweaks are used to test various gameplay settings by actor category
|
||||
- The tweaks can be configured in a data asset.
|
||||
|
||||
@@ -183,11 +211,11 @@ Used to apply tweaks to all the spawned actors
|
||||
|
||||
Cog provides C++ and Blueprint functions to log and debug draw within Log Categories.
|
||||
|
||||

|
||||

|
||||
|
||||
Log and debug draw functions can be filtered by the selected actor.
|
||||
|
||||

|
||||

|
||||
|
||||
## Setup
|
||||
|
||||
|
||||
Reference in New Issue
Block a user