Mechanisms. Rotary rings


In this article, Dmitry shares a technique for creating a puzzle with large rings that need to be rotated in order to access something step by step.

Let’s try to create a puzzle with such a rotating ring-wheel (as in the Rictusempra workshop):

To begin with, you need a Elevator Mover of the desired shape, in the form of a ring, as here, or a disk or a switch with an arrow, as in the library.

We make a ring of the right size, make labels with the right textures on it, take a brush that completely overlaps the ring in all dimensions, click the button Intersect.

The brush takes the form of a ring with cutouts. We make a Elevator mover based on it. We set four positions for it.

In order for the mover to move along all four points, open its properties – mover – numKeys and put in this line the number of positions of the mover, in this case – 4.

Next, go to the property – ElevatorMover – bGoStraight and we put there true.

Next, we put it in the right place SpellTrigger. Its TriggerOnceOnly property must have False. You need to connect to it RoundRobin, it’s in the triggers branch. In its properties – RoundRobin – bLoop set true.

Next, we expand the outEvents and write in the first four lines the names of the elevator mover’s positions, for example: Ring1Key1; Ring1Key2; Ring1Key3; Ring1Key0 (from the third point mover should move to zero).

Next, we place the ElevatorTrigger (also in the trigger branch), four pieces, and connect them all Event to the Tag of mover. In the Tag trigger elevator, we enter what we wrote in outEvents RoundRobin.

Then we go to the branch ElevatorTrigger – GotoKeyframe and enter in each elevator trigger the number of the point to which the mover should move. These numbers should correspond to what is written in the Tag of this trigger. Both Round robin and elevator triggers should be placed out of Harry’s reach, otherwise he may accidentally activate them.

If everything was done correctly, then the ring should rotate when applying the spell to the spelltrigger, and from the third position reverse, without stopping, go to zero.

We make the necessary number of such systems, for example three. It should be taken into account that outEvents have RoundRobin and Tag triggers connected to them for each ring should be different (for example, for the first: Ring1Key1; Ring1Key2; Ring1Key3; Ring1Key0, for the second: Ring2Key1; Ring2Key2; Ring2Key3; Ring2Key0 etc).

Next, we make sure that this whole mechanism opens the doors when the rings are in the correct position.

We put the doors, connect them to the usual trigger. Next, we place PuzzleTrigger, the path: Triggers – Trigger – KTrigger – PuzzleTrigger. We connect them to the door triggers. If you connect PuzzleTrigger directly to the mover, nothing will work. Go to its properties Puzzle. There are three lines. In the second, where it says PuzzleName, we enter something, for example, Rings1, the same thing should be written in the properties of the rings – ElevatorMover – PuzzleName. Expand the first and third lines of the Puzzle property. In the third branch (Tags), we enter in the first three lines Tag rings (for example Ring1, Ring2, Ring3). In the first one, we enter the position numbers of the rings in which this particular door should open (for example, 1, 2, 3).

If everything is done correctly, then when the first ring is in the first position, the second is in the second, and the third is in the third, this door will be open. As soon as at least one ring moves, the door will close. We do the rest of the doors in the same way.

If you need such a puzzle to activate not a simple mover, but another elevator mover (for example, a rotating room), you will still have to connect to a pair of puzzle Trigger – trigger mover in addition to the round robin controlling such a secondary elevator mover, otherwise nothing will work. You can make a small mover in the form of a cube, located somewhere under the floor or behind the wall, where it will not be visible.

I hope I explained it clearly. Good luck with your mod-building!

Author: Dmitry “Lemon” / OLDГеймер