I’d suggesting adding this section to the forum also 🙂
Just a few ideas.
I am going to implement them myself anyway but If they are in your timeline or plan to be I’ll wait.
1) A conditional Action Gate
You have conditional logic in there already, you also have conditional actions but you don’t have a node for a very common occurance:
Condition
-> true -> ActionA
-> false -> ActionB
Sure, it is easily added via 2-3 nodes as per one of your examples but in the interest of brevity a standard if-else will be quite common I would sooner tidy the graph logic so it flows better for team meeting. Explaining two nested dynamic nodes when i am saying “if yes, A else B”, Is a bit rough when you deal with non developers.
*********
This one is more elaborate, It is a feature I have in my now defunt tree system. I plan on porting it over to this.
Instead of Just adding a variable as a Transform etc… adding a
1
2
3
4
5
6
publicinterfaceIProvider<T>
{
TValue
}
Why? Well the example I used was, If you had a Node for Instantiate GameObject, then you can just feed it a gameobject or a Provider, with an explicit conversion.
then a provider could be a List with a selection Method.
e.g:
also if it was providing a Vector3, you could provide a static vector, use a ParentPositionProvider, or use a PlayerRaycastHitpointProvider,
Effectively taking a lot of the variable storage, passing around and calculation out of the graph, anytihng that takes away from the pseudocode nature of it,
I should be able in theory to show a random person off the street a graph and they should be able to tell be roughly what it is doing and I don’t think it is quite there yet.
About “Conditional Action Gate”, are you refering to Selector Composite with just 2 children and a condition assigned to it?
Although it does not follow the Behaviour Tree standards 🙂 I can certainly add this, at least online.
Regarding your 2nd suggestions.
Right now you dont have to explicitly declare a Transform variable. Instead you can (and better should) declare a
BBParater.
With that, you access the value of the parameter with the .value property and it allows you to select a blackboard variable instead of directly assigning a reference as well.
I could easility add converters within the BBParemeter class to allows selection of for example a Transform where a Vector3 is required, thus declaring a BBParameter would allows for:
– A direct Vector3 value
– A blackboard Vector3 blackboard variable
– A Transform blackboard variable
I suppose that is what you mean.
I am not sure what you mean with the “Loop” though.
Also, if you’d like to take the maths off the graph, you can bind Blackboard variables to properties and have perfect control of what a “variable” gets or sets by the data bound property in your script.
So you can have a “Fear” variable, bound to a Fear public property in for example your “Character” mono script.
Then whenever you use get the fear variable it returns the Fear property value, where you can calculate it however you’d like in code and out of the graph.
Let me know
Cheers!
Join us on Discord: https://discord.gg/97q2Rjh
Author
Posts
Viewing 2 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic.
Login
Register
By registering on this website you agree to our Privacy Policy.