Робпотік та Приклади – Workflow & Examples

Simple Drivers can be configured from the pop-over that appears when adding a new Driver. When adding multiple Drivers or for more advanced configurations, it is useful to have open the Drivers Editor.

Драйвер Трансформ – Transform Driver

Control a property with an object’s transform. In this example, the Y rotation of Object 2 will be driven by the X position of Object 1. Starting from a simple setup with two objects:

  1. Додається Драйвер для властивості Rotation Y другого об’єкта через контекстне меню або за допомогою Ctrl-D.

    ../../_images/animation_drivers_workflow-examples_transform-driver-1.png
  2. Відкривається Drivers Editor та вибирається властивість Y Euler Rotation у регіоні калів.

  3. Відкривається регіон Sidebar та вибирається вкладка Drivers.

  4. Конфігурується драйвер на Averaged Value – «Усереднене Значення» для каналу трансформи – Transform Channel першого об’єкта.

    ../../_images/animation_drivers_workflow-examples_transform-driver-2.png
  5. Поекспериментуйте з переміщенням першого об’єкта та зверніть увагу на те, як воно впливає на обертання по Y для другого об’єкта.

Скриптований Вираз - Обліт Точки – Scripted Expression - Orbit a Point

Orbit an object’s position around a point with a custom Scripted Expression. The object’s position will change when scrubbing the timeline. Using trigonometry, circular motion can be defined in 2D using the sine and cosine functions. (See Unit Circle.) In this example, the current frame is used as the variable that induces the motion. frame is a Simple Expression that corresponds to bpy.context.scene.frame_current.

../../_images/animation_drivers_workflow-examples_object-rotation.png
  1. Додається драйвер для властивості локації – Location по X.

    1. Задається «Тип Драйвера» – Driver Type як «Скриптований Вираз» – Scripted Expression.

    2. Додається вираз 0 + (sin(frame / 8) * 4), де:

      • frame/8 : номер поточного кадру анімації, поділений на 8 для уповільнення обльоту вниз.

      • (sin( )*4) : множить результат sin(frame/8) на 4 для більшого кола.

      • 0 + : використовується для керування зсуву до центральної точки обльоту.

  2. Додається драйвер для властивості локації Y Location з виразом 0 + (cos(frame / 8) * 4).

  3. Прокрутіть по часолінії, щоб бачити ефект. Поекспериментуйте зі змінними для керування розміром та центром обльоту.

Кастомна Функція - Квадратне Значення – Custom Function - Square Value

Create a custom function to get the square of a value (i.e. value2). Adding the function to the Driver Namespace allows it to be used from driver expressions. The Driver Namespace has a list of built-in functions for use in driver expressions, as well as constants such as π and e. These can be inspected via the Python Console:

>>> bpy.app.driver_namespace[' <tab>
                              acos']
                              acosh']
                              asin']
                              asinh']
                              atan']
                              ...

Для додання нової функції у Простір імен Драйверів – Driver Namespace ця функція сама повинна бути імплементована і потім додана у bpy.app.driver_namespace.

  1. Додається наступне у Редактор Тексту – Text Editor всередині Blender та натискається «Прогнати Скрипт» – Run Script.

    import bpy
    
    def square(val):
       """Returns the square of the given value"""
       return val * val
    
    # Add function to driver_namespace.
    bpy.app.driver_namespace['square'] = square
    
  2. Додається драйвер зі скриптованим виразом Scripted Expression, таким як square(frame).

  3. Спостерігається ефекти при прокрутці часолінії.

There are more custom function examples available in Blender’s Text Editor Templates ‣ Python ‣ Driver Functions. Since Simple Expressions cannot access custom functions, using them only makes sense for complex computations.

Драйвер Ключів Форм – Shape Key Drivers

Поліпшена Деформація Сіті – Improved Mesh Deformation

Виправляються проблеми перетину, що трапляються при використовуванні арматур та малювання вагомостей, особливо на суглобах. Ключі Форм можуть також використовуватися для підправляння та уточнення оснастки, наприклад, для пропонованих формацій м’язів. У цьому прикладі ключ форми використовується для поліпшення деформації на лікті рудиментарної руки.

../../_images/animation_drivers_workflow-examples_shape-key-improved-deformation.png

Зліва: Деформація скелетної сіті без корекції. Справа: Застосовано коригувальний ключ форми

Укладання – Setup
  1. Додається сіть (у цьому прикладі, циліндр з нарізами петель).

  2. Додається арматура з ланцюгом кісток.

  3. Покривається сіттю арматура за допомогою малювання вагомостей.

(Примітка: для приріднення сіті до арматури: вибирається спершу сіть, потім арматура та використовується Ctrl-P для приріднення з авто вагомостями.)

Поекспериментуйте з позуванням арматури та поспостерігайте деформацію на суглобі. Для виправляння проблем перетину або кутів, що виглядають незадовільно, ви можете пов’язати ключ форми Shape Key з позою.

Ключ Форми – Shape Key
  1. Позується арматура так, щоб ці проблеми були видимі. Переконайтеся, що покрили крайні пози, які ви хочете підтримати для оснастки.

  2. При вибраній сіті додається новий Shape Key на додаток до ключа Basis. «Властивості > вкладка Сіть > Ключі Форм» – Properties ‣ Mesh tab ‣ Shape Keys

  3. In order to author the shape key on top of the armature deformation, enable both Edit Mode Display and Cage Editing in the Armature modifier. Properties ‣ Modifiers tab ‣ Armature Modifier ‣ Header

  4. Перехід в Edit Mode та вибирається цей новий ключ форми у панелі властивостей. Наладнуються бажаним чином вершини. Вибирається ключ Basis для перемикання між оригінальною сіттю та вашими редагуваннями. (Примітка: будьте обережні застосовувати редагування лише до вашої форми, а не до оригінальної сіті чи інших наявних ключів.)

Як тільки ви задоволені тим, як деформація виглядає для проблематичної пози, вам необхідно сконфігурувати драйвер для активування форми плавно при входженні у цю позицію.

Драйвер – Driver
  1. Додається драйвер для Value ключа форми, що ви створили.

  2. Відкривається Drivers Editor та вибирається цей драйвер.

Метод 1 – Безпосереднє розкладання на значення обертання кістки

Простий спосіб конфігурувати драйвер – пряма відповідність значення каналу обертання кістки з активацією Value ключа форми. Цей метод має недолік у тому, що спирається на одиничний канал обертання кістки, який може бути недостатнім для точного вираження умови, при якій ключ форми повинен бути активований.

  1. У вкладці Drivers виберіть Averaged Value для обертання кістки, яку ви позували.

    Дізнайтеся вісь обертання, яка вас цікавить, шляхом вмикання показу осей для арматури або відстеживши значення трансформ кістки у Properties.

    Виберіть канал обертання та задайте його локальним, тобто, значення обертання кістки відносно її предківської кістки.

    ../../_images/animation_drivers_workflow-examples_shape-key-method1.png
  2. Вручну задайте точки на кривій драйвера шляхом вибирання держака та перетягуванні його або вставляння значення у вкладці F-Curve. Вісь Y представляє Value для ключа форми, яке повинно переходити від 0.0 до 1.0. Вісь X є, зазвичай, кадром, але для цього драйвера вона представляє значення обертання у радіанах. Ви можете мати більше ніж дві точки на кривій та підправити пересування за допомогою держаків в огляді кривої (G для переміщення).

  3. Для перевіряння, що драйвер поводиться коректно, зневиберіть опцію, щоб показувати драйвери лише для вибраних об’єктів. Таким чином, ви можете позувати арматуру та стежити за драйвером.

Метод 2 – Різниця обертань для цільової кістки

Цей метод вимагає додаткову цільову target або коригувальну corrective кістку, але вона краще виражає просторовий стан у 3D просторі кістки, що спричиняє проблему.

  1. У режимі Edit Mode для арматури додайте нову кістку шляхом видавлення з Bone 1 у позицію, в якій Bone 2 повинна мати активним ключ форми. Цей тип кісток, зазвичай, дотримується умовності іменування, такої як «TAR-» (target – цільова) або «COR-» (corrective – коригувальна).

  2. У вкладці Drivers виберіть Averaged Value для різниці обертань між кісткою, що ви обертаєте, та цільовою кісткою. Різниця обертань – це мінімальний кут між двома об’єктами у просторі світу World Space. Тому важливо, щоб кістки мали один і той же корінь, так що лише єдине впливало на кут між кістками – обертання однієї з них. Коли кістка деформації (Bone 2) досягає цільового обертання (TAR-Bone 2), то різниця обертань буде 0°.

    ../../_images/animation_drivers_workflow-examples_shape-key-method2.png
  3. Вручну наладнайте держаки кривої драйвера, щоб Value (вісь Y) ключа форми було 1.0, коли різниця обертань (вісь X axis) є 0°. Це Value повинно бути 0.0, коли рука витягується, і в цей момент різниця обертань повинна бути близько 90° або більше (у радіанах).

  4. Дивіться кроки для Методу 1 про те, як наладнати держаки кривої та підтвердити, що функціональність працює. Позуйте арматуру для перевіряння, що діапазони є коректними.

Зчеплені Відносні Ключі Форм – Chained Relative Shape Keys

Активуються різні ключі форм послідовно. У цьому прикладі, переміщування одиничної кістки буде активувати спершу Key 1, а потім Key 2. Дивіться також relative shape keys mix additively.

Ключі Форм – Shape Keys

Додаються два ключі форм, окрім Basis.

../../_images/animation_drivers_workflow-examples_chained-shape-keys-basis.png

Basis.

../../_images/animation_drivers_workflow-examples_chained-shape-keys-key1.png

Key 1: top faces moved up by 1 m.

../../_images/animation_drivers_workflow-examples_chained-shape-keys-key2.png

Key 2: inner top moved up by 1 m.

Драйвери – Драйвери

Додається арматура з одиничної кістки для керування ключами форм. Мета – активувати ключі послідовно, як ця кістка переміщується уверх.

../../_images/animation_drivers_workflow-examples_chained-shape-keys-result.png

Як показано на картинці вище, коли кістка є напівдорозі уверх, то Key 1 та Key 2 мають вплив. Це питання переваги, чи Key 1 повинен бути на його максимумі Value, перш ніж Key 2 починає ставати активним, чи наскільки вони повинні перекриватися. Цей приклад показує безшовне змішання.

Для безшовного змішання, де відбувається перекриття, Key 1 повинен мати Value як 0.0, коли кістка знаходиться на низу та це значення збільшується прямолінійно до 1.0, допоки кістка не проходить середину висоти. Key 2 повинен мати значення як 0.0, перш ніж досягається середина висоти й потім це значення зростає з такою ж частотою, що й для Key 1, допоки не буде досягнуто Value як 1.0, коли кістка знаходиться на максимальній висоті.

  1. Додається драйвер для Value ключів Key 1 та Key 2. У вкладці Drivers конфігуруються обидва драйвери на Averaged Value змінної за допомогою локації Z для кістки.

  2. Determine the range of the bone’s motion in the World Z axis by moving it up so that it is aligned with the top of the mesh when both keys are active. Here we will use [0.0, 2.5].

  3. Конфігуруються функції драйвера, щоб Value цих ключів форм (вісь Y) були як бажано для висоти кістки (вісь X).

    Функції драйвера повинні бути лінеарними, тому вони можуть бути визначені аналітично за допомогою функції типу \(y = a + bx\), де \(a\) є зсув \(y\), а \(b\) є схилення.

    1. У вкладці Modifiers додається Generator з типом Extended Polynomial для обох драйверів.

    2. Play with the values of \(a\) and \(b\) so that the curves go from [0.0, 1.0] in the Y axis and from [0.0, 2.5] in the X axis. The curves should overlap in the mid area of the X axis and they should have the same slope (\(b\)).

      Додатні значення є Key 1: \(y = 0.0 + 0.6x\) та Key 2: \(y = -0.5 + 0.6x\).

      ../../_images/animation_drivers_workflow-examples_chained-shape-keys-driver-setup.png

      Note that the functions go outside the range [0.0, 1.0] for the shape keys“ Value, but that has no effect because Value is clamped in a Range in the Shape Keys panel.