CFX Пошаговые инструкции
Инструкция 1.
Использование mute на nucleus
___________________________________________________________________________________________________________________________________________
1. Выделяем два параллельных эйджа
Это два эйджа (edges) на геометрии, которые будут использоваться как база для rivet-а.
Они должны быть соседними и лежать на одном участке поверхности (например, рядом на коже, ткани, волосах).
2. Используем следующий скрипт для rivet
// Copyright (C) 2000-2001 Michael Bazhutkin - Copyright (C) 2000 studio Klassika
// www.geocites.com/bazhutkin
// bazhutkin@mail.ru
//
// Rivet (button) 1.0
// Script File
// MODIFY THIS AT YOUR OWN RISK
//
// Creation Date: April 13, 2001
//
//
// Description:
// Use "Rivet" to constrain locator to polygon or NURBS surfaces
// Select two edges on polygon object
// or select one point on NURBS surface and call rivet
// Parent your rivets and buttons to this locator
global proc string rivet ( )
{
string $nameObject;
string $namePOSI;
string $parts[];
string $list[] = `filterExpand -sm 32`;
int $size = size($list);
if ($size > 0)
{
if ($size != 2)
{ error("No two edges selected");
return "";
}
tokenize($list[0],".",$parts);
$nameObject = $parts[0];
tokenize($list[0],"[]",$parts);
float $e1 = $parts[1];
tokenize($list[1],"[]",$parts);
float $e2 = $parts[1];
string $nameCFME1 = `createNode curveFromMeshEdge -n "rivetCurveFromMeshEdge1"`;
setAttr ".ihi" 1;
setAttr ".ei[0]" $e1;
string $nameCFME2 = `createNode curveFromMeshEdge -n "rivetCurveFromMeshEdge2"`;
setAttr ".ihi" 1;
setAttr ".ei[0]" $e2;
string $nameLoft = `createNode loft -n "rivetLoft1"`;
setAttr -s 2 ".ic";
setAttr ".u" yes;
setAttr ".rsn" yes;
$namePOSI = `createNode pointOnSurfaceInfo -n "rivetPointOnSurfaceInfo1"`;
setAttr ".turnOnPercentage" 1;
setAttr ".parameterU" 0.5;
setAttr ".parameterV" 0.5;
connectAttr -f ($nameLoft + ".os") ($namePOSI + ".is");
connectAttr ($nameCFME1 + ".oc") ($nameLoft + ".ic[0]");
connectAttr ($nameCFME2 + ".oc") ($nameLoft + ".ic[1]");
connectAttr ($nameObject + ".w") ($nameCFME1 + ".im");
connectAttr ($nameObject + ".w") ($nameCFME2 + ".im");
}
else
{ $list = `filterExpand -sm 41`;
$size = size($list);
if ($size > 0)
{
if ($size != 1)
{ error("No one point selected");
return "";
}
tokenize($list[0],".",$parts);
$nameObject = $parts[0];
tokenize($list[0],"[]",$parts);
float $u = $parts[1];
float $v = $parts[2];
$namePOSI = `createNode pointOnSurfaceInfo -n "rivetPointOnSurfaceInfo1"`;
setAttr ".turnOnPercentage" 0;
setAttr ".parameterU" $u;
setAttr ".parameterV" $v;
connectAttr -f ($nameObject + ".ws") ($namePOSI + ".is");
}
else
{ error("No edges or point selected");
return "";
}
}
string $nameLocator = `createNode transform -n "rivet1"`;
createNode locator -n ($nameLocator + "Shape") -p $nameLocator;
string $nameAC = `createNode aimConstraint -p $nameLocator -n ($nameLocator + "_rivetAimConstraint1")`;
setAttr ".tg[0].tw" 1;
setAttr ".a" -type "double3" 0 1 0;
setAttr ".u" -type "double3" 0 0 1;
setAttr -k off ".v";
setAttr -k off ".tx";
setAttr -k off ".ty";
setAttr -k off ".tz";
setAttr -k off ".rx";
setAttr -k off ".ry";
setAttr -k off ".rz";
setAttr -k off ".sx";
setAttr -k off ".sy";
setAttr -k off ".sz";
connectAttr ($namePOSI + ".position") ($nameLocator + ".translate");
connectAttr ($namePOSI + ".n") ($nameAC + ".tg[0].tt");
connectAttr ($namePOSI + ".tv") ($nameAC + ".wu");
connectAttr ($nameAC + ".crx") ($nameLocator + ".rx");
connectAttr ($nameAC + ".cry") ($nameLocator + ".ry");
connectAttr ($nameAC + ".crz") ($nameLocator + ".rz");
select -r $nameLocator;
return ($nameLocator);
}
rivet;
📸 Скриншот:
3. Переименовываем rivet в Translater
Чтобы в будущем использовать его как драйвер трансформа, нужно дать понятное имя:rivet1
→ Translater
(или rivet_translate_ctrl
, rivet_driver
, и т.п.)
4. Выделяем Translater_rivet и объект
Cначала выбираем rivet ,к которому должен привязаться объект.
А потом геометрию или объект который мы хотим перемещать.
5. Выбираем Constraint → Parent
Rigging меню → Constraint
→ Parent
Constraint
🔹 Открываем окно опций:Rigging
> Constraint
> Parent
(с коробочкой справа от названия)
Очень важно!
Снимаем ✓ Maintain Offset
, чтобы объект точно следовал движению Translater
, а не сохранял своё смещённое положение.
Жмём apply
6. Запускаем симуляцию
Всё готово! Теперь Translater
(rivet) двигается вместе с поверхностью, а привязанный объект точно следует за ним — можно запускать симуляцию.
Инструкция 2.
Использование деформеров
___________________________________________________________________________________
___________________________________________________________________________________________________________________________________________
CLUSTER 
___________________________________________________________________________________________________________________________________________
Cluster — это деформер, который позволяет управлять выбранными вертексами и объектами (или CV) объекта через трансформ-ноду, как будто это контроллер.
Очень удобно, если нужно:
- Убрать не нужный элемент из под камеры
- Анимировать выбранные точки для усиления эффекта симуляции
- Редактирования офсета геометрии друг с другом
1. Выделяем нужные точки на geo
В режиме Vertex
(F9 или ПКМ → Vertex), выдели одну или несколько вершин на геометрии, за которые ты хочешь тянуть или крепить объект.
2. Создаём Cluster
3.Теперь можно активировать pivot cluster, нажав W и сдвинуть точки
4.Ставим ключ на деформер
Т.к мы работаем из рестовой позиции персонажа, мы должны любые деформеры выключать в -30 кадре, что бы сохранить корректный силует одежды.
Поэтому мы идем в -30 кадр и выключаем наш cluster и ставим ключ
Правая кнопка мыши key selected
Далее в -10 кадре включаем cluster в 1
___________________________________________________________________________________________________________________________________________
DELTA MUSH 
___________________________________________________________________________________________________________________________________________
Delta Mush — это деформер, который плавно разглаживает деформации, сохраняя при этом форму оригинального меша.
Он отлично помогает, когда:
-
меш после симуляции/скиннинга/блендшейпов выглядит угловато или дёргано;
-
нужно сгладить "жёсткий" результат симуляции;
-
нужно "починить" артефакты после неловкого blendShape или skinCluster.
1. Выдели геометрию, к которой хочешь применить сглаживание
Это может быть:
-
симулируемая ткань;
-
результат blendShape;
-
скининг с плохими весами;
-
или даже просто анимированная гео.
2. Назначь на геометрию DeltaMush
2.1 Настроим параметры:
Параметр | Что делает |
---|---|
Smoothing Iterations | Кол-во сглаживающих проходов (рекомендуется 10–30) |
Smoothing Step | Насколько сильно сглаживать (0.5–1.0 — норм) |
Pin Border Vertices | Закрепить граничные точки, чтобы они не сползали |
Envelope | Масштаб влияния (как у всех деформеров) |
3.Красим вес DeltaMush
- Наводим на геометрию на которой назначен деформер
- Через правую кнопку выбираем paint ->DeltaMush
- Выкрашиваем сначала вес в 0 по всей геометрии
- Красим нужную нам часть геометрии в 1
___________________________________________________________________________________________________________________________________________
BLANDSHAPE 
___________________________________________________________________________________________________________________________________________Blandshape — это деформер в Maya, который позволяет плавно смешивать форму одного меша в другой.
Работает на основе индексов вершин, то есть:
«вот исходный меш, вот целевая форма — двигай вертексы от A к B».
Шаг 1: Подготовка объектов
-
Выбери объект, который этот объект станет источником Blend Shape (Source Object).
-
Выбери объект на который назначаешь blandshape. Этот будет служить целью деформации (Target Object).
Шаг 2: Создание Blend Shape
-
В меню выберите:
-
Deform → Blend Shape ☐ (с опциями).
-
-
В открывшемся окне настроек Blend Shape:
Шаг 3: Проверка созданного Blend Shape
-
Выделите Target Object.
-
Откройте панель атрибутов (Attribute Editor).
-
Найдите вкладку blendShape, убедитесь, что Blend Shape создан и отображается корректно.
Шаг 4: Подготовка к покраске весов (Weight Painting)
-
Кликните правой кнопкой мыши на Target Object.
-
В контекстном меню выберите пункт:
Шаг 5: Покраска весов
- Используя кисть, окрасьте необходимые области модели, регулируя степень влияния BlendShape на выбранные участки.
Инструкция 3
Создание и покраска BLANDSHAPE
_________________________________________________
Шаг 1: Подготовка объектов
-
Выбери объект, который этот объект станет источником Blend Shape (Source Object).
-
Выбери объект на который назначаешь blandshape. Этот будет служить целью деформации (Target Object).
Шаг 2: Создание Blend Shape
-
В меню выберите:
-
Deform → Blend Shape ☐ (с опциями).
-
-
В открывшемся окне настроек Blend Shape:
Шаг 3: Проверка созданного Blend Shape
-
Выделите Target Object.
-
Откройте панель атрибутов (Attribute Editor).
-
Найдите вкладку blendShape, убедитесь, что Blend Shape создан и отображается корректно.
Шаг 4: Подготовка к покраске весов (Weight Painting)
-
Кликните правой кнопкой мыши на Target Object.
-
В контекстном меню выберите пункт: