Announcement

Collapse
No announcement yet.

UFSM: Finite State Machine

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

    Thank you for your help, I'll check the event later.

    Comment


      Update for Unreal 4.20 released.
      | Finite State Machine | Savior | USQLite | Object-Pool | Sound-Occlusion | Property Transfer | Magic Nodes | MORE |

      Comment


        Running 4.20.1 build. Activating a state machine gives the following error:

        Code:
        Assertion failed: Pair != nullptr [File:d:\rocketsync\4.20.0-4212847+++ue4+release-4.20\working\engine\source\runtime\core\public\Containers/Map.h] [Line: 467]
        
        KERNELBASE
        UE4Editor_ApplicationCore
        UE4Editor_Core
        UE4Editor_Core
        UE4Editor_UFSM!UStateMachineComponent::Activate() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\ufsm\source\ufsm\private\ufsm_statemachinecomponent.cpp:70]
        UE4Editor_UFSM!UStateMachineComponent::SetActive() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\ufsm\source\ufsm\private\ufsm_statemachinecomponent.cpp:76]
        UE4Editor_UFSM!UStateMachineComponent::ActivateFSM() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\ufsm\source\ufsm\private\ufsm_statemachinecomponent.cpp:559]
        UE4Editor_UFSM!UStateMachineComponent::execActivateFSM() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\ufsm\source\ufsm\classes\ufsm_statemachinecomponent.h:160]
        UE4Editor_CoreUObject
        When stepping through the source on line 70 of UFSM_StateMachineComponent.cpp the STATE value was 'Empty'. Would this have something to do with it?

        Comment


          Originally posted by scardario View Post
          Ok, so I gave it a rest to everything (including my brain) because it wasn't working at all, after a good night's sleep I started to reorganize everything, I even deleted and recreated the component in the owner object and the states in the FSM object. Now it seems to be working correctly.

          Thanks for the help.


          EDIT:

          I'm having problems again, now I can see some warnings on the message log:

          Code:
          {FSM}:: 'Set State' named [None]: State ID doesn't exist. --> FSM: Set State: [Function /Script/UFSM.StateMachineComponent:SetState at (maquinaEstados-nacho_C /Game/maps/UEDPIE_0_start.start:PersistentLevel.nacho_C_0.maquinaEstados-nacho)]
          {FSM}:: 'Set State' named [saltar]: State ID doesn't exist. --> FSM: Set State: [Function /Script/UFSM.StateMachineComponent:SetState at (maquinaEstados-nacho_C /Game/maps/UEDPIE_0_start.start:PersistentLevel.nacho_C_0.maquinaEstados-nacho)]
          I already double checked the state names, for some reason it's being unable to set an existent state.

          I've identified this bug and fixed.
          Was related to recent changes on MakeStates() function moved to be called from within InitProperties(); next update will contain fix for this.
          | Finite State Machine | Savior | USQLite | Object-Pool | Sound-Occlusion | Property Transfer | Magic Nodes | MORE |

          Comment


            Originally posted by Robyne View Post
            Running 4.20.1 build. Activating a state machine gives the following error:

            Code:
            ...
            When stepping through the source on line 70 of UFSM_StateMachineComponent.cpp the STATE value was 'Empty'. Would this have something to do with it?
            Activate() doesn't check if your Component have been fully initialized or not; it assumes you've built your State array already.
            I will add code there to prevent that crash.
            | Finite State Machine | Savior | USQLite | Object-Pool | Sound-Occlusion | Property Transfer | Magic Nodes | MORE |

            Comment


              Submitted version 2.0 for review (for Unreal 4.18, 4.19, 4.20);
              UFSM 2.0 changes:

              * Several internal runtime minor fixes.
              * "K2_Enumator" data input and "BP_Enumarator" merged purpose.
              * Global Flow Options moved from Project Settings to individual FSM Component's Settings section.
              "Blueprint Auto Flow Transitions" = true by default;
              "Blueprint Auto Flow FSM" = true by default;

              * Unreal Engine might set "Auto Activate" = false checkbox on FSM Components; make sure you have it enabled or the Component will just "sleep".
              | Finite State Machine | Savior | USQLite | Object-Pool | Sound-Occlusion | Property Transfer | Magic Nodes | MORE |

              Comment


                Fantastic. Thanks for the quick response.

                As it stands, I found a work-around by creating a FSM class which I configure before attaching to the actor.

                Really impressed with how it all works - really cleans up the blueprints.

                Comment


                  Epic processed the update 2.0 with fixes and changes listed above;
                  You should be able to download it from Launcher now.

                  -----

                  Edit:

                  Submitted v2.0.2 with a hotfix for the last known one bug I'm aware of:
                  * FSM Components couldn't find "States" list if Component's Owner wasn't a Pawn, resulting on a permanent "NULL" State lock on Begin Play.
                  * Now regardless of attaching to a Pawn/Character or not, FSM Components will always initialize States list correctly even if Owner has no Blueprint Asset.
                  | Finite State Machine | Savior | USQLite | Object-Pool | Sound-Occlusion | Property Transfer | Magic Nodes | MORE |

                  Comment


                    hello, Bruno XaVIeR

                    I am not good at English. Please understand this.

                    I'm going to ask some questions.

                    1. Can this plug-in replace the UE's State-Machine?
                    StateMachine used in AnimBP
                    I want to make it with c++ and use it.
                    Is this possible?

                    2. Questions about how to use.
                    - Can you make it like a state-machine in the UE? (using C++ only )- Do I need to create nodes in AnimBP and control them in C ++?


                    It is not easy to understand the documents listed above.
                    So I asked a question.
                    If you answer, it will be very helpful.

                    Thanks!

                    Comment


                      Hi hello, Bruno XaVIeR
                      I need to use for Multiplayer how can I do any code or clear example ?
                      I try serveral hours. It's not replicate at all although I'm enable replicate setting.

                      Comment


                        Originally posted by kkljh1212 View Post
                        hello, Bruno XaVIeR

                        I am not good at English. Please understand this.

                        I'm going to ask some questions.

                        1. Can this plug-in replace the UE's State-Machine?
                        StateMachine used in AnimBP
                        I want to make it with c++ and use it.
                        Is this possible?

                        2. Questions about how to use.
                        - Can you make it like a state-machine in the UE? (using C++ only )- Do I need to create nodes in AnimBP and control them in C ++?


                        It is not easy to understand the documents listed above.
                        So I asked a question.
                        If you answer, it will be very helpful.

                        Thanks!
                        Shame on me...
                        Since last year I have a list of tutorials I must do for this plugin, but I am still under contract witha company and while this company don't release me I cannot sit and develop the tutorials this plugin needs.
                        But I didn't give up yet, one day I going to make them :s

                        _____

                        About your questions:

                        #1 No, you can use Animation FSMs to "control" states of this plugin(if you want to).
                        You can otherwise development your own FSM Blueprint and make it run totally unrelated to AnimBPs.
                        I think some people assume "AnimBPs are required to use this", that is not the case! It's a possibility, not a requirement.

                        2# Again, you can keep everything in your FSM Component, you don't have to use AnimBPs if your game don't need this "link" between the two systems.

                        _____

                        I'm supposed to make a tutorial about this, maybe a character movement system... I'm open to suggestions on what you people would like to see covered on a demo/tutorial Blueprint.
                        | Finite State Machine | Savior | USQLite | Object-Pool | Sound-Occlusion | Property Transfer | Magic Nodes | MORE |

                        Comment


                          Originally posted by sukrit1234 View Post
                          Hi hello, Bruno XaVIeR
                          I need to use for Multiplayer how can I do any code or clear example ?
                          I try serveral hours. It's not replicate at all although I'm enable replicate setting.
                          Check on FSM Component's Details panel which "Replication Mode" is set.

                          ​​​​​​For Unreal, "none" mode means no condition is set and it will replicate to everyone...
                          By default: a FSM Component is set to replicate from Server to Owner Client only, you can change that in Details Panel.
                          | Finite State Machine | Savior | USQLite | Object-Pool | Sound-Occlusion | Property Transfer | Magic Nodes | MORE |

                          Comment


                            hello, Bruno XaVIeR

                            Thank you for your answer.
                            Your answer is very helpful.

                            Comment


                              You should build your plugins with a non-unity build so they catch missing includes/decls

                              UFSM_Log.cpp is missing include for UStateMachineComponent
                              UFSM_StateMachineComponent.cpp is missing include for UFSMSettings
                              UFSM_StateMachineComponent.cpp is missing include for LOG_FSM (#include "UFSM_Log.h")
                              UFSM_StateMachineComponent.cpp is missing include for ACharacter
                              UFSM_StateMachineComponent.cpp is missing include for USkeletalMeshComponent
                              UFSM_StateMachineComponent.cpp is missing include for UStateMachineABP
                              UFSM_StateMachineABP.cpp is missing include for UStateMachineComponent

                              Comment


                                Seems like I just forgot to move a few things to "_Shared.h"
                                | Finite State Machine | Savior | USQLite | Object-Pool | Sound-Occlusion | Property Transfer | Magic Nodes | MORE |

                                Comment

                                Working...
                                X