perfectbloo submitted a new resource:
Blooprints - Create advanced scene logic with nodes
Read more about this resource...
Blooprints - Create advanced scene logic with nodes
Read more about this resource...
Last edited:
Thanks man, appreciate that! Yeah, I've been working on this one quite a bitYou are an absolute MADMAN. This is incredible work. Thank you for sharing! I look forward to seeing what the community creates with this - but well done on what must have been a HUGE effort.
here is the error log@cyberdelique Thanks for reporting! I can't reproduce the issue though, the UI seems to work fine for me in subscenes. Can you share more details about your subscene and what you mean by the "UI breaks"?
@rutheniumm Are you asking how to set the value of a string chooser parameter? If so, you should use the "Set Value" node like in the example below. Right now you must type in the value, I should make this a dropdown for string chooser params in a future version.rutheniumm said:This is a good plugin however, im wondering how i can activate triggers via blooprints, do i have to use Callback? because i dont know, i can activate triggers that take in a float argument, but i dont know how to activate triggers with StringChooser types, im trying to trigger some params inside the VAMMoan2 plugin.
{
"Version" : "1.0.0.1",
"Storables" : [
],
"Graph" : {
"Guid" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"variables" : [
],
"nodes" : [
{
"Guid" : "03729e6a-e4eb-4454-842c-3a061098d055",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"inExecPins" : [
],
"outExecPins" : [
{
"Guid" : "5dd9f78a-acb1-43b4-b97c-e91f25fdeaa7",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "03729e6a-e4eb-4454-842c-3a061098d055",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
],
"outDataPins" : [
],
"displayName" : "OnEnable",
"compactName" : "",
"position" : {
"x" : "-817.7578",
"y" : "480.7813"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOnEnable"
},
{
"Guid" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
{
"Guid" : "b9a6fecf-06f1-428b-b275-a182ab79846e",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
"IsOutput" : "false",
"name" : "Atom",
"type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"defaultValue" : {
"$value" : "[CameraRig]",
"$type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "06792e2c-d73d-4734-92cc-349f3c1b0262",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
"IsOutput" : "false",
"name" : "Name",
"type" : "System.String",
"constraint" : {
"types" : [
"System.String"
]
},
"defaultValue" : {
"$value" : "VAMMoan2TeaserPlugin.VAMMoan2Teaser",
"$type" : "System.String"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "418dfa72-722b-4619-9122-d85295b1af32",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074",
"IsOutput" : "true",
"name" : "",
"type" : "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "FindPlugin",
"compactName" : "",
"position" : {
"x" : "-563.9922",
"y" : "315.957"
},
"$type" : "perfectbloo.Blooprints.Nodes.Atoms.PBNodeAtomsFindPlugin"
},
{
"Guid" : "590dce1c-368e-4b6a-b438-381b30a2a8eb",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
],
"outDataPins" : [
{
"Guid" : "900abb06-81ed-4f0c-8d3b-6d15c3b27c1d",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "590dce1c-368e-4b6a-b438-381b30a2a8eb",
"IsOutput" : "true",
"name" : "Value",
"type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "Owner",
"compactName" : "Owner",
"position" : {
"x" : "-792.4766",
"y" : "261.3398"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOwner"
},
{
"Guid" : "7560913e-334a-4e3c-85a1-6134144a00c5",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
{
"Guid" : "3a2889ac-841e-4f0e-8004-4e72b76cff71",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "7560913e-334a-4e3c-85a1-6134144a00c5",
"IsOutput" : "false",
"name" : "Storable",
"type" : "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "3ce35db1-5ee4-429e-adfa-1f490c4370d2",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "7560913e-334a-4e3c-85a1-6134144a00c5",
"IsOutput" : "false",
"name" : "Name",
"type" : "System.String",
"constraint" : {
"types" : [
"System.String"
]
},
"defaultValue" : {
"$value" : "Change State",
"$type" : "System.String"
},
"visibility" : [
"Name",
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "0c53c197-1f68-47d0-951e-cc872bfdfb2c",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "7560913e-334a-4e3c-85a1-6134144a00c5",
"IsOutput" : "true",
"name" : "",
"type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "GetParam",
"compactName" : "",
"position" : {
"x" : "138.9648",
"y" : "315.2188"
},
"$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetParam"
},
{
"Guid" : "6629661f-57f6-4343-9c1e-58a9cc584345",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"inExecPins" : [
{
"Guid" : "a28fc88e-8390-4cd2-81d3-381bf157e2ce",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
"IsOutput" : "false",
"name" : "Exec",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"outExecPins" : [
{
"Guid" : "079472e5-830a-4288-a42d-bbbaf8d5ee10",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
{
"Guid" : "6a700970-c878-47ca-86d4-c48df71111e7",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
"IsOutput" : "false",
"name" : "Param",
"type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "e0f94973-3995-4617-9d3a-a0c1a8f1ef6f",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Node" : "6629661f-57f6-4343-9c1e-58a9cc584345",
"IsOutput" : "false",
"name" : "Value",
"type" : "System.String",
"constraint" : {
"types" : [
"System.Boolean",
"System.Single",
"UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"System.String",
"HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"defaultValue" : {
"$value" : "Kissing",
"$type" : "System.String"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
],
"displayName" : "SetValue",
"compactName" : "",
"position" : {
"x" : "639.1289",
"y" : "482.3672"
},
"$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesSetValue"
}
],
"links" : [
{
"Guid" : "154a8995-0728-4dc9-9784-a32ab0e4758c",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Output" : "900abb06-81ed-4f0c-8d3b-6d15c3b27c1d",
"Input" : "b9a6fecf-06f1-428b-b275-a182ab79846e"
},
{
"Guid" : "a1573566-e1fa-46a2-8816-b61dbf6a542d",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Output" : "418dfa72-722b-4619-9122-d85295b1af32",
"Input" : "3a2889ac-841e-4f0e-8004-4e72b76cff71"
},
{
"Guid" : "4c629461-686e-4e01-a405-73a3ca7261f4",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Output" : "5dd9f78a-acb1-43b4-b97c-e91f25fdeaa7",
"Input" : "a28fc88e-8390-4cd2-81d3-381bf157e2ce"
},
{
"Guid" : "58cffc8a-0c99-4dcf-bf21-73d9fd55e220",
"Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421",
"Output" : "0c53c197-1f68-47d0-951e-cc872bfdfb2c",
"Input" : "6a700970-c878-47ca-86d4-c48df71111e7"
}
],
"redirectors" : [
]
}
}
Ah, I must've done something wrong to not get the same results you yielded in this response, common mistake XD. I appreciate the assistance on that. Now, as of right now Is it possible to make new atoms via blueprints? I also have a recommendation: you should add node groups so you can sort of organize your nodes, as well as node renaming. I would also appreciate it if you added more explanation on how to use callbacks; it seems a bit repetitive, and it seems like there could perhaps be a better way of implementing callbacks in this node system. But in the meantime, I think it would be helpful for me and any other users who come across this plugin that you added some more documentation, of course, that is a lot of work, but some minor documentation could work. You could basically make an auto-doc system yourself if you really wanted to, but when it comes to documentation, I think that would be a VERY helpful thing, as this plugin is already one of my favorites. I've been waiting for some logic/scripting like this for ages now. Adding on, your GPURaycast plugin, which you also recently released, is it able to be used with Blooprints? And finally, if you do add node grouping/renaming, you should allow for there to be custom nodes we can make when we bundle these nodes together, it could allow for a better way for people to make individual node addons to this plugin, and better yet it could eventually have its own section on the VAM Resources, and people can just easily download node extensions. Other than that, I'm very impressed with this, as it is one of your first few plugins released.@rutheniumm Are you asking how to set the value of a string chooser parameter? If so, you should use the "Set Value" node like in the example below. Right now you must type in the value, I should make this a dropdown for string chooser params in a future version.
View attachment 570209
JSON:{ "Version" : "1.0.0.1", "Storables" : [ ], "Graph" : { "Guid" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "variables" : [ ], "nodes" : [ { "Guid" : "03729e6a-e4eb-4454-842c-3a061098d055", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "inExecPins" : [ ], "outExecPins" : [ { "Guid" : "5dd9f78a-acb1-43b4-b97c-e91f25fdeaa7", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "03729e6a-e4eb-4454-842c-3a061098d055", "IsOutput" : "true", "name" : "Then", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "inDataPins" : [ ], "outDataPins" : [ ], "displayName" : "OnEnable", "compactName" : "", "position" : { "x" : "-817.7578", "y" : "480.7813" }, "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOnEnable" }, { "Guid" : "b56031b0-a515-4fec-b77b-5f879a4ea074", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "inExecPins" : [ ], "outExecPins" : [ ], "inDataPins" : [ { "Guid" : "b9a6fecf-06f1-428b-b275-a182ab79846e", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074", "IsOutput" : "false", "name" : "Atom", "type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "defaultValue" : { "$value" : "[CameraRig]", "$type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" }, { "Guid" : "06792e2c-d73d-4734-92cc-349f3c1b0262", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074", "IsOutput" : "false", "name" : "Name", "type" : "System.String", "constraint" : { "types" : [ "System.String" ] }, "defaultValue" : { "$value" : "VAMMoan2TeaserPlugin.VAMMoan2Teaser", "$type" : "System.String" }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "outDataPins" : [ { "Guid" : "418dfa72-722b-4619-9122-d85295b1af32", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "b56031b0-a515-4fec-b77b-5f879a4ea074", "IsOutput" : "true", "name" : "", "type" : "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "displayName" : "FindPlugin", "compactName" : "", "position" : { "x" : "-563.9922", "y" : "315.957" }, "$type" : "perfectbloo.Blooprints.Nodes.Atoms.PBNodeAtomsFindPlugin" }, { "Guid" : "590dce1c-368e-4b6a-b438-381b30a2a8eb", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "inExecPins" : [ ], "outExecPins" : [ ], "inDataPins" : [ ], "outDataPins" : [ { "Guid" : "900abb06-81ed-4f0c-8d3b-6d15c3b27c1d", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "590dce1c-368e-4b6a-b438-381b30a2a8eb", "IsOutput" : "true", "name" : "Value", "type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Default" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "displayName" : "Owner", "compactName" : "Owner", "position" : { "x" : "-792.4766", "y" : "261.3398" }, "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOwner" }, { "Guid" : "7560913e-334a-4e3c-85a1-6134144a00c5", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "inExecPins" : [ ], "outExecPins" : [ ], "inDataPins" : [ { "Guid" : "3a2889ac-841e-4f0e-8004-4e72b76cff71", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "7560913e-334a-4e3c-85a1-6134144a00c5", "IsOutput" : "false", "name" : "Storable", "type" : "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" }, { "Guid" : "3ce35db1-5ee4-429e-adfa-1f490c4370d2", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "7560913e-334a-4e3c-85a1-6134144a00c5", "IsOutput" : "false", "name" : "Name", "type" : "System.String", "constraint" : { "types" : [ "System.String" ] }, "defaultValue" : { "$value" : "Change State", "$type" : "System.String" }, "visibility" : [ "Name", "Default" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "outDataPins" : [ { "Guid" : "0c53c197-1f68-47d0-951e-cc872bfdfb2c", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "7560913e-334a-4e3c-85a1-6134144a00c5", "IsOutput" : "true", "name" : "", "type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "displayName" : "GetParam", "compactName" : "", "position" : { "x" : "138.9648", "y" : "315.2188" }, "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetParam" }, { "Guid" : "6629661f-57f6-4343-9c1e-58a9cc584345", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "inExecPins" : [ { "Guid" : "a28fc88e-8390-4cd2-81d3-381bf157e2ce", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345", "IsOutput" : "false", "name" : "Exec", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "outExecPins" : [ { "Guid" : "079472e5-830a-4288-a42d-bbbaf8d5ee10", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345", "IsOutput" : "true", "name" : "Then", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "inDataPins" : [ { "Guid" : "6a700970-c878-47ca-86d4-c48df71111e7", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345", "IsOutput" : "false", "name" : "Param", "type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" }, { "Guid" : "e0f94973-3995-4617-9d3a-a0c1a8f1ef6f", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Node" : "6629661f-57f6-4343-9c1e-58a9cc584345", "IsOutput" : "false", "name" : "Value", "type" : "System.String", "constraint" : { "types" : [ "System.Boolean", "System.Single", "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "System.String", "HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "defaultValue" : { "$value" : "Kissing", "$type" : "System.String" }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "outDataPins" : [ ], "displayName" : "SetValue", "compactName" : "", "position" : { "x" : "639.1289", "y" : "482.3672" }, "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesSetValue" } ], "links" : [ { "Guid" : "154a8995-0728-4dc9-9784-a32ab0e4758c", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Output" : "900abb06-81ed-4f0c-8d3b-6d15c3b27c1d", "Input" : "b9a6fecf-06f1-428b-b275-a182ab79846e" }, { "Guid" : "a1573566-e1fa-46a2-8816-b61dbf6a542d", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Output" : "418dfa72-722b-4619-9122-d85295b1af32", "Input" : "3a2889ac-841e-4f0e-8004-4e72b76cff71" }, { "Guid" : "4c629461-686e-4e01-a405-73a3ca7261f4", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Output" : "5dd9f78a-acb1-43b4-b97c-e91f25fdeaa7", "Input" : "a28fc88e-8390-4cd2-81d3-381bf157e2ce" }, { "Guid" : "58cffc8a-0c99-4dcf-bf21-73d9fd55e220", "Graph" : "7262e9f5-c800-4b7f-a4d2-bd444fbcb421", "Output" : "0c53c197-1f68-47d0-951e-cc872bfdfb2c", "Input" : "6a700970-c878-47ca-86d4-c48df71111e7" } ], "redirectors" : [ ] } }
No, there's no node for that at the moment.Now, as of right now Is it possible to make new atoms via blueprints?
As someone who likes to keep my Blooprints tidy and organized myself, yes, that would be very useful, especially grouping.I also have a recommendation: you should add node groups so you can sort of organize your nodes, as well as node renaming.
Callbacks are used to do something whenever the value of a param changes. The example Blooprint below illustrates how to use callbacks. In this example the value of "Some Param" is logged whenever it's changed (e.g. via the slider in the UI, or using the SetValue node).I would also appreciate it if you added more explanation on how to use callbacks; it seems a bit repetitive, and it seems like there could perhaps be a better way of implementing callbacks in this node system.
{
"Version" : "1.0.0.1",
"Storables" : [
{
"name" : "Some Param",
"hasUi" : "true",
"uiRightSide" : "false",
"defaultValue" : "0",
"min" : "0",
"max" : "1",
"constrained" : "true",
"wholeNumbers" : "false",
"$type" : "perfectbloo.Core.Storables.DynamicFloatParam"
}
],
"Graph" : {
"Guid" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"variables" : [
{
"Guid" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"name" : "My Callback",
"Kind" : "Callback",
"type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
}
],
"nodes" : [
{
"Guid" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"inExecPins" : [
{
"Guid" : "0d92aae3-6777-4085-ba16-2e35dabb872b",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
"IsOutput" : "false",
"name" : "Exec",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"outExecPins" : [
{
"Guid" : "8810fb1a-d4f2-40c8-b0fc-73d830fbcf15",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
{
"Guid" : "c111d6ef-669c-4112-af5c-2864cc0a1976",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2",
"IsOutput" : "false",
"name" : "Message",
"type" : "System.Object",
"constraint" : {
"types" : [
"System.String",
"System.Object"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
],
"displayName" : "Print",
"compactName" : "",
"position" : {
"x" : "456.0703",
"y" : "-48.97656"
},
"$type" : "perfectbloo.Blooprints.Nodes.Logging.PBNodeLoggingPrint"
},
{
"Guid" : "1d0497d8-d237-404e-ba17-26b73b0eb72e",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
],
"outDataPins" : [
{
"Guid" : "e98016b7-9045-410c-9daa-7246be4e40ce",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "1d0497d8-d237-404e-ba17-26b73b0eb72e",
"IsOutput" : "true",
"name" : "Value",
"type" : "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "Self",
"compactName" : "Self",
"position" : {
"x" : "-94.99219",
"y" : "375.1523"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintSelf"
},
{
"Guid" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
{
"Guid" : "011342fc-5ff5-49dc-b97a-a1e75207bb60",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
"IsOutput" : "false",
"name" : "Storable",
"type" : "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "b0d44046-dff5-4f35-8e7f-e6cafeea15d0",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
"IsOutput" : "false",
"name" : "Name",
"type" : "System.String",
"constraint" : {
"types" : [
"System.String"
]
},
"defaultValue" : {
"$value" : "Some Param",
"$type" : "System.String"
},
"visibility" : [
"Name",
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "4765ba55-ce8e-42c7-91c4-052f23e7decc",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1",
"IsOutput" : "true",
"name" : "",
"type" : "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "GetParam",
"compactName" : "",
"position" : {
"x" : "74.88281",
"y" : "429.7383"
},
"$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetParam"
},
{
"Guid" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
{
"Guid" : "6140a4cf-0161-48c7-bd1b-ef4086f861a4",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26",
"IsOutput" : "false",
"name" : "Guid",
"type" : "System.Guid",
"constraint" : {
"types" : [
"System.Guid"
]
},
"defaultValue" : {
"$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
"$type" : "System.Guid"
},
"visibility" : [
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "389a8c5e-a300-460d-834d-1227cd128ed1",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26",
"IsOutput" : "true",
"name" : "Value",
"type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "GetCallback",
"compactName" : "",
"position" : {
"x" : "93.84375",
"y" : "195.6055"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetCallback"
},
{
"Guid" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"inExecPins" : [
{
"Guid" : "3247826e-b087-4b7b-a435-919f45eade42",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
"IsOutput" : "false",
"name" : "Exec",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"outExecPins" : [
{
"Guid" : "ef79c87f-fe5f-426d-b9cd-63637b16f2b3",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
{
"Guid" : "77a06387-9739-4421-b44b-26341893eed1",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
"IsOutput" : "false",
"name" : "Param",
"type" : "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "32b73b0a-c4db-440b-a217-bbc31cf4a882",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
"IsOutput" : "false",
"name" : "Callback",
"type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "6c179ba6-ecc0-4d2d-83e0-bc8c29b9703a",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
"IsOutput" : "false",
"name" : "On",
"type" : "System.Boolean",
"constraint" : {
"types" : [
"System.Boolean"
]
},
"defaultValue" : {
"$value" : "true",
"$type" : "System.Boolean"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "c28390e4-5f9c-4878-81cf-e302be70595a",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0",
"IsOutput" : "false",
"name" : "CallNow",
"type" : "System.Boolean",
"constraint" : {
"types" : [
"System.Boolean"
]
},
"defaultValue" : {
"$value" : "false",
"$type" : "System.Boolean"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
],
"displayName" : "SetCallback",
"compactName" : "",
"position" : {
"x" : "606.4766",
"y" : "574.2344"
},
"$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesSetCallback"
},
{
"Guid" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"inExecPins" : [
],
"outExecPins" : [
{
"Guid" : "c89a35ca-976d-43a9-980d-464ec6c0f2a4",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
{
"Guid" : "dd229fa2-1076-49d9-8234-bf2d7f16684e",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
"IsOutput" : "false",
"name" : "CallbackVariable",
"type" : "System.Guid",
"constraint" : {
"types" : [
"System.Guid"
]
},
"defaultValue" : {
"$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
"$type" : "System.Guid"
},
"visibility" : [
"None"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "96ebdba4-82df-49f0-a911-bfa1ca253ced",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
"IsOutput" : "false",
"name" : "Type",
"type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType",
"constraint" : {
"types" : [
"perfectbloo.Blooprints.Nodes.Blooprint.EStorableType"
]
},
"defaultValue" : {
"$value" : "Float",
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType"
},
"visibility" : [
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "7bdaa97b-1fed-4d51-a456-d8d448a0c0ea",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
"IsOutput" : "false",
"name" : "Name",
"type" : "System.String",
"constraint" : {
"types" : [
"System.String"
]
},
"defaultValue" : {
"$value" : "My Callback",
"$type" : "System.String"
},
"visibility" : [
"Name",
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "767e8c9a-c32d-4c7e-a7b7-08256251a615",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662",
"IsOutput" : "true",
"name" : "Value",
"type" : "System.Single",
"constraint" : {
"types" : [
"System.Single"
]
},
"defaultValue" : {
"$value" : "0",
"$type" : "System.Single"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "Callback",
"compactName" : "",
"position" : {
"x" : "-168.9844",
"y" : "-50.07031"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintCallback"
},
{
"Guid" : "0c5f0c87-e5ba-4de7-8595-15eb3e28830e",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"inExecPins" : [
],
"outExecPins" : [
{
"Guid" : "e2a58551-64c6-4f5d-a09b-e9d192ca8781",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "0c5f0c87-e5ba-4de7-8595-15eb3e28830e",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
],
"outDataPins" : [
],
"displayName" : "OnEnable",
"compactName" : "",
"position" : {
"x" : "-175.8555",
"y" : "573.3008"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOnEnable"
},
{
"Guid" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"inExecPins" : [
{
"Guid" : "f72f8271-6ab4-48cb-a54f-9584cb4f8eb8",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
"IsOutput" : "false",
"name" : "Exec",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"outExecPins" : [
{
"Guid" : "b5396bdf-5dc6-4e9b-a06d-7eb3739f8cf6",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
{
"Guid" : "5a1a7d2a-2b8f-4f28-8690-0951f99ec0ac",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
"IsOutput" : "false",
"name" : "Callback",
"type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "816ab479-484b-4277-a364-ee4702f94e79",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b",
"IsOutput" : "false",
"name" : "Value",
"type" : "System.Single",
"constraint" : {
"types" : [
"System.Boolean",
"System.Single",
"UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"System.String",
"HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"defaultValue" : {
"$value" : "42",
"$type" : "System.Single"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
],
"displayName" : "Call",
"compactName" : "",
"position" : {
"x" : "1474.332",
"y" : "565.8906"
},
"$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesCall"
},
{
"Guid" : "87eb0703-6112-4446-830e-9e9e108f0bea",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
{
"Guid" : "a5131a80-8fda-4923-8291-dc33093ad2b1",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "87eb0703-6112-4446-830e-9e9e108f0bea",
"IsOutput" : "false",
"name" : "Guid",
"type" : "System.Guid",
"constraint" : {
"types" : [
"System.Guid"
]
},
"defaultValue" : {
"$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e",
"$type" : "System.Guid"
},
"visibility" : [
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "86f2ccb2-f7f9-432e-bb53-b1ec367f2794",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Node" : "87eb0703-6112-4446-830e-9e9e108f0bea",
"IsOutput" : "true",
"name" : "Value",
"type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "GetCallback",
"compactName" : "",
"position" : {
"x" : "985.5586",
"y" : "442.4023"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetCallback"
}
],
"links" : [
{
"Guid" : "c471cb0a-f392-4d80-b216-c0c70d2a723b",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Output" : "4765ba55-ce8e-42c7-91c4-052f23e7decc",
"Input" : "77a06387-9739-4421-b44b-26341893eed1"
},
{
"Guid" : "3ab2bf25-b0c3-4ee2-b71f-685366da5b6e",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Output" : "e98016b7-9045-410c-9daa-7246be4e40ce",
"Input" : "011342fc-5ff5-49dc-b97a-a1e75207bb60"
},
{
"Guid" : "8e90cc86-e181-4e53-9e61-848411354a06",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Output" : "389a8c5e-a300-460d-834d-1227cd128ed1",
"Input" : "32b73b0a-c4db-440b-a217-bbc31cf4a882"
},
{
"Guid" : "88c3b13c-d3bb-4355-98f6-c41682544b70",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Output" : "767e8c9a-c32d-4c7e-a7b7-08256251a615",
"Input" : "c111d6ef-669c-4112-af5c-2864cc0a1976"
},
{
"Guid" : "5fa6a0bc-5dbb-4947-82dc-ae6ac35ffb9f",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Output" : "c89a35ca-976d-43a9-980d-464ec6c0f2a4",
"Input" : "0d92aae3-6777-4085-ba16-2e35dabb872b"
},
{
"Guid" : "f5784690-bfdc-4ad0-81ac-03be434d9a7a",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Output" : "e2a58551-64c6-4f5d-a09b-e9d192ca8781",
"Input" : "3247826e-b087-4b7b-a435-919f45eade42"
},
{
"Guid" : "ec6ec363-fd23-46e0-8e96-3f01ecfaa6ef",
"Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911",
"Output" : "86f2ccb2-f7f9-432e-bb53-b1ec367f2794",
"Input" : "5a1a7d2a-2b8f-4f28-8690-0951f99ec0ac"
}
],
"redirectors" : [
]
}
}
I totally get that, documentation is very important for a tool like this. Just keep in mind, at this point this is an experimental release. For those that like to tinker and experiment themselves, and maybe even have some experience with other node based scripting tools like UE5. Knowing VaM plugin development can help a lot, too.But in the meantime, I think it would be helpful for me and any other users who come across this plugin that you added some more documentation, of course, that is a lot of work, but some minor documentation could work. You could basically make an auto-doc system yourself if you really wanted to, but when it comes to documentation, I think that would be a VERY helpful thing, as this plugin is already one of my favorites. I've been waiting for some logic/scripting like this for ages now.
Technically it is, but not really convenient. It exposes an API you could access using the param, value, and call nodes. But no, there's no dedicated node for it.Adding on, your GPURaycast plugin, which you also recently released, is it able to be used with Blooprints?
Making reusable building blocks like custom nodes is definitely on the roadmap!And finally, if you do add node grouping/renaming, you should allow for there to be custom nodes we can make when we bundle these nodes together, it could allow for a better way for people to make individual node addons to this plugin, and better yet it could eventually have its own section on the VAM Resources, and people can just easily download node extensions.
Thanks for all your suggestions 🩵Other than that, I'm very impressed with this, as it is one of your first few plugins released.
Really appreciate you and your contribution to the VaM community, for now i wish you the best of luck on this project. Cheers.No, there's no node for that at the moment.
As someone who likes to keep my Blooprints tidy and organized myself, yes, that would be very useful, especially grouping.
Callbacks are used to do something whenever the value of a param changes. The example Blooprint below illustrates how to use callbacks. In this example the value of "Some Param" is logged whenever it's changed (e.g. via the slider in the UI, or using the SetValue node).
If you enable "Call Now" in the SetCallback node, the callback will not only be called whenever the value changes, but also once right now with the current value of the param. This is useful for initialization.
You can also use the SetCallback node with the "On" toggle disabled at a later point again, if you want to stop listening to changes. Callbacks will also automatically unsubscribed when Run is disabled.
If you want to manually run your callback logic, use the Call node. This will invoke your callback with the passed value, but not change the param value.
Also worth noting, you can use the same callback for multiple params.
As for the repetitiveness, it can be, yes. I plan to add dropdowns to the SetCallback node, that could already make it a bit smoother. For the "Param" pin all params of the Blooprint itself, and its callbacks in the "Callback" pin.
View attachment 570290
JSON:{ "Version" : "1.0.0.1", "Storables" : [ { "name" : "Some Param", "hasUi" : "true", "uiRightSide" : "false", "defaultValue" : "0", "min" : "0", "max" : "1", "constrained" : "true", "wholeNumbers" : "false", "$type" : "perfectbloo.Core.Storables.DynamicFloatParam" } ], "Graph" : { "Guid" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "variables" : [ { "Guid" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "name" : "My Callback", "Kind" : "Callback", "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" } ], "nodes" : [ { "Guid" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "inExecPins" : [ { "Guid" : "0d92aae3-6777-4085-ba16-2e35dabb872b", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2", "IsOutput" : "false", "name" : "Exec", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "outExecPins" : [ { "Guid" : "8810fb1a-d4f2-40c8-b0fc-73d830fbcf15", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2", "IsOutput" : "true", "name" : "Then", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "inDataPins" : [ { "Guid" : "c111d6ef-669c-4112-af5c-2864cc0a1976", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "1dea6492-32fc-4423-b94f-ebf3b2c33bd2", "IsOutput" : "false", "name" : "Message", "type" : "System.Object", "constraint" : { "types" : [ "System.String", "System.Object" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "outDataPins" : [ ], "displayName" : "Print", "compactName" : "", "position" : { "x" : "456.0703", "y" : "-48.97656" }, "$type" : "perfectbloo.Blooprints.Nodes.Logging.PBNodeLoggingPrint" }, { "Guid" : "1d0497d8-d237-404e-ba17-26b73b0eb72e", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "inExecPins" : [ ], "outExecPins" : [ ], "inDataPins" : [ ], "outDataPins" : [ { "Guid" : "e98016b7-9045-410c-9daa-7246be4e40ce", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "1d0497d8-d237-404e-ba17-26b73b0eb72e", "IsOutput" : "true", "name" : "Value", "type" : "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Default" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "displayName" : "Self", "compactName" : "Self", "position" : { "x" : "-94.99219", "y" : "375.1523" }, "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintSelf" }, { "Guid" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "inExecPins" : [ ], "outExecPins" : [ ], "inDataPins" : [ { "Guid" : "011342fc-5ff5-49dc-b97a-a1e75207bb60", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1", "IsOutput" : "false", "name" : "Storable", "type" : "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" }, { "Guid" : "b0d44046-dff5-4f35-8e7f-e6cafeea15d0", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1", "IsOutput" : "false", "name" : "Name", "type" : "System.String", "constraint" : { "types" : [ "System.String" ] }, "defaultValue" : { "$value" : "Some Param", "$type" : "System.String" }, "visibility" : [ "Name", "Default" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "outDataPins" : [ { "Guid" : "4765ba55-ce8e-42c7-91c4-052f23e7decc", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "a4b9e161-0c30-49c1-a2a6-ea1aab3e7eb1", "IsOutput" : "true", "name" : "", "type" : "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "displayName" : "GetParam", "compactName" : "", "position" : { "x" : "74.88281", "y" : "429.7383" }, "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetParam" }, { "Guid" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "inExecPins" : [ ], "outExecPins" : [ ], "inDataPins" : [ { "Guid" : "6140a4cf-0161-48c7-bd1b-ef4086f861a4", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26", "IsOutput" : "false", "name" : "Guid", "type" : "System.Guid", "constraint" : { "types" : [ "System.Guid" ] }, "defaultValue" : { "$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e", "$type" : "System.Guid" }, "visibility" : [ "Default" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "outDataPins" : [ { "Guid" : "389a8c5e-a300-460d-834d-1227cd128ed1", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "b79c7a6f-25c4-4c52-8bcf-10eb250eda26", "IsOutput" : "true", "name" : "Value", "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "displayName" : "GetCallback", "compactName" : "", "position" : { "x" : "93.84375", "y" : "195.6055" }, "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetCallback" }, { "Guid" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "inExecPins" : [ { "Guid" : "3247826e-b087-4b7b-a435-919f45eade42", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0", "IsOutput" : "false", "name" : "Exec", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "outExecPins" : [ { "Guid" : "ef79c87f-fe5f-426d-b9cd-63637b16f2b3", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0", "IsOutput" : "true", "name" : "Then", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "inDataPins" : [ { "Guid" : "77a06387-9739-4421-b44b-26341893eed1", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0", "IsOutput" : "false", "name" : "Param", "type" : "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" }, { "Guid" : "32b73b0a-c4db-440b-a217-bbc31cf4a882", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0", "IsOutput" : "false", "name" : "Callback", "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" }, { "Guid" : "6c179ba6-ecc0-4d2d-83e0-bc8c29b9703a", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0", "IsOutput" : "false", "name" : "On", "type" : "System.Boolean", "constraint" : { "types" : [ "System.Boolean" ] }, "defaultValue" : { "$value" : "true", "$type" : "System.Boolean" }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" }, { "Guid" : "c28390e4-5f9c-4878-81cf-e302be70595a", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "1cf78e09-32dc-4b1a-8247-c6d71c4ef4f0", "IsOutput" : "false", "name" : "CallNow", "type" : "System.Boolean", "constraint" : { "types" : [ "System.Boolean" ] }, "defaultValue" : { "$value" : "false", "$type" : "System.Boolean" }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "outDataPins" : [ ], "displayName" : "SetCallback", "compactName" : "", "position" : { "x" : "606.4766", "y" : "574.2344" }, "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesSetCallback" }, { "Guid" : "9d628fc8-fa1e-420b-8e84-2720fb284662", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "inExecPins" : [ ], "outExecPins" : [ { "Guid" : "c89a35ca-976d-43a9-980d-464ec6c0f2a4", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662", "IsOutput" : "true", "name" : "Then", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "inDataPins" : [ { "Guid" : "dd229fa2-1076-49d9-8234-bf2d7f16684e", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662", "IsOutput" : "false", "name" : "CallbackVariable", "type" : "System.Guid", "constraint" : { "types" : [ "System.Guid" ] }, "defaultValue" : { "$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e", "$type" : "System.Guid" }, "visibility" : [ "None" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" }, { "Guid" : "96ebdba4-82df-49f0-a911-bfa1ca253ced", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662", "IsOutput" : "false", "name" : "Type", "type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType", "constraint" : { "types" : [ "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType" ] }, "defaultValue" : { "$value" : "Float", "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType" }, "visibility" : [ "Default" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" }, { "Guid" : "7bdaa97b-1fed-4d51-a456-d8d448a0c0ea", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662", "IsOutput" : "false", "name" : "Name", "type" : "System.String", "constraint" : { "types" : [ "System.String" ] }, "defaultValue" : { "$value" : "My Callback", "$type" : "System.String" }, "visibility" : [ "Name", "Default" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "outDataPins" : [ { "Guid" : "767e8c9a-c32d-4c7e-a7b7-08256251a615", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "9d628fc8-fa1e-420b-8e84-2720fb284662", "IsOutput" : "true", "name" : "Value", "type" : "System.Single", "constraint" : { "types" : [ "System.Single" ] }, "defaultValue" : { "$value" : "0", "$type" : "System.Single" }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "displayName" : "Callback", "compactName" : "", "position" : { "x" : "-168.9844", "y" : "-50.07031" }, "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintCallback" }, { "Guid" : "0c5f0c87-e5ba-4de7-8595-15eb3e28830e", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "inExecPins" : [ ], "outExecPins" : [ { "Guid" : "e2a58551-64c6-4f5d-a09b-e9d192ca8781", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "0c5f0c87-e5ba-4de7-8595-15eb3e28830e", "IsOutput" : "true", "name" : "Then", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "inDataPins" : [ ], "outDataPins" : [ ], "displayName" : "OnEnable", "compactName" : "", "position" : { "x" : "-175.8555", "y" : "573.3008" }, "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOnEnable" }, { "Guid" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "inExecPins" : [ { "Guid" : "f72f8271-6ab4-48cb-a54f-9584cb4f8eb8", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b", "IsOutput" : "false", "name" : "Exec", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "outExecPins" : [ { "Guid" : "b5396bdf-5dc6-4e9b-a06d-7eb3739f8cf6", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b", "IsOutput" : "true", "name" : "Then", "constraint" : { "types" : [ ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "isAsync" : "false", "$type" : "perfectbloo.Blooprints.Graphs.ExecPin" } ], "inDataPins" : [ { "Guid" : "5a1a7d2a-2b8f-4f28-8690-0951f99ec0ac", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b", "IsOutput" : "false", "name" : "Callback", "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" }, { "Guid" : "816ab479-484b-4277-a364-ee4702f94e79", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "a196fa3e-9315-4aa7-b7ec-7af40792a55b", "IsOutput" : "false", "name" : "Value", "type" : "System.Single", "constraint" : { "types" : [ "System.Boolean", "System.Single", "UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "System.String", "HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "defaultValue" : { "$value" : "42", "$type" : "System.Single" }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "outDataPins" : [ ], "displayName" : "Call", "compactName" : "", "position" : { "x" : "1474.332", "y" : "565.8906" }, "$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesCall" }, { "Guid" : "87eb0703-6112-4446-830e-9e9e108f0bea", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "inExecPins" : [ ], "outExecPins" : [ ], "inDataPins" : [ { "Guid" : "a5131a80-8fda-4923-8291-dc33093ad2b1", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "87eb0703-6112-4446-830e-9e9e108f0bea", "IsOutput" : "false", "name" : "Guid", "type" : "System.Guid", "constraint" : { "types" : [ "System.Guid" ] }, "defaultValue" : { "$value" : "22c67d3d-3d1d-43d6-a3c2-f13627c79b6e", "$type" : "System.Guid" }, "visibility" : [ "Default" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "outDataPins" : [ { "Guid" : "86f2ccb2-f7f9-432e-bb53-b1ec367f2794", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Node" : "87eb0703-6112-4446-830e-9e9e108f0bea", "IsOutput" : "true", "name" : "Value", "type" : "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", "constraint" : { "types" : [ "JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" ] }, "visibility" : [ "Pin", "Name", "Default", "All" ], "$type" : "perfectbloo.Blooprints.Graphs.DataPin" } ], "displayName" : "GetCallback", "compactName" : "", "position" : { "x" : "985.5586", "y" : "442.4023" }, "$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetCallback" } ], "links" : [ { "Guid" : "c471cb0a-f392-4d80-b216-c0c70d2a723b", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Output" : "4765ba55-ce8e-42c7-91c4-052f23e7decc", "Input" : "77a06387-9739-4421-b44b-26341893eed1" }, { "Guid" : "3ab2bf25-b0c3-4ee2-b71f-685366da5b6e", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Output" : "e98016b7-9045-410c-9daa-7246be4e40ce", "Input" : "011342fc-5ff5-49dc-b97a-a1e75207bb60" }, { "Guid" : "8e90cc86-e181-4e53-9e61-848411354a06", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Output" : "389a8c5e-a300-460d-834d-1227cd128ed1", "Input" : "32b73b0a-c4db-440b-a217-bbc31cf4a882" }, { "Guid" : "88c3b13c-d3bb-4355-98f6-c41682544b70", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Output" : "767e8c9a-c32d-4c7e-a7b7-08256251a615", "Input" : "c111d6ef-669c-4112-af5c-2864cc0a1976" }, { "Guid" : "5fa6a0bc-5dbb-4947-82dc-ae6ac35ffb9f", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Output" : "c89a35ca-976d-43a9-980d-464ec6c0f2a4", "Input" : "0d92aae3-6777-4085-ba16-2e35dabb872b" }, { "Guid" : "f5784690-bfdc-4ad0-81ac-03be434d9a7a", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Output" : "e2a58551-64c6-4f5d-a09b-e9d192ca8781", "Input" : "3247826e-b087-4b7b-a435-919f45eade42" }, { "Guid" : "ec6ec363-fd23-46e0-8e96-3f01ecfaa6ef", "Graph" : "d6681344-2d2e-43f3-bbf8-040bf13fe911", "Output" : "86f2ccb2-f7f9-432e-bb53-b1ec367f2794", "Input" : "5a1a7d2a-2b8f-4f28-8690-0951f99ec0ac" } ], "redirectors" : [ ] } }
I totally get that, documentation is very important for a tool like this. Just keep in mind, at this point this is an experimental release. For those that like to tinker and experiment themselves, and maybe even have some experience with other node based scripting tools like UE5. Knowing VaM plugin development can help a lot, too.
But yes, for now it would also be great to at least have examples with the basics to get started. I hope to gradually build the documentation, with the long-term goal to have tutorials and actually have some sort of auto-doc system with descriptions of each node. To provide in-game hints, and probably a web-based documentation as well.
Technically it is, but not really convenient. It exposes an API you could access using the param, value, and call nodes. But no, there's no dedicated node for it.
Making reusable building blocks like custom nodes is definitely on the roadmap!
Thanks for all your suggestions 🩵
Right now I'm noting down all the feedback I get, prioritize, see what will make it into the next major update, and gradually improve documentation. However, as probably most other creators I'm doing this in my free time, so please be patient. In the meantime, I'm always happy to answer questions!
Thank you! 🩵I have to say, the plugin is sick, great work!
I think this is not a bug, it looks like you've built an infinite loop in your Blooprint. You are using "Call" inside your callback to trigger the same parameter you are already listening to with "SetCallback". That means "OnPlayChange" will be called again and again, freezing and crashing VaM in the end. If you tell me more about what you're trying to achieve, I can help you with solving the problem.Unfortunately I have a bad news, there is a bug: [...]
This shouldn't really be necessary for any other atom than CUAs. By default "OnEnable" is called after the scene has finished loading. That means all other plugins should already be initialized. Since CUAs load asynchronously though, they might not be fully loaded at that point yet. That's what you can wait for with the "IsCuaLoaded" node, and it's really only necessary if you are trying to access something inside the loaded CUA.I would also appreciate if there is sugestion around a Person plugins integration to be sure that atom and it plugins are initialized and ready to work. ("is CUA loaded" node thorows an error on a Person and I couldn't find analog for person).
I would consider it as a bug, or at least a problem, couse one clumsy move (cycling callbacks) may fuckup the whole blueprint, and there is no way to roll back that change.I think this is not a bug, it looks like you've built an infinite loop in your Blooprint. You are using "Call" inside your callback to trigger the same parameter you are already listening to with "SetCallback". That means "OnPlayChange" will be called again and again, freezing and crashing VaM in the end. If you tell me more about what you're trying to achieve, I can help you with solving the problem.
Fair enough. You can still load the Blooprint though by disabling the "Run" toggle before loading the Blooprint again. Still, unsaved progress would be lost. I might explore in the future if adding some infinite loop safe guard is possible.I would consider it as a bug, or at least a problem, couse one clumsy move (cycling callbacks) may fuckup the whole blueprint, and there is no way to roll back that change.
Ah I see, so if I understand correctly, you want to call the action once when it is selected in the dropdown. The issue with your Blooprint is that the param you pass to "SetCallback" is the action itself, e.g. in your example "Play Segment 1", not the param holding the dropdown value. "GetParamValue" is basically a shortcut for "Self -> GetParam -> GetValue", which in our example is "Self -> Action Param Dropdown -> Play Segment 1 Param". That means your callback actually was called whenever the animation is played, not when the dropdown value changes. I hope that explanation makes sense, this is actually one of the more complicated use cases.Anyway, seems like I don't fully understand what "Call" is doing, I though it simply execute some method I give to it.
What I'm trying to do is simply execute some action once it chenged in dropdown (param) in UI of the blueprint. So if "play segment 1" action is selected for VamTimeline storable on a Person atom, I want to call that selected action from the param. Don't understand why it might trigger param change if I'm getting value from it not setting in.
{
"Version" : "1.0.0.1",
"Storables" : [
{
"name" : "My Action",
"hasUi" : "true",
"uiRightSide" : "false",
"defaultValue" : {
"storable" : {
"atom" : "[CameraRig]",
"id" : "[CameraRig]"
},
"id" : "SaveToStore1"
},
"choices" : [
],
"StorableChooser" : {
"name" : "My Action_Storable",
"hasUi" : "false",
"uiRightSide" : "false",
"defaultValue" : {
"$value" : "[CameraRig]",
"$type" : "Atom, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
},
"choices" : [
],
"Atom" : {
"name" : "My Action_Storable_Atom",
"hasUi" : "false",
"uiRightSide" : "false",
"defaultValue" : "[CameraRig]",
"choices" : [
],
"filter" : "false"
}
},
"$type" : "perfectbloo.Core.Storables.DynamicJsonStorableActionChooserParam"
}
],
"Graph" : {
"Guid" : "4a73f179-1f04-4720-9ebb-291850453e26",
"variables" : [
{
"Guid" : "9c1ffc45-d308-497c-af3c-ae61554236d1",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"name" : "On Action Changed",
"Kind" : "Callback",
"type" : "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
}
],
"nodes" : [
{
"Guid" : "45c68880-5017-4711-98f3-fec9b01a92e1",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
],
"outExecPins" : [
{
"Guid" : "a4b046c6-9bb0-4aa2-a9f9-fc3c7b7d01e5",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "45c68880-5017-4711-98f3-fec9b01a92e1",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
],
"outDataPins" : [
],
"displayName" : "OnEnable",
"compactName" : "",
"position" : {
"x" : "-225.3906",
"y" : "537.4063"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintOnEnable"
},
{
"Guid" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
{
"Guid" : "82ad7dcb-a12b-483b-93ed-263993ef8b2a",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
"IsOutput" : "false",
"name" : "Exec",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"outExecPins" : [
{
"Guid" : "5267eb75-33f3-43be-849c-54788c6c39b6",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
{
"Guid" : "1e8d709c-8b28-4581-b5f7-908d35c2546a",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
"IsOutput" : "false",
"name" : "Param",
"type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "6b648089-07d7-4e5c-967c-8c75cb21f618",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
"IsOutput" : "false",
"name" : "Callback",
"type" : "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "a09c503c-536b-4699-b7e2-97341a9f762b",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
"IsOutput" : "false",
"name" : "On",
"type" : "System.Boolean",
"constraint" : {
"types" : [
"System.Boolean"
]
},
"defaultValue" : {
"$value" : "true",
"$type" : "System.Boolean"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "da1a5d06-03d3-4a5d-932a-94bf4f44de72",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "3e7e09b9-88d0-4cff-afe0-50b26264f373",
"IsOutput" : "false",
"name" : "CallNow",
"type" : "System.Boolean",
"constraint" : {
"types" : [
"System.Boolean"
]
},
"defaultValue" : {
"$value" : "true",
"$type" : "System.Boolean"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
],
"displayName" : "SetCallback",
"compactName" : "",
"position" : {
"x" : "77.14453",
"y" : "536.5742"
},
"$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesSetCallback"
},
{
"Guid" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
],
"outExecPins" : [
{
"Guid" : "28f4e9fd-815f-4aa3-bb5b-a5b6f93e9900",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
{
"Guid" : "873cb83a-1c85-4011-8cb6-0f7005bcc06c",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
"IsOutput" : "false",
"name" : "CallbackVariable",
"type" : "System.Guid",
"constraint" : {
"types" : [
"System.Guid"
]
},
"defaultValue" : {
"$value" : "9c1ffc45-d308-497c-af3c-ae61554236d1",
"$type" : "System.Guid"
},
"visibility" : [
"None"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "433ad5d5-ff8e-43b8-b385-7437fea94fcf",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
"IsOutput" : "false",
"name" : "Type",
"type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType",
"constraint" : {
"types" : [
"perfectbloo.Blooprints.Nodes.Blooprint.EStorableType"
]
},
"defaultValue" : {
"$value" : "StringChooser",
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.EStorableType"
},
"visibility" : [
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "c1a03ae7-fcdd-409d-bddf-142079732985",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
"IsOutput" : "false",
"name" : "Name",
"type" : "System.String",
"constraint" : {
"types" : [
"System.String"
]
},
"defaultValue" : {
"$value" : "On Action Changed",
"$type" : "System.String"
},
"visibility" : [
"Name",
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "a094beb1-1390-4ae6-9f5d-5ac7783cd5db",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "cff01bf8-cd99-4900-affe-e9c3ec022ce1",
"IsOutput" : "true",
"name" : "Value",
"type" : "System.String",
"constraint" : {
"types" : [
"System.String"
]
},
"defaultValue" : {
"$value" : "False",
"$type" : "System.String"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "Callback",
"compactName" : "",
"position" : {
"x" : "-656.0352",
"y" : "-54.91797"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintCallback"
},
{
"Guid" : "aaf8ccb5-83a2-4f6c-bd77-0a4fd9704540",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
{
"Guid" : "c0dd0fb1-07da-4fb5-8d38-baac1927d75e",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "aaf8ccb5-83a2-4f6c-bd77-0a4fd9704540",
"IsOutput" : "false",
"name" : "Guid",
"type" : "System.Guid",
"constraint" : {
"types" : [
"System.Guid"
]
},
"defaultValue" : {
"$value" : "9c1ffc45-d308-497c-af3c-ae61554236d1",
"$type" : "System.Guid"
},
"visibility" : [
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "19258f20-753a-4cc7-9d9e-9982336dacf7",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "aaf8ccb5-83a2-4f6c-bd77-0a4fd9704540",
"IsOutput" : "true",
"name" : "Value",
"type" : "JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "GetCallback",
"compactName" : "",
"position" : {
"x" : "-564.1602",
"y" : "133.9258"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetCallback"
},
{
"Guid" : "4a53d4e5-3d3f-423f-9cf9-f037f7e87e55",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
{
"Guid" : "b4d49f9f-bc88-4173-bf8d-2d5050e871a1",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "4a53d4e5-3d3f-423f-9cf9-f037f7e87e55",
"IsOutput" : "false",
"name" : "Name",
"type" : "System.String",
"constraint" : {
"types" : [
"System.String"
]
},
"defaultValue" : {
"$value" : "My Action",
"$type" : "System.String"
},
"visibility" : [
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "db56bcfa-8a89-4d01-826f-eb3a68e1aa67",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "4a53d4e5-3d3f-423f-9cf9-f037f7e87e55",
"IsOutput" : "true",
"name" : "Value",
"type" : "JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "GetParamValue",
"compactName" : "",
"position" : {
"x" : "-631.668",
"y" : "-360.75"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintGetParamValue"
},
{
"Guid" : "7c826e4c-9672-4d3e-a21e-5f6f34a06ab5",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
{
"Guid" : "93034606-38b4-4080-be91-65120ba31a63",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "7c826e4c-9672-4d3e-a21e-5f6f34a06ab5",
"IsOutput" : "false",
"name" : "Exec",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"outExecPins" : [
{
"Guid" : "151b8ab0-b3fc-4a5e-aa68-e53d83f439e1",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "7c826e4c-9672-4d3e-a21e-5f6f34a06ab5",
"IsOutput" : "true",
"name" : "Then",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"inDataPins" : [
{
"Guid" : "09f27f87-b443-4073-8d32-1370ffac3cb2",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "7c826e4c-9672-4d3e-a21e-5f6f34a06ab5",
"IsOutput" : "false",
"name" : "Callback",
"type" : "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableBool+SetBoolCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableFloat+SetFloatCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableVector3+SetVector3Callback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableString+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableStringChooser+SetStringCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableColor+SetHSVColorCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "9a9bb7dc-691c-4db1-bab0-6a83bc34572c",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "7c826e4c-9672-4d3e-a21e-5f6f34a06ab5",
"IsOutput" : "false",
"name" : "Value",
"type" : "System.Boolean",
"constraint" : {
"types" : [
"System.Boolean",
"System.Single",
"UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"System.String",
"HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"defaultValue" : {
"$value" : "false",
"$type" : "System.Boolean"
},
"visibility" : [
"None"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
],
"displayName" : "Call",
"compactName" : "",
"position" : {
"x" : "456.293",
"y" : "-52.58203"
},
"$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesCall"
},
{
"Guid" : "a9d87582-5b65-4857-bab5-92bea5455c5d",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
{
"Guid" : "bc13401a-d531-49d6-a803-acc501690cca",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "a9d87582-5b65-4857-bab5-92bea5455c5d",
"IsOutput" : "false",
"name" : "Param",
"type" : "JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableBool, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableFloat, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableVector3, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableString, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableUrl, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableAction, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "f6ef9b31-4996-468a-8c67-8683a158e65f",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "a9d87582-5b65-4857-bab5-92bea5455c5d",
"IsOutput" : "true",
"name" : "",
"type" : "JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"System.Boolean",
"System.Single",
"UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"System.String",
"HSVColor, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"JSONStorableAction+ActionCallback, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "GetValue",
"compactName" : "",
"position" : {
"x" : "21.10547",
"y" : "-359.7266"
},
"$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetValue"
},
{
"Guid" : "547efd1a-1772-40ea-9988-6af119998d76",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
{
"Guid" : "17ea975d-ef80-434f-8625-7316dcad8574",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "547efd1a-1772-40ea-9988-6af119998d76",
"IsOutput" : "false",
"name" : "Storable",
"type" : "JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorable, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
},
{
"Guid" : "358c3b64-f0d3-4107-b2d8-5e8da0b205a8",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "547efd1a-1772-40ea-9988-6af119998d76",
"IsOutput" : "false",
"name" : "Name",
"type" : "System.String",
"constraint" : {
"types" : [
"System.String"
]
},
"defaultValue" : {
"$value" : "My Action",
"$type" : "System.String"
},
"visibility" : [
"Name",
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "870f770e-8fcb-44b5-8694-4ee2b3a1fdec",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "547efd1a-1772-40ea-9988-6af119998d76",
"IsOutput" : "true",
"name" : "",
"type" : "JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"JSONStorableStringChooser, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "GetParam",
"compactName" : "",
"position" : {
"x" : "-412.4375",
"y" : "372.5039"
},
"$type" : "perfectbloo.Blooprints.Nodes.Storables.PBNodeStorablesGetParam"
},
{
"Guid" : "cb7e4749-7e63-4dbe-8d84-2d5717f0d26f",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
],
"outDataPins" : [
{
"Guid" : "015acf0f-68ab-4477-bbe8-3f0556d27066",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "cb7e4749-7e63-4dbe-8d84-2d5717f0d26f",
"IsOutput" : "true",
"name" : "Value",
"type" : "MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null",
"constraint" : {
"types" : [
"MVRScript, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"
]
},
"visibility" : [
"Pin",
"Default"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "Self",
"compactName" : "Self",
"position" : {
"x" : "-582.2266",
"y" : "317.9258"
},
"$type" : "perfectbloo.Blooprints.Nodes.Blooprint.PBNodeBlooprintSelf"
},
{
"Guid" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
{
"Guid" : "0042ed64-f66a-4f87-b628-369039b67b06",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
"IsOutput" : "false",
"name" : "Exec",
"constraint" : {
"types" : [
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPin"
}
],
"outExecPins" : [
{
"Guid" : "3335db97-99d1-495b-b005-ab858687a9df",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
"IsOutput" : "true",
"Min" : "0",
"Max" : "2147483647",
"name" : "Then",
"isLocked" : "true",
"autoIndex" : "false",
"constraint" : {
"types" : [
"System.Boolean"
]
},
"type" : "System.Boolean",
"visibility" : [
"Pin",
"Name"
],
"pins" : [
{
"Guid" : "42a90693-55c8-491b-9b39-916ff517b872",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
"IsOutput" : "true",
"name" : "True",
"type" : "System.Boolean",
"constraint" : {
"types" : [
"System.Boolean"
]
},
"defaultValue" : {
"$value" : "true",
"$type" : "System.Boolean"
},
"visibility" : [
"Pin",
"Name"
],
"isAsync" : "false"
},
{
"Guid" : "65b54d8d-7fc0-4f8f-aed4-99c53e779b92",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
"IsOutput" : "true",
"name" : "False",
"type" : "System.Boolean",
"constraint" : {
"types" : [
"System.Boolean"
]
},
"defaultValue" : {
"$value" : "false",
"$type" : "System.Boolean"
},
"visibility" : [
"Pin",
"Name"
],
"isAsync" : "false"
}
],
"isAsync" : "false",
"$type" : "perfectbloo.Blooprints.Graphs.ExecPinGroup"
}
],
"inDataPins" : [
{
"Guid" : "9c0568fd-9874-49bd-b562-71eb270eae0b",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "4be8a9f7-2392-4f38-be38-d9811eb60cec",
"IsOutput" : "false",
"name" : "Condition",
"type" : "System.Boolean",
"constraint" : {
"types" : [
"System.Boolean"
]
},
"defaultValue" : {
"$value" : "false",
"$type" : "System.Boolean"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
],
"displayName" : "If",
"compactName" : "",
"position" : {
"x" : "47.58594",
"y" : "-53.94531"
},
"$type" : "perfectbloo.Blooprints.Nodes.Flow.PBNodeFlowIf"
},
{
"Guid" : "195658a3-8646-4e9f-94e9-496336f39429",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"inExecPins" : [
],
"outExecPins" : [
],
"inDataPins" : [
{
"Guid" : "625f8079-d2fa-4e36-8ef2-8f745fb5f304",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "195658a3-8646-4e9f-94e9-496336f39429",
"IsOutput" : "false",
"name" : "Value",
"type" : "System.Object",
"constraint" : {
"types" : [
"System.Object"
]
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"outDataPins" : [
{
"Guid" : "b86af7e5-9bce-485e-9f70-25a09467791b",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Node" : "195658a3-8646-4e9f-94e9-496336f39429",
"IsOutput" : "true",
"name" : "",
"type" : "System.Boolean",
"constraint" : {
"types" : [
"System.Boolean"
]
},
"defaultValue" : {
"$value" : "false",
"$type" : "System.Boolean"
},
"visibility" : [
"Pin",
"Name",
"Default",
"All"
],
"$type" : "perfectbloo.Blooprints.Graphs.DataPin"
}
],
"displayName" : "IsNotNull",
"compactName" : "",
"position" : {
"x" : "-232.4219",
"y" : "-298.0234"
},
"$type" : "perfectbloo.Blooprints.Nodes.Compare.PBNodeCompareIsNotNull"
}
],
"links" : [
{
"Guid" : "a246ef4e-e88e-42f9-8a72-b07dab9cc8e0",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Output" : "015acf0f-68ab-4477-bbe8-3f0556d27066",
"Input" : "17ea975d-ef80-434f-8625-7316dcad8574"
},
{
"Guid" : "4e6477a2-a813-45e8-aa06-5f4a9b1469fd",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Output" : "19258f20-753a-4cc7-9d9e-9982336dacf7",
"Input" : "6b648089-07d7-4e5c-967c-8c75cb21f618"
},
{
"Guid" : "37eac14a-87a9-4f77-9b5c-960572a99d2a",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Output" : "870f770e-8fcb-44b5-8694-4ee2b3a1fdec",
"Input" : "1e8d709c-8b28-4581-b5f7-908d35c2546a"
},
{
"Guid" : "de81aec5-9afd-4ad8-8f1c-9d730156281f",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Output" : "28f4e9fd-815f-4aa3-bb5b-a5b6f93e9900",
"Input" : "0042ed64-f66a-4f87-b628-369039b67b06"
},
{
"Guid" : "c4691c6a-1130-4497-88df-e50fbbf45903",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Output" : "db56bcfa-8a89-4d01-826f-eb3a68e1aa67",
"Input" : "bc13401a-d531-49d6-a803-acc501690cca"
},
{
"Guid" : "199c7a68-80c9-4f72-baba-454a00d51f4d",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Output" : "f6ef9b31-4996-468a-8c67-8683a158e65f",
"Input" : "09f27f87-b443-4073-8d32-1370ffac3cb2"
},
{
"Guid" : "aaced027-cc44-49bc-86eb-cfa4068d84e9",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Output" : "a4b046c6-9bb0-4aa2-a9f9-fc3c7b7d01e5",
"Input" : "82ad7dcb-a12b-483b-93ed-263993ef8b2a"
},
{
"Guid" : "f96c1ef9-2e83-4852-bd6f-a713a1abb5e3",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Output" : "db56bcfa-8a89-4d01-826f-eb3a68e1aa67",
"Input" : "625f8079-d2fa-4e36-8ef2-8f745fb5f304"
},
{
"Guid" : "607d0673-cb70-435c-8593-8731d55121a6",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Output" : "b86af7e5-9bce-485e-9f70-25a09467791b",
"Input" : "9c0568fd-9874-49bd-b562-71eb270eae0b"
},
{
"Guid" : "7682a592-d67d-4fb1-8f15-0557a617aca6",
"Graph" : "4a73f179-1f04-4720-9ebb-291850453e26",
"Output" : "42a90693-55c8-491b-9b39-916ff517b872",
"Input" : "93034606-38b4-4080-be91-65120ba31a63"
}
],
"redirectors" : [
]
}
}
Ah, I was so close. So I did all the same except the Callback type, I made it "Action" instead of "StringChooser", so it was throwing errors. Thank you for quick responseBelow is a Blooprint that should work for what you're trying to do. We use "GetParam" with "SetCallback" to listen to changes of the dropdown. In the callback we use "GetParamValue" to get the selected action param (e.g. "Play Segment 1"), and "GetValue" to get the params action we can call using the "Call" node.