Крючок для арматуры: Крючок для вязания арматуры – виды, схемы вязки, фото

преобразований — Как преобразовать объект, преобразованный модификатором Hook, в объект с преобразованиями Loc, Rot, Scal?

$\begingroup$

Я создаю один треугольник, который трансформируется тремя анимированными кубами.

Чтобы реализовать это, я использую «модификатор крюка» (как предложено в этой теме ), каждая вершина треугольника связана с крюком, а каждый крюк связан с кубом. Каждый куб анимирован.

Во время анимации (из положения 1 в положение 2 на скриншоте) начало координат и вершины треугольника остаются в одном и том же положении.

Есть ли способ переместить начало координат и, в конечном итоге, вершины треугольника при перемещении кубов?

Другими словами, можно ли преобразовать этот модификатор крюка с анимированными кубами, чтобы получить ключевые кадры местоположения, вращения и масштаба этого треугольника?

(Rem: такая же проблема после применения этого модификатора в качестве ключей формы)
$\endgroup$

$\begingroup$

Вы можете создать как свой объект, так и хуки пустым, что позаботится о происхождении.
Вы также можете использовать пустое значение, если хотите анимировать все кубы относительно друг друга.

Однако:
Я настоятельно рекомендую вам просто использовать арматуру с 3 костями и присвоить одной вершине вес 1, а другой 2 — 0 для каждой соответствующей кости. Крюки опасны, у них нет положения покоя, а арматура держит все в чистоте и порядке.

Возможно, вам понадобится более подробное руководство по этому вопросу, но вот разбивка:
Добавить -> Арматура
В режиме редактирования вашего треугольника выберите одну из вершин -> курсор для выбора.
В режиме редактирования каркаса нажмите SHIFT A, это создаст кость в месте расположения курсора. Назовите кость «А», повторите для 2 других вершин.
Объектный режим, выберите объект, затем арматуру -> CTRL P -> с пустыми группами.
Режим редактирования на вашей плоскости выберите вершину, выберите группу костей, за которую ее нужно перетащить, убедитесь, что вес равен 1,0, и нажмите «Назначить».
Возьмите один из ваших кубов, SHIFT-выберите арматуру, перейдите в режим позы, выберите соответствующую кость, CTRL P -> активная кость, повторите.
Если это слишком абстрактно, то есть куча руководств по этому вопросу в Интернете.

$\endgroup$

2

Зарегистрируйтесь или войдите

Зарегистрироваться через Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

Модификаторы

. Как мне использовать python для привязки контрольных точек кривой Безье к костям арматуры без необъяснимой деформации кривой Безье?

У меня есть следующий код, чтобы построить кривую Безье, арматуру, а затем соединить их вместе, к сожалению, это не выполняет мою задачу

 импорт бит/год
def create_armed_spline (scn, разрешение):
кривая = bpy.data.curves.new ("дингус", 'КРИВАЯ')
сплайн = кривая.сплайны.новый('БЕЗЬЕ')
spline.bezier_points.add((разрешение+1)*2)
половина_толщиной = 0,1
для i в диапазоне (разрешение + 1):
p1 = сплайн.bezier_points[i]
x1 = i / (разрешение)
p1.co = [x1, половинное_толстое, 0]
p2 = spline.bezier_points[2 * разрешение + 1 - i]
p2.co = [x1, -half_thick, 0]
если (я>0):
x2 = (i - 1 / 3) / (разрешение)
p1.handle_left = [x2, половинная_толщина, 0]
p2.handle_right = [x2, -half_thick, 0]
еще:
p1. handle_left = [x1, половинная_толщина/3, 0]
p2.handle_right = [x1, -half_thick/3, 0]
если я<разрешение: x3 = (i + 1/3) / разрешение p1.handle_right = [x3, половинная_толщина, 0] p2.handle_left = [x3, -half_thick, 0] еще: p1.handle_right = [x1, половинная_толщина/3, 0] p2.handle_left = [ x1, -half_thick, 0 ] spline.use_cyclo_u=Истина co = bpy.data.objects.new ("дингус", кривая) # рука = bpy.data.armatures.new("дингус") ao = bpy.data.objects.new ("арматура дингуса", рука) со.родитель = АО scn.objects.link(ао) scn.objects.link(co) # если 'ОБЪЕКТ'!=bpy.context.mode: bpy.ops.object.mode_set (режим = 'ОБЪЕКТ') scn.objects.active = АО bpy.ops.object.mode_set(mode='EDIT') кость_размер = 0,1 для i в диапазоне (разрешение + 1): x1 = i/разрешение add_bone_set(рука, "%d"%i, [x1, half_thick]) если (я>0):
x2 = (i - 1/3) / разрешение
#add_bone_set(рука, "lh%d"%i, [x2, half_thick])
если (i<разрешение): x3 = (i+1/3)/разрешение #add_bone_set(рука, "rh%d"%i, [x3, half_thick]) bpy. ops.object.mode_set (режим = 'ОБЪЕКТ')
для я в диапазоне (2):
hook_spline_to_armature(scn,co,ao,i,[0,1,0],"слева%d"%i)
hook_spline_to_armature(sn, co, ao, 2*разрешение+1-i, [0, 1, 0], "право%d"%i)
#
вернуться ко, ао
def hook_spline_to_armature (SCN, кривая, АО, ИДКС, части, имя_кости):
mod = curve.modifiers.new("крючок %d %r%r%r"%(idx,parts[0], parts[1], parts[2]), 'HOOK')
мод.объект = АО
mod.subtarget = имя_кости
мод.falloff_type = 'НЕТ'
scn.objects.active = кривая
bpy.ops.object.mode_set(mode='EDIT')
для k в диапазоне (len (curve.data.splines [0]. bezier_points)):
bp = кривая.данные.сплайны[0].bezier_points[k]
bp.select_control_point = (k==idx) и части[1] != 0
bp.select_left_handle = (k==idx) и части[0] != 0
bp.select_right_handle = (k==idx) и части[2] != 0
bpy.ops.object.hook_assign(modifier=mod.name)
bpy.ops.object.mode_set (режим = 'ОБЪЕКТ')
def add_bone_set (рука, idx, co):
кость_размер = 0,1
b0 = arm.