I've been learning about UE4 on my free time to see how the software works. It's pretty fun stuff. I've made a little horror game for education and practice and since halloween is coming up :p
From what I've learned so far, the operators are really versatile. I haven't figured out the ideal way to get a psiwheel environment setup yet but I've learned a good bit about and/or operators and random integer floats that we may be able to apply to the psiwheel's movement.
I'm concerned with how UE4's code handles the RNG. I don't think it's true random. Even if I seed it, I'm not sure pk would be able to alter it since it's still a predefined rng.
But we'll see what we can do. I read something about possibly being able to edit the code for the rng into a different true rng code. Still have a ways to go before we need to cross that bridge though.
Awesome man! It really doesn't matter if it's true random or not. We're still going to be manipulating it's machine coded data when we do this. I agree with what Maruthaja said but that's probably going to be when we're at a more advanced level. I bet you would be able to do it just fine Owl. ;P
__________________
It's all fun and games until you lose an eye; then it's all fun and games in the dark.
I'm still trying to figure out what the best setup would be for making the psiwheel spin. I've been pondering it while I was at work today and a new thought just hit me.
I might be able to make an array modifier with all of the various sequences (a brief video of the psiwheel told to spin 45 degrees at a time) and have each one of those videos - oh man a new idea just came that'd be even better.
so if i went with the previous idea it would have been to - wait before i forget lemme type the new one.
so if i program the blueprints so that essentially there is a 1 in 10 chance for instance, that the psiwheel will move, and from that 1 in 10 chance, a chance for it to move in a random number of degrees from its current position between +-45 degrees to +-360 degrees, then after the animaion, told to draw another chance and continue drawing each second until it moves.
I know of a few inputs that exist that I can probably setup to make this work, though it's going to be a bit of a challenge debugging it to make it work. But once that outline is set I think that will probably be the most natural way. Rather than going based off of our initial ideas on having wind etc.
Or better yet, just +-45 degrees only and to keep it spinning consistently you'd have to keep causing the 1 in 10 chance outcome to continue occurring. The initial idea for 45-360 degree is from the real world application where some pk forces on the psiwheel are stronger than others, but since I'm not using a force to generate the spins and it's just aiming to keep it consistently spinning in one direction or another, or target practice for making one side face and then maintaining a stasis on it, just 45 degree turns at a time sounds better I think. Thoughts?
Need to figure out how delta seconds function exactly. The issue lies in figuring out how to get the event tick to trigger once per second and send a rotation if conditions are met.
Current blueprint if anyone wants to help. I can also upload the project and level if anyone's interested.
Looking good man. I'm confused by your blueprint with the way you have some of the functions laid out. Wouldn't it be better to have two functions that turn it either +45 or -45 and then use a variable to switch between the two? That way you'd have to maintain direction. Also controlling speed of turn would be good. A fun function to throw in there would be to have it flip off the needle and fall onto the table if you get the variables to hit a certain value for long enough. :P
__________________
It's all fun and games until you lose an eye; then it's all fun and games in the dark.
Essentially the branch function does just that. It lets you switch between two events depending on a condition being met.
So in basic english, here's how it's set up: (not including how the event tick is processing with delta seconds being multiplied by the number of degrees to rotate per second as was instructed on several different guides i found)
Event tick ( constantly checks for next command ) is checking if the random number generator's input from 1-10 is equal to 1. If it is, then move onto next command. Next command is to play the change in the psiwheels rotation which is given conditions to rotate on its Z axis by 45 degrees with references to its current location. Everything on the upper section is essentially a duplicate with -45 degrees instead, and I unplugged it for debugging because when it was plugged in it was causing a very sporadic spazzing reaction. So I figured it'd be best to debug getting one side working properly then get the opposite replicated and plugged in.
I guess I've become too used to writing code. The blueprint looks fairly difficult to read.
To me it seems as if there's currently the possibility that both SetActorRotation calls are active simultaneously (two random integers, two branches, two rotations). Perhaps it's possible to somehow just ::pseudocode:: angular_rate = 0; x = random(1, 10); if (x >= 8) {angular_rate = 45;} else if (x <= 3) {angular_rate = -45;} actor.rotate(0, 0, angular_rate * deltaSeconds);
This way there should be a 30% chance for spinning either way, and 40% probability for standing still.
-- Edited by Sussch on Friday 14th of October 2016 08:13:29 PM
__________________
The unreal hath no being; there is no non-being of the Real; ~Krishna
A stable-minded person will neither hug nor hate the world, he will take things as they come.
I changed the angular rate to 90 for the sake of the brief gif duration limit, but it works pretty nice. I'm going to tidy it up a bit and make it presentable and export it for demo testing.
Update: As I mentioned earlier, although it's using rng, it's not seeded so i've noticed it's repeating the same pattern of drawing the same random number outcomes and thus, the psiwheel is spinning the same way initially. I'm still learning how to seed it based on time/date or another method.
-- Edited by Tranceffect257 on Sunday 16th of October 2016 04:37:18 AM
What are the rules to get a rotation ? Is it all about random effects produced by observers ? In this case what source of random do you use ? Is it a GNA ?
I think your work is interesting, but qs technician I would like to understand how it works. Could you please explain it to me in details ?
Thanks
Regards
David
Welcome to the forum. Currently, The Psiwheel Room project is an expirement to create an ideal digital environment with a focal object (this case a psiwheel) whose RNG based rotation can be influenced via TK.
We're still working on getting a more authentic RNG system in place as right now it's pulling from Unreal Engine 4's innate Rand code in C++.
I haven't programmed any C++ code as the blueprint feature of UE4 make the setup easier, though it could be done through coding instead within the software.
What is the aim of LAPDC if you don't mind me asking?
As fellow researchers, we welcome any input or ideas you have to contribute to the community for this project or TK in general.