Giter Club home page Giter Club logo

heartgraph's Introduction

Heart Graph Plugin

A generic runtime node graph editor and viewer for Unreal Engine 5.1.

Modules

Heart

The core of HeartGraph. Defines the core types used to build a graph: UHeartGraph, UHeartGraphNode, and UHeartGraphPin, as well as a registry subsystem that ties them together.

HeartCore

Underlying math utilities, and generic UI classes that aren't specifically for HeartGraph, but kept here to avoid dependencies on another plugin. At some point, I might move some or all of this to a seperate plugin if it becomes too much.

HeartCore implements a custom system for managing UI input, inspired mostly by UE's new EnhancedInput, that centralizes input definition into a single asset, UHeartWidgetInputBindingAsset, that functions much like an InputMappingContext. Currently this system requires some c++ boilerplate to add it to custom widget types, but is implemented out-of-the-box for any HeartGraph widget.

HeartCanvas

A toolset for displaying and editing a UHeartGraph using entirely UMG widgets. Essentially meant to replicate unreal's native UEdGraph editor, except with far more customization, to tailor the graph's appearance and behavior to the needs of the project.

HeartEditor

A (currently WIP) asset authoring tool for Heart graphs using Unreal's native UEdGraph toolset. Such a workflow allows for creating a graph inside the Unreal Engine Editor, and viewing it using HeartCanvas at runtime (such as a perk tree).

Dependencies

StructUtils

FInstancedStruct is currently used for defining Pin Types. This may not always be the case, pending a possible refactor of Pin Type declaration.

AssetSearch

I want to implement an asset search feature similar to Flow Graph's implementation.

Planned Dependencies

UMG Viewmodel

Drakynfly#10

ControlFlows

Drakynfly#7 (comment)

GameplayTags

I'm sure I'll need them at some point, I always do.

Compatibility

CommonUI

HeartCanvas specifically doesn't use CommonUI, as it's methods for defining UI input are not to my liking. However, using most CommonUI components for building Canvas widgets still works.

Links

Docs: https://heart-1.gitbook.io/heart-plugin/

Demo Project: https://github.com/Drakynfly/HeartGraphDemo

Discord: https://discord.gg/AAk9yNwKk8 (Drakynfly's Plugins)

Acknowledgments

  • MothDocter's FlowGraph: Both literally and figuratively. Breaking apart and learning about the graphs in Flow is what started my interest in runtime graphs. But also, I stole a lot of the editor code to make Heart's Editor module.
  • Red Blob Games - Hexagonal Grids: I followed this guide for making the Heart::Hex namespace.

heartgraph's People

Contributors

drakynfly avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.