We got a Ferris wheel working halfway decently with script rotation. http://xboxdvr.com/gamer/Yusgoda Beegbut/video/14476679 Later on we set a time delay for it to go fast so it could be boarded first: http://xboxdvr.com/gamer/Yusgoda Beegbut/video/14477314 http://xboxdvr.com/gamer/Yusgoda Beegbut/video/14477332 Things that help rotation work: Use a single circular object as a crank. No groups or welds. This object is the only one that should have the rotation scripted. We only tested with it set to phased so far. Use a circular object that has its base point and center of mass on the same axis and only rotate that one axis. In our example, we used a cylinder primitive that had its base point at the bottom center and the center of mass directly above it in the middle and we rotated around tha z axis (the pitch?). I figured we should do this just in case some problems might be caused by differences between the base and center mass points or by the crank mass not being balanced. But that's just speculation. Add a second copy of the script with the rotation Action if you want continuous rotation. This seems to help when a single script won't start again immediately after the rotation time ends. Short rotation script times seem to cause much less of the sudden stops and jerky motion. We used 0.5 seconds. Eventually you just want a welded group of objects set to normal physics that will rotate around the single crank object. Include some objects tightly wrapped around the crank so it can turn them. It seems to go smoother if the crank is round so that the normal object can slip some when the crank jerks around. 8 plates snapped all around a cylinder worked well. (Any object we tried to rotate seems to have those start and stop jerks during rotation. Could that somehow be from laggy position updates since it's server hosted?) Hopefully this helps rotation at least become usable, if not greatly reliable. I can post the exact script details of if someone needs them. Not exactly sure how to share maps in Halo, but this map is the latest numbered "FW" map under our Yusgoda Beegbut account. Edit: added the item about the base and mass center points.
Rotation is hard to do right. I tried making a minigame based around rotating objects but the map was very glitchy.
Cool... Thanks for sharing. Took your idea and added a position/rotation reset at the same interval it seems to help even more. (GT Neo Hybodus / map: Windmill) The real issue seems to be that the rotating object looses "center". If positioned at a 90 angle, once rotation starts, the angle varies from 89.x to 90.x The engine seems to tolerate this, but occasionally it passes more than 1 full degree away from that and there is where it starts to glitch by trying to truly change the position of the welded objects by jumping off center. This is easily visible of you change the welded objects to fixed instead of normal. Anyway, my windmill is working 99% correct! I feel we could probably eliminate the problem by resetting every quarter turn or more.
The welded object (my windmill) needs to be perfectly aligned before saving. I restarted forge and it is not exactly where it should be, so it is "fracturing" the weld. I'll try again... --edit-- Ok, updated my windmill map. Two windmills are on there, one operates perfectly (tested for a full 12 min match), the other one has stalling and slipping issues. --edit 2-- I can now consistently make 99% smoothly rotating items. These can break if i adjust them when editing the map, but the fix is "easy". I will create a vid on how to create and fix them. --edit 3-- Ok, after two hours of playing around, 99% perfect after spinning "starts up". Check out my maps Juicer and Windmill for examples.
Yeah, I'm still not sure that using a single object is reliable enough. And the whole rotation system might need to be overhauled so efforts to use the current system have a potential to be wasted. Still, give it another shot if it's not time consuming! Ah right, good call! The first solution that sort of worked for me was using the position reset with velocity reset turned Off so it could keep rotating. Resetting to the spawn location really seems to help script movement and rotation. I'll try to check out your progress if I can learn how to load maps using someone's gamer tag, lol I'm a slacker.
I'm maKing a vid, will mention your gamer tag and this post when I do a voiceover. It is not perfect, but may be good enough for those tired of waiting for a fix. It's a band-aid that helps.
I forgot to mention that we also used another cylinder as a gear, basically. We used a large cylinder as the center (and parent) of the Ferris wheel and had that sit on one or two small crank cylinders that turned it. If using two, it's better to have them both rotate and not fight each other. It was nice to have be able to use gear ratios. That would also work better with using the Position/Rotation reset Action, especially if the first script rotates it 180 and the second script has the reset. Some added notes: A quick test showed that making a small pipe on the outside of the circle the wheel's parent didn't seem to make any difference. But I still think there's a chance that using a heavier, centered object as parent might make it more stable. Higher rotation amounts combined with lower times seemed to perform the smoothest. We used the Multi Condition and master Power Channels (Alpha) to turn the rotation on or off. We used another Power Channel's toggle (Bravo) to trigger the timing (avoid using messages in Multi Conditions for now... use Power:Toggle instead): OnMulti:Minimum=2 (OnPower:Alpha:On) (OnPower:Bravo:Toggle) {Rotation: Pitch=5:Time=0.5} Pig object used as 5 second timer [Despawn:Time=5] (OnDestroyed) {PowerSet:Bravo:Toggle}
Wth is up with scripting?! I'm trying to have a circular platform rise up out of the water on alpine 70.00 units while rotating 180 degrees over a period of 6 seconds. I want it to do this every 2 min with a delay of 2 min at the start. So I set it up & once the initial 2 minutes is up the platform just goes full tard & rolls around like it has normal physics or something. Anyone help?
Can you script respawn instead? I doubt you will get rotation and verticals movement happening consistently. One thing =good. Two things = wth
Ugh, I wish my brain fog would cut me a break for a bit so I could test this stuff. We need to test out some things: Can more than one movement/rotation script work at the same time for one object? Can Normal Physics objects rotate while undergoing other movement? i.e. can we put some giant turret on a big, moving vehicle? How about a Normal Physics crank shaft that cranks our custom vehicle's wheels? Can we have a Phased crank object and a Phased lifter object work on a Normal cylinder at the same time to produce the effect Zombievillan is going for? (Note: the vertical "friction" caused by the cylinder moving up might fight against the rotation crank object since the crank would only have horizontal motion... the crank might need to be set to an angle. Lots of testing needed, I think. I have no idea if "friction" is the right idea.) Neo, are you still working on the video? Can you add a voice over (& maybe some text) describing the critical elements of reliable rotation? Do you have a YouTube account set up for this? We have some video editing software (Corel X8) so we can help if you want us to add stuff like text or graphics. Let me or Yusgoda know.
Hey, good to hear from you. Yeah, got slammed at work and had to do some real welding all weekend for the local high school band. First time mig welding aluminum, melted through a bunch of material before I got it right. Anyway, I'll try to do a voiceover tomorrow night, but really (like you said in the previous post) it's not going to be the whole story. There are a lot of things to still test out. This weekend I did find some time to try some various rotation and speed intervals. Basically vertical oriented rotation sucks the slower you go, no matter what you do. Things I have learned: The cylinder primitives have little notch things on top. Do not allow that part of the crank to touch any part of the rest of the rotating body as it causes collisions (don't let the crank and the bushing be the same length). Surface friction matters. I had been using a 128x128 block for vertical testing. If I use a slightly larger diameter cylinder as the base, there is less friction to the bushing and movement is more consistent. The physics engine is really good and seems to want to maintain angular momentum. I really wish they would fix this in the next update. As for zombie villain, I mentioned the same approach. Not really expecting moving the base and/or the crank while rotating to work well, but have not tested it. On a side note, check out my turbine map and see what I am working on. Pay attention to the circular pad that floats around slightly (and a little randomly).
See I wasn't fully aware of the set backs in the scripts. I figured you could have a flat cylinder set to phased & have it rotate & rise. I didn't know there had to be bushings & crank shafts.
lol. Yeah. Let me know when someone makes a working engine and transmission! Maybe in the meantime we should request some gear and tinker toy objects be added. Job ad: 17 mechanical engineer positions needed to be filled immediately at well-known software company.
It looks like an object can be rotated and moved by scripts at the same time. Notes at the bottom. Zombie, not sure if having a Normal Physics platform rise up is what you're looking for since it can't start out under the water, but here was a "quick" stab at it: http://xboxdvr.com/gamer/Yumudas Beegbut/video/14626761 There's one rotating & rising cylinder set to Phased Physics and two Normal Physics welded objects built sandwiched around it. Kind of a pain. I'm not even sure how many objects can be welded together. Locking them all together without them flying apart when set to Normal is a challenge. I need to see how far down I can get those objects to go before the water (or land underneath?) makes them freak out. NOTES One rotation and one movement script can be active at the same time If more scripts activate at the same time, only the 1st rotation and 1st movement scripts work If another script activates later while a movement/rotation script is running, that one takes over and the 1st script is ignored while the new one runs (which is likely why using a second copy of a rotation script works) If the 1st script is still running when the 2nd/interrupting script ends, it takes back over again (at least the Position Reset script I tested did)
That's pretty sweet. How did you get the movement so smooth? As of last night I have the platform rising & lowering without spinning. It's a little jumpy & I didn't weld the platform because apparently welding them makes them have normal physics & it falls over & rolls around underwater. http://xboxdvr.com/gamer/zombievillan/video/14629394 http://xboxdvr.com/gamer/zombievillan/video/14629503 As the product of not welding, you can see more in the 2nd video that seperate pieces get a little more jumpy than others but sometimes the whole thing goes up & down smooth without any jumps or hiccups. Inconsistency is killing me.
I have one scripting brain. Sends message on timer with a 13 second initial delay then it "sends message" every 2 minutes on alpha channel. Then I have bravo set with something like a 33 second initial delay that then sends another message every 2 minutes. I just scripted each individual piece to move up 60 units for 15 seconds when receiving alpha channel signal then lower 60 units for 15 seconds when receiving bravo channels message. This lets the platform raise up with alpha channel right after the intro scenes, stay for the 5 seconds then lower back down with bravo channel. Happens every 2 minutes with a damage boost on top.
If you want, copy my ROTATION 010 file (it's bookmarked) on the Yumudas Beegbut account. Some things are working, but most is test stuff. Basically, rotation just seems to work better for a single Phased object with at least two rotation (or reset) scripts that run for short times. In the rising platform example, I used: a Timer that fires every 0.5 seconds and Toggles a Power Channel (juliet), can cause a delay of up to 0.5 seconds a Power Channel that functions as a master on/off switch (india) a "Timer" Pig that Respawns after 6 seconds and then switches the Power (india) back off 2 copies of a movement script that moves Z up by 6.0 for 0.5 seconds 2 copies of a rotation script that rotates the first axis by 15.0 every 0.5 seconds I think those scripts use a Condition of (OnMulti:Minimum=2 (OnPower:india:On) (OnPower:juliet:Toggle)) I'll type up the exact configuration later today, I hope.