В этой статье Дмитрий делится методикой создания головоломки с большими кольцами, которые нужно вращать, чтобы поэтапно получать доступ к чему-нибудь.
Попробуем создать головоломку с таким поворотным кольцом-колесом (как в практикуме по Риктусемпре):
Для начала нужен Elevator Mover нужной формы, в виде кольца, как здесь, или диска либо переключателя со стрелкой, как в библиотеке.
Делаем кольцо нужного размера, делаем на нём метки с нужными текстурами, берём кисть, которая полностью, по всем измерениям перекрывает кольцо, жмём кнопку Intersect.
Кисть принимает форму кольца с вырезами. Делаем на её основе Elevator mover. Задаём для него четыре положения.
Чтобы mover двигался по всем четырём точкам, открываем его свойства — mover — numKeys и ставим в этой строке число положений мувера, в данном случае — 4.
Далее переходим в свойство — ElevatorMover — bGoStraight и ставим там true.
Далее ставим на нужном месте SpellTrigger. В его свойстве TriggerOnceOnly обязательно должно стоять False. К нему надо подключить RoundRobin, он в ветке триггеров. В его свойствах — RoundRobin — bLoop ставим true.
Далее разворачиваем подветку outEvents и пишем в четырёх первых строках названия положений elevator mover’а, например: Ring1Key1; Ring1Key2; Ring1Key3; Ring1Key0 (из третьей точки mover должен перемещаться в нулевую).
Далее размещаем ElevatorTrigger (так же в ветке триггеров), четыре штуки, и подсоединяем их всех Event-oм к Tag-y mover’а. В Tag-ах элеватор триггеров вписываем то, что писали в outEvents RoundRobin’a.
Потом переходим в ветку ElevatorTrigger — GotoKeyframe и вписываем в каждом элеватор триггере номер точки, в которую должен переместиться mover. Эти номера должны соответствовать тому, что написано в Tag‘е этого триггера. И раунд робин и элеватор триггеры следует размещать вне досягаемости Гарри, иначе он может случайно активировать их.
Если всё сделали правильно, то кольцо должно поворачиваться при применении заклинания к спелтриггеру, и из третьего положения обратным ходом, без остановок переходить в нулевое.
Делаем нужное количество таких систем, например три. Необходимо учесть, что outEvents у RoundRobin‘ов и Tag у подсоединённых к ним элеватор триггеров для каждого кольца должны быть разные (например для первого — Ring1Key1; Ring1Key2; Ring1Key3; Ring1Key0, для второго — Ring2Key1; Ring2Key2; Ring2Key3; Ring2Key0, и так далее).
Далее делаем так, чтобы весь этот механизм открывал двери, когда кольца находятся в правильном положении.
Ставим двери, подключаем их к обычным триггерам. Далее размещаем PuzzleTrigger, путь — Triggers — Trigger — KTrigger — PuzzleTrigger. Подключаем их к триггерам дверей. Если подсоединить PuzzleTrigger напрямую к муверу, ничего работать не будет. Переходим в его свойства Puzzle. Там три строки. Во вторую, где написано PuzzleName вписываем что-нибудь, например, Rings1, тоже самое надо записать в свойствах колец — ElevatorMover — PuzzleName. Разворачиваем первую и третью строки свойства Puzzle. В третьей ветке (Tags) вписываем в первых трёх строках Tag‘и колец (например Ring1, Ring2, Ring3). В первой вписываем номера положения колец, в которых эта конкретная дверь должна открываться (например 1, 2, 3).
Если всё сделать правильно, то когда первое кольцо находится в первом положении, второе — во втором, а третье — в третьем, эта дверь будет открыта. Как только хотя бы одно кольцо сместится, дверь закроется. Делаем таким же образом остальные двери.
Если нужно, чтобы такая головоломка активировала не простой мувер, а ещё один элеватор мувер (например, вращающуюся комнату), всё равно придётся помимо раунд робина, управляющего таким вторичным элеватор мувером, подключить к паре пазлТриггер — триггер мувер, иначе ничего не сработает. Можно сделать небольшой мувер в виде кубика, находящийся где-нибудь под полом или за стеной, где его не будет видно.
Надеюсь, объяснил понятно. Удачи вам в модостроении!
Автор: Дмитрий «Лимон» / OLDГеймер