Gavalakis

Forum Replies Created

Viewing 15 posts - 1 through 15 (of 591 total)
  • Author
    Posts
  • in reply to: Creating formulas and tracking variable values #2333

    Gavalakis
    Keymaster

    Hello again and sorry for late reply.

    I have attached for you here the Expression Node (a unitypackage). Please note that this is only a beta/early version of the node.

    Thank you for the extra information on the Probability node. I will implement such a node in FlowCanvas in the next few days and will also be there in the next version. While you can use NodeCanvas Probability Selector, from what I see you would prefer using FlowCanvas (with the new Probability Node when it’s ready) though :).

     

    Let me know what you think regarding the attached Expression Node by the way.

    Thank you!

    Attachments:
    You must be logged in to view attached files.
    in reply to: Bug with Trigger Node #2329

    Gavalakis
    Keymaster

    Thanks for letting me know 🙂
    You are very welcome!

    in reply to: Creating formulas and tracking variable values #2327

    Gavalakis
    Keymaster

    Hello and thanks a lot for getting both assets.

    Please let me address your questions 🙂

    1. Do you mean formulas /expressions by “writing” them down, or by using several nodes connected together? Of course, it is possible with nodes, but it is not (yet) by writing down the expression. I have however worked and have an early version of an Expression Node already made (but not published). I can send you the package to try it out if you want of course though 🙂
      ExpressionNode
    2. “When” something is happening in either Node or Flow Canvas, is fully related to the system. For example, in NodeCanvas, Behaviour Trees, are making things happening in a different manner than FSMs, or FlowCanvas flowScripts. FlowCanvas flowScripts, are fully event-driven, so you could make something happen based on some event which can come from a really lot of places (like for example input, trggers, collisions, c# events, unity events etc). Is that what you mean?
    3. NodeCanvas Behaviour Trees, do have a node called “Probability Selector” which works prety much like you say. FlowCanvas on the other hand, does not have such a node, but I think it is a really good addition to make actually 🙂 I will definetely add a Probability node in FlowCanvas as well.

    Please let me know on the above and if you need any further information.

    Thanks!

    Attachments:
    You must be logged in to view attached files.

    Gavalakis
    Keymaster

    Hello again,

    This is the only way to handle this correctly (even though it’s ugly):

    Let me know what you think.
    Thanks.

    in reply to: FlowCanvas & NodeCanvas while in Editor Mode? #2321

    Gavalakis
    Keymaster

    Hello again,

    Thanks a lot for your positive feedback! 🙂
    Can you please rephrase your question, or provide a bit more details. I am not sure that I understand exactly what you mean 🙁
    Getting a reference to the FlowScriptController component, can in general, be done the same way as it can be done with any component (that is using the GetComponent function node). But I think you mean something different? 🙂

    Please let me know.
    Thanks again!

    in reply to: Bug with Trigger Node #2319

    Gavalakis
    Keymaster

    Hello,

    I have attached for you a unitypackage which includes the fix for this.
    Let me know if that works for you after you import the package.
    Thank you.

    Attachments:
    You must be logged in to view attached files.
    in reply to: Setting animator controller parameters #2313

    Gavalakis
    Keymaster

    Hello,

    You can do that by using the “Set Bool” method node. You can find the method node under “Functions/Reflected/Animator/Methods/Set Bool”, or of course simply search for it in the browser 🙂
    There also of course exist similar method node for other type of parameters (Set Float, Set Integer etc), as well as nodes for Get Float, Get Integer etc.

    Let me know if that works for you.
    Thanks!

    in reply to: FlowCanvas & NodeCanvas while in Editor Mode? #2312

    Gavalakis
    Keymaster

    Hello and thank you for your positive feedback! Much appreciated 🙂

    It used to be possible a long time ago with some (hack) changes, but it is no longer and currently not possible to execute flowscripts in edit-mode. Because FlowCanvas (and NodeCanvas) is essentially built as a runtime visual scripting tool, initialization of the graph (binding ports, instantiating macros, assigning certain references etc) is taking place in runtime only. Some things are taking place in “awake”, while others as soon as the graph is “started”. Furthermore, some nodes (event nodes more specifically) rely on the OnGraphStarted “callback” so that they subscribe to certain game events (and OnGraphStopped for unsubscribe). On the other hand of course, an editor only houdini-like tool for procedural creations does not really need event nodes for example (or most of the things like reflection that are taking place in a flowscript).

    Thus, for such a tool, I think that a brand new type of graph based on the core framework would be a better fit. For this to be possible though, I would need to decouple a few things first so that a completely new type of graph can be created by deriving from FlowGraph. Currently the FlowGraph class implements a few things that FlowScript class is inheriting and using. Those things will need to be moved into FlowScript itself where they belong better, thus leaving only framework related functionality to the FlowGraph class.

    This change is something I do plan to make and when that is done, I think that creating a completely new flowgraph type (even editor-time flowgraph ala houdini) will become far easier, but it remains to be seen of course 🙂

    If you want to elaborate on anything, please let me know.
    Thank you!


    Gavalakis
    Keymaster

    Hello,

    Just to explain what is going on, if you open up FlowNode.cs and take a look at the “GatherPorts” method, you will see that “RegisterPorts” is called within, and right after that, the “DeserializeInputPortValues” is called. If of course an exception is thrown within the RegisterPorts implementation, the “DeserializeInputPortValues” is never called and thus the port values (of this particular node) are lost since the graph is then serialized back.

    There is an exception handling per node registration (so that if one node throws an exception the rest proceed normally), but to avoid what is happening in a per-node basis when an exception is thrown, there will need to exist yet another exception handling. Changing the “GatherPorts” method to be like the following will effectively work the way you suggest (make port serialization perist):

    I don’t really like this solution a lot though. Let me know what you think.
    Thanks.

    in reply to: Custom attribute drawers #2310

    Gavalakis
    Keymaster

    Thank you for the follow up.
    I am glad it works for you in the latest version 🙂

    in reply to: Custom attribute drawers #2302

    Gavalakis
    Keymaster

    Hello,

    Hmm. What FlowCanvas version are you using just to confirm?
    The folder structure does not matter by the way, and no attribute is required for ObjectDrawer(T) to work.
    Have you tried with the example “MyClass” and “MyClassDrawer” I posted above just for testing purposes?
    Can you please post your code for StateFlagRef? Is it a class or a struct by the way (although this should not really matter)?

    Thanks.

    in reply to: Raycasting gives 0,0 0,0 0,0 #2301

    Gavalakis
    Keymaster

    Hello and sorry for the late reply due to Easter.

    The problem here, is that the “Physics.Raycast” node is never called.
    A node such as this (which returns a “Value”), is called only when the “Value” port is fetched/used.
    There is though another way and that is to explicitely call the node with a Flow Connection.
    To do that, you need to select the node and enable the “Callable” option in it’s inspector. Once you do that you will notice that the node will now have two extra ports, one for Flow Input and another for Flow Output. As such, you will be able to call the node as normal.

    If you need more help with this please let me know and I will provide a specific example 🙂

    Thanks!

    in reply to: Custom attribute drawers #2299

    Gavalakis
    Keymaster

    Hello,

    When you want to create a drawer for an object (class), you need to create an ‘ObjectDrawer’ (derive from ObjectDrawer(T) ). This way, the object will be drawn with this drawer wherver it is encounter, including the popup editor when the Blackboard variable button has been pressed, as well as within the inspector when used as a parameter for example. Here is a simple example:

    Unfortunately though, the button itself shown in the the blackboard variables list can not be changed, but the inspector within that popup editor when that button is clicked can.

    Let me know if that works for you.
    Thanks!

    in reply to: Bug: Blackboard Headers show up as Variables. #2298

    Gavalakis
    Keymaster

    Hey,

    Thanks for the follow up and for the info.

    Indeed. I have just fixed this 🙂

    Thanks!

    in reply to: Bug: Blackboard Headers show up as Variables. #2293

    Gavalakis
    Keymaster

    Hello,

     

    Headers are technically implemented as a special entry in the variables dictionary, but they are special treated and should not make them appear as variables. If so, I will need to fix this. Where do you mean that they appear as variables exactly?

     

    Thanks.

Viewing 15 posts - 1 through 15 (of 591 total)