Hello! Thank you for this wonderfully flexible system! I’m doing my best to learn how to use it properly at the moment via your excellent documentation at PuzzleKit · Button Prototyping Kit
I am finding it a little advanced for my Blueprint skills right now though, so I wondered if you could advise me a little.
Using Button Prototype Kit, how would you recommend implementing the following:
A simple dynamic light that listens to one or more buttons to enable / disable the light actor
A modified animation behavior that scales an object rather than moving it or rotating it
Correctly access the current state from within a child BP (eg, in order to add additional graph functions into one particular actor that is a child or grandchild of the prototype BP)
I think current my solutions are probably very poorly implemented (hacky) and don’t make proper use of the clever design on the prototype button.
I am now doing a video tutorial on this (thank you for the idea) and hopefully, it will be up the following days.
This is something I did not think about, but, is definitely possible. You can tackle it in multiple ways:
the quickest way will be to directly modify the [FONT=courier new]BP_PK_ButtonPrototype, specifically the MoveLerp function (that is called on the AnimateHandle event).
another way is to actually subscribe to the state change event, and change the scale as desired. Maybe the new light switch example will help, or, maybe a look at the [FONT=courier new]Blueprints/Presets/Display/BP_PK_DisplayBase.
If you created a child blueprint class, you already have access to [FONT=courier new]PK_HandleOwnStateChanged and [FONT=courier new]PK_HandleOwnChangeFailure events. I believe that is the place you should add your logic.
If you need more information, please reach me at the support email address, with the exact flow you want to implement, and all the problems you may have, and I will answer, in detail, as soon as possible.
This is wonderful! Thank you so much for your efforts! Your light example makes everything a lot clearer to me! I’ll experiment with the scale animation too. I’m not sure where to find the support email address, can you please point me in the right direction?
If you insepct the **PKFirstPersonCharacter **from the Demo folder, you can see how the functionality from the demo level is done. That also takes into account mutiplayer support.
If you do not need multiplayer support, you could do, in your character, something like in the attached image.
Let me know if I was clear enough, or if you need more information.
The *ObserveReactComponent *was ment to have everything it needs on begin play, so the event binding is done on BeginPlay. If you add something afterwards, it will not work. This is becase, depending on the selected aggregation method (*Passthrough, Aggregate *or *AddTobuffer), *more calculation is done on Begin Play based on the number and the state values of the actors from the ListenTo array.
But, assuming you want to have A reacting to B state changes: instead of adding B to the Listen To Array of Button A, maybe you can add A to the *Send Actions To *array of button B. Let me know if this works.
If the above solution does not work, It would be great if you could send me an email with your setup, and tell me exactly what you want to achieve. I could, then, provide more guidance, or, if possible, I could include something in the next asset release that might help with your game.
Do you have a list of the orientation of the pipes, great addition but no idea what way round they go for each of the shapes, what is LeftUp or DownLeft etc etc LOL
Yes, I aggree the naming of the pipes can be a bit confusng. What I did, I gave each possible state for the pipe, the short name for each one of the directions is has connections with. (Lt - has left connection, Rt - has right connection, Up - has up connection, Dn-has doen connection.) I also read the connections clockwise.
To see this, you can go on each pipe, and inspect the IterativeStateComponent States array, and have a list of all possible states (positions) for that pipe.
the** L** segment, in this position is UpRt, as it can connect with up and right. If you would rotate it by 90 it will have connections to right and down, thus DnRt.
a I segment, in this position will be UpDn. If you wourld rotate it becomes **---- **and it will be LfRt
a + segment, is LfUpDnRt no matter hwo you rotate it, as it will have connections in all 4 directions.
If you find this confusing too, you can rename all states in the IterativeStateComponent of the pipes, and then change the Rule condition accordingly. So, state names for each pipe could be as simple as 1, 2, 3, 4… , and then have the correct succession in the Rues array.
I hope this answers your question.
Please let me know If ther is anything else I can help you with.
I do not think this you can do this with this asset alone. But, I am sure you can combine it with other assets (that maybe have that browser email/notes functionality) to achieve the desired result.
In the demo, I can not open the lockbox without entering a code. How do you add protection against clicks on the lockbox itself? So I have to enter code and the lock box will open.
I try to create a similar scene here without success. Copied the same settings but lockbox can be clicked and opened without me having to enter code. The lockbox opens with the correct code otherwise but I want to prevent being able to click on the lockbox to open. Do not want anyone to cheat =)
The only thing I do not succeed with is the lock function. How can you prevent someone from clicking? I want to lock the lockbox completely so you can only use buttons etc.
Not just lockbox. I want to be able to lock the Barrier so you can not click on it. Just use the button to open it.
Very good asset! It makes it very easy for me. It’s just frustrated that I do not manage to solve with lock function. I can only copy and paste from Demo Lockbox and it works fine but I want to learn me to lock myself.
Thank you for reply. It solved my problem with your help.
Now I wonder if I create a blueprint actor as a spawn when I have built three items together, the BP_Final appears in the scene and in it I want a trigger box to trigger the buttons. Is there a good way to do it?
I need trigger box inside blueprint actor to trigger the buttons. I tried it but listen to can not find that trigger inside blueprint actor. It only finds what is in the project and not inside the blueprint actor.
Hi,
So, the ListenTo array from ObserveReact is per Actor Instance. That is so you can have one actor blueprint, and multiple actor blueprint instances in your map, and each actor instance listens/reacts to a different list of actors.
Of course, you can manually add items to this array in your blueprint. There are several examples in the Demo Map, where I added items to ListenTo Array. Please take a look at these puzzles:
but, from what I understand from your post, you just want to trigger a button.
So what you could do, is simply call PK_DoAction(NextState) on that button, from your trigger. You can inspect how this Collision Action Triggers are programmed in blueprints.