Announcement

Collapse
No announcement yet.

Logic Driver - State Machine Blueprint Editor

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

    #31
    Originally posted by Recursoft View Post

    Are you calling the parent tick too? Right click on the Tick node and select Add Call to Parent Function. If that's not called the state machine won't be able to update automatically.
    You mean I should add a parent tick after the event tick, right? I did that and still get the same result.

    Comment


      #32
      Originally posted by Kenyon1977 View Post

      You mean I should add a parent tick after the event tick, right? I did that and still get the same result.
      Yes, adding a parent node and connecting it right after the event tick should be all you need. Can you e-mail a screen shot of your event graph to support@recursoft.net?
      Logic Driver - State Machine Blueprint Editor

      Comment


        #33
        Originally posted by Recursoft View Post

        Yes, adding a parent node and connecting it right after the event tick should be all you need. Can you e-mail a screen shot of your event graph to support@recursoft.net?
        Ok, so I tried again. Now I know what's wrong. I should connect the delta time between event tick and parent tick, too. Sorry for the bothering!

        Comment


          #34
          Hi,

          I also asked on https://www.unrealengine.com/marketp...itor/questions but I think it's better copy this here.

          Building a dialogues based on SMachines. I need somehow to keep extra details, which are specific for a given state. Basically every State is a dialogue sentence. Once in that State, I need to grab a string sentence from somewhere in the State and send it to UI.

          The most convenient way would be to create extra properties (local constants or variables???) for narrative artist. Also I am thinking of custom States with custom functionality, which can be used in along with default States. I guess that functionality is not there, but if you share your ideas, I would be very grateful.

          Comment


            #35
            Originally posted by Kenyon1977 View Post

            Ok, so I tried again. Now I know what's wrong. I should connect the delta time between event tick and parent tick, too. Sorry for the bothering!

            No worries and I'm glad it's working! Pretty sure I've forgotten to do that before too. I'll check to see if I can auto create and wire a parent tick node on new state machine creation.


            Originally posted by CRYOMEN View Post
            Hi,

            I also asked on https://www.unrealengine.com/marketp...itor/questions but I think it's better copy this here.

            Building a dialogues based on SMachines. I need somehow to keep extra details, which are specific for a given state. Basically every State is a dialogue sentence. Once in that State, I need to grab a string sentence from somewhere in the State and send it to UI.

            The most convenient way would be to create extra properties (local constants or variables???) for narrative artist. Also I am thinking of custom States with custom functionality, which can be used in along with default States. I guess that functionality is not there, but if you share your ideas, I would be very grateful.


            Local variables per state is currently in development and may do what you want. If your data is constant it could be set as a default value. But if it's constant already, can you just include it in the blueprint node you use to send text to the UI (or another text creation node) rather than redefine it as a variable? Or include it in a data table somewhere and reference that? The individual states weren't really designed for data storage. Blueprint member variables work of course but are state machine wide.

            Another option would be to create a separate state machine for each state and create blueprint variables for the sentence, and reference each state machine in master state machines (basically treat multiple state machines as single states), but that's probably far less convenient.

            If there are other use cases you can share regarding this I can see if they can be met or added with local variable development.
            Logic Driver - State Machine Blueprint Editor

            Comment


              #36
              Originally posted by Recursoft View Post
              .
              Thank you for your reply. I made a deep analysis. Seems like SMachines is a developer oriented solution. Using this for dialogues would be overkill, as it does not allow to extend States/Transition functionality. As long as showing dialog sentences is a repeatable procedure one should copy/paste same code in the States, instead of creating a specific State for the dialogues, reuse it, and allow to change it's settings (character name, sentence, etc) without a code manipulation.


              Just in case. You said local variables are in development. Please could you consider to implement that in such way:
              • Expose State instance. That would be great to have it. It should give access to local variable anyway - right?
              • If you expose State instance, would you allow to create custom States, with a custom functionality? Basically instead of placing all code usual way through the States Machine editor, one could implement this using a blueprint. And then select custom State in the State Machine Editor (similar to "Add State Machine Reference..."). This will catch several rabbits: it will allow private variables and functions. Will make it artist friendly, t.e. developer creates a custom State nodes with extra options for artist to select in the Details window.
              • Same idea for Transitions. Expose Transition instance. Allow local variables and functions. But this guy seems more tricky, t.e. how we gonna select a custom Transition from the list?

              Seems lots work to me. But should you grab it on board that would be awesome.
              Last edited by CRYOMEN; 12-03-2019, 11:36 AM.

              Comment


                #37
                Originally posted by CRYOMEN View Post
                Thank you for your reply. I made a deep analysis. Seems like SMachines is a developer oriented solution. Using this for dialogues would be overkill, as it does not allow to extend States/Transition functionality. As long as showing dialog sentences is a repeatable procedure one should copy/paste same code in the States, instead of creating a specific State for the dialogues, reuse it, and allow to change it's settings (character name, sentence, etc) without a code manipulation.


                Just in case. You said local variables are in development. Please could you consider to implement that in such way:
                • Expose State instance. That would be great to have it. It should give access to local variable anyway - right?
                • If you expose State instance, would you allow to create custom States, with a custom functionality? Basically instead of placing all code usual way through the States Machine editor, one could implement this using a blueprint. And then select custom State in the State Machine Editor (similar to "Add State Machine Reference..."). This will catch several rabbits: it will allow private variables and functions. Will make it artist friendly, t.e. developer creates a custom State nodes with extra options for artist to select in the Details window.
                • Same idea for Transitions. Expose Transition instance. Allow local variables and functions. But this guy seems more tricky, t.e. how we gonna select a custom Transition from the list?

                Seems lots work to me. But should you grab it on board that would be awesome.

                So ideally.. developer creates New State Class (or New Transition Class) blueprints.

                In a state machine blueprint be able to set the state or transition to the created classes. Possibly similar to state machine references. Then be able to set instance values in the details window of each state or transition. And to be clear, you only need instance variables to change, and not the BP logic itself, correct? I ask because that would be extremely difficult.

                If I have that right, I'll consider ways of implementing this (or parts of it). I don't want to commit to anything yet because you're right in that the work to do this isn't trivial and multiple problems would have to be solved like passing the context (and using it from within each state or transition), replication settings, etc. It might be better to see if I can enhance state machine references to set instance values in the details window and then use those as states.

                Also in case it helps, inheritance works for state machines now. You can have a base state machine class with variables and functions, and use those in a child state machine class. Additionally with state machine references you can enable an intermediate graph and set properties of the reference there. All though that is done in a BP graph and not the details window. I'm also not sure how well that will work if you have the same reference multiple times on the same graph.


                But to your first point, this is likely overkill for dialogue systems. I know there are plenty of dialogue editors on the market. Awhile ago I started working on a dialogue system based on logic driver. A blueprint editor where each node is actually a BP graph to construct a dialogue sentence, auto constructed from text or user created. Definitely have me consider working on it again, as a separate plugin or maybe including it in logic driver. I could see mixing state logic with dialogues being handy.

                Click image for larger version

Name:	DialogLogicDriver.PNG
Views:	24
Size:	71.4 KB
ID:	1694259

                Logic Driver - State Machine Blueprint Editor

                Comment


                  #38
                  Originally posted by Recursoft View Post


                  So ideally.. developer creates New State Class (or New Transition Class) blueprints.

                  In a state machine blueprint be able to set the state or transition to the created classes. Possibly similar to state machine references. Then be able to set instance values in the details window of each state or transition. And to be clear, you only need instance variables to change, and not the BP logic itself, correct?
                  To be precise change variables and append logic similar way one can do this in the State editor. Changing internal logic is not needed. Idea is: create a node, append custom logic (aka node with predefined logic), expose variables, use anywhere. Same idea as BTT nodes.

                  Originally posted by Recursoft View Post
                  If I have that right, I'll consider ways of implementing this (or parts of it). I don't want to commit to anything yet because you're right in that the work to do this isn't trivial and multiple problems would have to be solved like passing the context (and using it from within each state or transition), replication settings, etc. It might be better to see if I can enhance state machine references to set instance values in the details window and then use those as states.
                  I think that will do.

                  Originally posted by Recursoft View Post
                  But to your first point, this is likely overkill for dialogue systems. I know there are plenty of dialogue editors on the market. Awhile ago I started working on a dialogue system based on logic driver. A blueprint editor where each node is actually a BP graph to construct a dialogue sentence, auto constructed from text or user created. Definitely have me consider working on it again, as a separate plugin or maybe including it in logic driver. I could see mixing state logic with dialogues being handy.
                  Logic Driver State Machine is indeed very close to the necessary requirements to build a custom logic. By custom I mean being as flexible as possible in building complex interactive scripts. There is Screenwriter asset on the market exactly for that. Sadly it's buggy (the reason we did try States Machine solution), but if you take a closer look you will find how both are solving same tasks using almost similar ways.

                  I think it's not coincidence you did work on both Logic Driver and the dialogues It really allows to build custom and complex dialogues on top of that.

                  Comment

                  Working...
                  X