2.8 Создание пользовательских скриптов в MEL. Использование матем функций для позиционирования перил
2.8 Создание пользовательских скриптов в MEL. Использование математических функций для позиционирования перил. Курс "Создание скриптов MEL" *Lynda: Online Courses, Classes, Training, Tutorials*: https://www.lynda.com/ В предыдущем уроке мы создали перила для нашей лестницы. Мы определили правильную длину, а также правильный угол. Теперь нам необходимо правильно разместить их. Итак, посмотрим, как это можно правильно сделать. Наша задача состоит в том, чтобы правильно расположить перила. Сейчас они расположены неверно. Что из себя представляет перекладина перил? Это всего лишь цилиндр. Когда вы создаете цилиндр, вы должны иметь в виду, что у него имеется пивот, иными словами центр цилиндра. Он расположена вот здесь. Мы будем перемещать его, используя эту точку. И для того, чтобы переместить нашу перекладину в правильное положение, мы должны передвинуть пивот фактически на половину этого расстояния, потому что эта точка находится ровно посередине между двумя концами перил. Чтобы узнать это расстояние мы можем использовать значения половины высоты и половины глубины. И кроме того мы должны переместить перила вверх на какую-то одинаковую длину - константу, потому что наши перила будут иметь балясины, которые поддерживают их. То есть эта константа фактически будет определять высоту перил. Так что нам нужно создать еще одну переменную, назовем её RailH (высота перил). Откроем Maya и посмотрим, как это делается. Мы можем загрузить скрипт, который называется 02_08. Добавим в него некоторые переменные. В этом случае мы разместим их начале скрипта. Определим переменную как Float. Дадим ей название railH (высота перекладины). Установим для неё любое произвольное значение, например, 12. Мы можем поменять эту цифру в любое время. Мы можем использовать её при определении правильного положения перил, после того, как окончательно создадим их. Посмотрим ниже, здесь мы создавали цилиндр (PolyCylinder). Он уже развернут под верным углом, теперь нам необходимо переместить его. Используем для этого команду Move -r. Помните про уравнение половина высоты лестницы плюс высота перил. По оси X нам нужно переместить наш цилиндр на половину ширины ступени. Пишем, $stepW / 2. Теперь мы должны поместить его в круглые скобки, чтобы получилось так ($stepW / 2). По оси Y мы переместим его сперва на половину общей высоты лестницы. $TotH / 2 + добавим еще смещение, которое будет равно $railH. Убедитесь в том, что печатаете в нужном месте. Итак, мы перемещаем цилиндр на половину ширины ступени, потому что сейчас он расположен посередине ступени, и нам нужно сдвинуть его только на половину. Затем мы переместились на (totH / 2 + $railH). Далее пишем move ($ totD / 2). После ставим точку с запятой. Теперь все должно оказаться на своих местах, хотя, как вы увидите, у нас получится не совсем то, что нужно. Выделяем скрипт и выполняем его. Итак, мы получили очень близкий к желаемому результат. Однако если вы посмотрите в ортографической проекции вид сбоку, то увидите, что перила выравниваются по нулю на оси Y, и это в принципе хорошо. Но проблема заключается в том, что когда мы создавали ступени, то первая ступень разместилась на половину вперед относительно этого нуля. Поэтому перила нам тоже надо переместить на пол-ступени вперед и на пол-ступени вниз, чтобы они соответствовала началу лестницы. Вернемся к окну вида в перспективе. Выделяем объект и удаляем его. Добавим еще одну небольшую поправку в наш скрипт. Приведем уравнение к следующему виду: ($totH/2 + railH - 0.5*$stepH). Тем самым мы сможем передвинуть перекладину перил на пол-ступени вниз. Нам не нужно помещать это в круглые скобки. Итак, минус ноль целых пять десятых умножить на $stepH. То же самое мы сделаем с другой частью уравнения. Итак, последняя часть уравнения выглядит следующим образом: ($totD/2 - 0.5*$stepD). Убедитесь, что вы поставили знак доллара перед ним. Теперь можем посмотреть, что у нас в итоге получилось. Это уравнение позволит нам немного сдвинуть перила. Итак, мы выделяем весь скрипт и выполним его. Теперь начало перекладины перил соответствует началу нижней ступени лестницы. Если мы посмотрим с другого ракурса, мы увидим, что они идут вровень друг с другом. Как вы видите, процесс создания лестницы достаточно прост, если вы знаете базовые математические действия и можете применять их в редакторе MEL.
2.8 Создание пользовательских скриптов в MEL. Использование математических функций для позиционирования перил. Курс "Создание скриптов MEL" *Lynda: Online Courses, Classes, Training, Tutorials*: https://www.lynda.com/ В предыдущем уроке мы создали перила для нашей лестницы. Мы определили правильную длину, а также правильный угол. Теперь нам необходимо правильно разместить их. Итак, посмотрим, как это можно правильно сделать. Наша задача состоит в том, чтобы правильно расположить перила. Сейчас они расположены неверно. Что из себя представляет перекладина перил? Это всего лишь цилиндр. Когда вы создаете цилиндр, вы должны иметь в виду, что у него имеется пивот, иными словами центр цилиндра. Он расположена вот здесь. Мы будем перемещать его, используя эту точку. И для того, чтобы переместить нашу перекладину в правильное положение, мы должны передвинуть пивот фактически на половину этого расстояния, потому что эта точка находится ровно посередине между двумя концами перил. Чтобы узнать это расстояние мы можем использовать значения половины высоты и половины глубины. И кроме того мы должны переместить перила вверх на какую-то одинаковую длину - константу, потому что наши перила будут иметь балясины, которые поддерживают их. То есть эта константа фактически будет определять высоту перил. Так что нам нужно создать еще одну переменную, назовем её RailH (высота перил). Откроем Maya и посмотрим, как это делается. Мы можем загрузить скрипт, который называется 02_08. Добавим в него некоторые переменные. В этом случае мы разместим их начале скрипта. Определим переменную как Float. Дадим ей название railH (высота перекладины). Установим для неё любое произвольное значение, например, 12. Мы можем поменять эту цифру в любое время. Мы можем использовать её при определении правильного положения перил, после того, как окончательно создадим их. Посмотрим ниже, здесь мы создавали цилиндр (PolyCylinder). Он уже развернут под верным углом, теперь нам необходимо переместить его. Используем для этого команду Move -r. Помните про уравнение половина высоты лестницы плюс высота перил. По оси X нам нужно переместить наш цилиндр на половину ширины ступени. Пишем, $stepW / 2. Теперь мы должны поместить его в круглые скобки, чтобы получилось так ($stepW / 2). По оси Y мы переместим его сперва на половину общей высоты лестницы. $TotH / 2 + добавим еще смещение, которое будет равно $railH. Убедитесь в том, что печатаете в нужном месте. Итак, мы перемещаем цилиндр на половину ширины ступени, потому что сейчас он расположен посередине ступени, и нам нужно сдвинуть его только на половину. Затем мы переместились на (totH / 2 + $railH). Далее пишем move ($ totD / 2). После ставим точку с запятой. Теперь все должно оказаться на своих местах, хотя, как вы увидите, у нас получится не совсем то, что нужно. Выделяем скрипт и выполняем его. Итак, мы получили очень близкий к желаемому результат. Однако если вы посмотрите в ортографической проекции вид сбоку, то увидите, что перила выравниваются по нулю на оси Y, и это в принципе хорошо. Но проблема заключается в том, что когда мы создавали ступени, то первая ступень разместилась на половину вперед относительно этого нуля. Поэтому перила нам тоже надо переместить на пол-ступени вперед и на пол-ступени вниз, чтобы они соответствовала началу лестницы. Вернемся к окну вида в перспективе. Выделяем объект и удаляем его. Добавим еще одну небольшую поправку в наш скрипт. Приведем уравнение к следующему виду: ($totH/2 + railH - 0.5*$stepH). Тем самым мы сможем передвинуть перекладину перил на пол-ступени вниз. Нам не нужно помещать это в круглые скобки. Итак, минус ноль целых пять десятых умножить на $stepH. То же самое мы сделаем с другой частью уравнения. Итак, последняя часть уравнения выглядит следующим образом: ($totD/2 - 0.5*$stepD). Убедитесь, что вы поставили знак доллара перед ним. Теперь можем посмотреть, что у нас в итоге получилось. Это уравнение позволит нам немного сдвинуть перила. Итак, мы выделяем весь скрипт и выполним его. Теперь начало перекладины перил соответствует началу нижней ступени лестницы. Если мы посмотрим с другого ракурса, мы увидим, что они идут вровень друг с другом. Как вы видите, процесс создания лестницы достаточно прост, если вы знаете базовые математические действия и можете применять их в редакторе MEL.



