Announcement

Collapse
No announcement yet.

Logic Driver - Easily Design Gameplay Systems with State Machines

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #76
    Hey JimPhoenix, that's normal behavior for UE4 and should have happened prior to 2.0. You need to store the state machine in a member variable like in your second approach or UE4 will garbage collect the object since there are no open references to it.
    Logic Driver - Easily Design Gameplay Systems - Version 2.0 Now Available!

    Comment


      #77
      Originally posted by Recursoft View Post
      Hey JimPhoenix, that's normal behavior for UE4 and should have happened prior to 2.0. You need to store the state machine in a member variable like in your second approach or UE4 will garbage collect the object since there are no open references to it.
      Oh my, got it, thanks! : ]

      Comment


        #78
        Maybe a real (not too big) issue here; after starting the editor with the Plugin turned on my main project, the Output log shows these warnings:

        Code:
        LogStreaming: Warning: Failed to read file '../../../Engine/Plugins/Marketplace/LogicDriver/Content/Brushes/Button.png' error.
        LogSlate: Could not find file for Slate resource: ../../../Engine/Plugins/Marketplace/LogicDriver/Content/Brushes/Button.png
        LogStreaming: Warning: Failed to read file '../../../Engine/Plugins/Marketplace/LogicDriver/Content/Brushes/Button_Hovered.png' error.
        LogSlate: Could not find file for Slate resource: ../../../Engine/Plugins/Marketplace/LogicDriver/Content/Brushes/Button_Hovered.png
        LogStreaming: Warning: Failed to read file '../../../Engine/Plugins/Marketplace/LogicDriver/Content/Brushes/Button_Pressed.png' error.
        LogSlate: Could not find file for Slate resource: ../../../Engine/Plugins/Marketplace/LogicDriver/Content/Brushes/Button_Pressed.png
        LogStreaming: Warning: Failed to read file '../../../Engine/Plugins/Marketplace/LogicDriver/Content/Brushes/Button_Disabled.png' error.
        LogSlate: Could not find file for Slate resource: ../../../Engine/Plugins/Marketplace/LogicDriver/Content/Brushes/Button_Disabled.png
        What do you think? : ]

        Comment


          #79
          JimPhoenix I bet that has to do with the new TextGraphProperties. Variables that are parsed technically have buttons made for them in the UI. The buttons don't do anything (yet) but it may be trying to load resources for them locally first (not intended) before defaulting to UE4's included images.

          As long as the text graph properties look like this when you drop a variable on them it's working as expected.
          (The variables will be colored differently based on their type)
          Click image for larger version

Name:	TextGraph.png
Views:	162
Size:	18.5 KB
ID:	1746841

          I'll work on resolving those warnings in a future update. Thanks for pointing them out!
          Logic Driver - Easily Design Gameplay Systems - Version 2.0 Now Available!

          Comment


            #80
            Originally posted by Recursoft View Post
            JimPhoenix I bet that has to do with the new TextGraphProperties. Variables that are parsed technically have buttons made for them in the UI. The buttons don't do anything (yet) but it may be trying to load resources for them locally first (not intended) before defaulting to UE4's included images.

            As long as the text graph properties look like this when you drop a variable on them it's working as expected.
            (The variables will be colored differently based on their type)
            Click image for larger version

Name:	TextGraph.png
Views:	162
Size:	18.5 KB
ID:	1746841

            I'll work on resolving those warnings in a future update. Thanks for pointing them out!
            Alright, it's not a big deal, so I can live with it until you'll fix it.

            Anyway, You're welcome! : ]

            Comment


              #81
              Skeptis Have you installed it previously to 4.24? If you click on Installed Plugins below 4.24.3 it should show you if it's there or if it needs updating.
              If not, can you try restarting your launcher? I verified yesterday and again just now that 2.0 is available for 4.23 and 4.24.

              Ah your post disappeared, I'm guessing you resolved it
              Logic Driver - Easily Design Gameplay Systems - Version 2.0 Now Available!

              Comment


                #82
                Finally put together patch notes for 2.0.

                Highlights -
                • Custom Nodes in BP or C++
                • Expose Variables on Nodes
                • Text Graph Properties for parsing text on a node
                • Auto-bind multicast delegates to transitions via dropdown
                • New AnyState node which represents any other state node in a graph
                • Conduits now can behave like transitions or states
                • Actor Components support templating so the instance defaults can be edited directly in the details panel
                Logic Driver - Easily Design Gameplay Systems - Version 2.0 Now Available!

                Comment


                  #83
                  Hi everyone. Could I execute a forcing transition from statemachine caller?
                  Or I have to transit by transition's condition?
                  For example: StateA could transit to StateB. StateA is current state. I want to transit from StateA to StateB without changing the transition condition. I want to use StateMachineComponent force transit it.

                  Comment


                    #84
                    Originally posted by Recursoft View Post
                    Finally put together patch notes for 2.0.

                    Highlights -
                    • Custom Nodes in BP or C++
                    • Expose Variables on Nodes
                    • Text Graph Properties for parsing text on a node
                    • Auto-bind multicast delegates to transitions via dropdown
                    • New AnyState node which represents any other state node in a graph
                    • Conduits now can behave like transitions or states
                    • Actor Components support templating so the instance defaults can be edited directly in the details panel
                    That's a really meaty update! Thank you!

                    Comment


                      #85
                      Originally posted by kaleidosgu View Post
                      Hi everyone. Could I execute a forcing transition from statemachine caller?
                      Or I have to transit by transition's condition?
                      For example: StateA could transit to StateB. StateA is current state. I want to transit from StateA to StateB without changing the transition condition. I want to use StateMachineComponent force transit it.

                      It's possible but the best way is to use a transition condition or an event.
                      https://logicdriver.recursoft.net/do...ed-transitions

                      You could add an event delegate to your actor, then bind to it on the transition and fire it from your actor to switch the states. That would make it really clean and efficient.



                      Back to your original question, there's a function available for state instances SwitchToLinkedState which does what you want, but it was meant to be called from either a state class or within a state node.

                      If you really want to do it from an actor component, you could do something like this. It's kinda messy because you can't directly search for a state by name, you would have to check the active state instance.
                      Click image for larger version

Name:	image_189243.png
Views:	145
Size:	166.2 KB
ID:	1748454


                      This is from a state node, if it's possible to place the logic here, or from within a state class, it will work much better.
                      Click image for larger version  Name:	ForceTransitionState.PNG Views:	0 Size:	127.9 KB ID:	1748455
                      Last edited by Recursoft; 04-21-2020, 09:49 AM.
                      Logic Driver - Easily Design Gameplay Systems - Version 2.0 Now Available!

                      Comment


                        #86
                        Originally posted by Kenyon1977 View Post

                        That's a really meaty update! Thank you!
                        You're welcome! I hope the component templates help you- I made it a point to make sure that got added in for 2.0, I still feel bad that local state variables never got added.
                        Logic Driver - Easily Design Gameplay Systems - Version 2.0 Now Available!

                        Comment


                          #87
                          Originally posted by Recursoft View Post


                          It's possible but the best way is to use a transition condition or an event.

                          You could add an event delegate to your actor, then bind to it on the transition and fire it from your actor to switch the states. That would make it really clean and efficient.


                          Back to your original question, there's a function available for state instances which does what you want, but it was meant to be called from either a state class or within a state node.

                          If you really want to do it from an actor component, you could do something like this. It's kinda messy because you can't directly search for a state by name, you would have to check the active state instance.



                          This is from a state node, if it's possible to place the logic here, or from within a state class, it will work much better.
                          Thank you very much!
                          I have another question. I got logic driver's copy from my company other project worker. If I want to use LogicDriver in a new project for the same company, should I buy it again?

                          Comment


                            #88
                            Originally posted by kaleidosgu View Post

                            Thank you very much!
                            I have another question. I got logic driver's copy from my company other project worker. If I want to use LogicDriver in a new project for the same company, should I buy it again?

                            I believe the license through Epic allows you to continue to use it in the same company.

                            From: https://www.unrealengine.com/en-US/marketplace-faq

                            Can I share products with my team?
                            Yes, you can share Marketplace products with your team but only for the limited purpose of the project that you are jointly developing. Content pooling or sharing products between developers outside of your organization is prohibited. Team members also cannot use products in an unlimited fashion for their own projects.

                            Edit:
                            I may have interpreted the licensing wrong, I e-mailed the marketplace team your exact question and got this as a response:
                            Plugin usage is a bit more strict. Technically a plugin must be purchased per-seat and per-project. Please see our EULA for more information.
                            Last edited by Recursoft; 04-23-2020, 10:34 AM.
                            Logic Driver - Easily Design Gameplay Systems - Version 2.0 Now Available!

                            Comment


                              #89
                              2.0.1 Released
                              • Nodes that are impacted by an Any State Node will have their color updated appropriately and additional information displayed on their tooltip.
                              • Properties exposed on the node can no longer be edited while in debug mode.
                              • Fixed crash for conduits that loop back on themselves and are configured to evaluate as transitions.
                              • Added missing button images for TextGraphProperty variables.

                              JimPhoenix the missing button images will resolve the warnings you were getting and text graph variables will look nicer now too. Thanks again for bringing that up!
                              Logic Driver - Easily Design Gameplay Systems - Version 2.0 Now Available!

                              Comment


                                #90
                                Version 2.1 Released
                                Unreal Engine 4.23 - 4.25

                                When updating it is important everyone working on the same project also updates. Assets saved on this version are not fully compatible with older versions.

                                Enhancements
                                General
                                • Added user tooltips to graph properties.
                                • Added `IsActive` and `GetGuid` to node instances.
                                • Added documentation links to blueprint editor help menus.
                                Replication
                                • Added `bIncludeSimulatedProxies` to actor components so actors that aren't possessed by a player controller can execute logic when configured for the client domain.
                                • Improved initial instance replication which should resolve issues when leaving bInitializeOnBeginPlay checked not always starting the state machine on simulated proxies.
                                • Initial replication now replicates the current state(s) of the authority state machine rather than rely on the default initial state being accurate.
                                  • Can be disabled by unchecking `bReplicateStatesOnLoad`
                                Ticking Optimization
                                • Actor components are now responsible for ticking their instances.
                                • Instances that don't need to tick (such as references) never register their tick function.
                                • Instances no longer tick before they are initialized.
                                • Added `bLetInstanceManageTick` to components as an advanced option.
                                • Added `bTickBeforeInitialize` to instances as an advanced option.
                                • Added `bTickRegistered` to instances as an advanced option so they can unregister their tick function all together.
                                Changes
                                • Manually calling the actor component `Initialize` function and not passing in a context will now automatically set the context to the component owner.
                                • Renamed Editor and ProjectEditor settings from State Machine Editor to Logic Driver.
                                • Deprecated `bCanEnterTransition` of conduit classes.
                                • Creating a new conduit class no longer automatically wires a parent node to CanEnterTransition.
                                • Instance compile validation skips blueprints that are new or loading.
                                • Updated custom K2 node pin names to be consistent with UE4 naming conventions.
                                  • Once you save a state machine on this version you cannot open it in an earlier version of Logic Driver or connections may be broken.
                                Bug Fixes
                                • Fixed intermittent crash during garbage collection for Stand Alone Game builds.
                                • Fixed actor component state machine templates from being selectable debug objects.
                                • Fixed const mismatch on GetNodeIconSize which could prevent compiling from source using strict warnings.
                                Logic Driver - Easily Design Gameplay Systems - Version 2.0 Now Available!

                                Comment

                                Working...
                                X