Как видно здесь, цель состоит в том, чтобы вращение руки IK соответствовало вращению кости предплечья. Однако когда я это делаю, результирующие ключевые кадры приводят к перевороту, как здесь, поэтому я предполагаю, что то, как я использую кватернионы, неправильно. Честно говоря, я недостаточно знаю о кватернионах, чтобы решить эту проблему. Буду признателен за любую помощь.
Я попробовал метод, включающий ограничения, однако ограничения не могут быть запечены в отдельных кадрах. Метод, который я сейчас использую, работает, но приводит к перевороту вращения, как показано выше. Вот соответствующий раздел.
if hand_ik and def_forearm:
if scene.hand_r_control.enable_hand_r:
# Get the world space matrix of DEF-forearm.R
def_forearm_world_matrix = def_forearm.matrix
# Get the local matrix of hand_ik.R's parent or use identity if there's no parent
hand_ik_parent_matrix = hand_ik.bone.parent.matrix_local if hand_ik.bone.parent else Matrix.Identity(4)
# Convert the world matrix of DEF-forearm.R to the local space of hand_ik.R's parent
def_forearm_local_matrix = hand_ik_parent_matrix @ def_forearm_world_matrix
# Extract rotation as a quaternion
hand_ik_local_quat = def_forearm.matrix.to_quaternion()
# Correct orientation difference between DEF-forearm.R and hand_ik.R
initial_orientation_diff = def_forearm.bone.matrix_local.to_quaternion() @ hand_ik.bone.matrix_local.to_quaternion()
corrected_quat = initial_orientation_diff @ hand_ik_local_quat
# Apply the corrected rotation to hand_ik.R
hand_ik.rotation_quaternion = corrected_quat
Подробнее здесь: https://stackoverflow.com/questions/791 ... s-rotation
Как правильно обращаться с кватернионами при сопоставлении вращения одной кости с другой? ⇐ Python
Программы на Python
1731299896
Anonymous
Как видно здесь, цель состоит в том, чтобы вращение руки IK соответствовало вращению кости предплечья. Однако когда я это делаю, результирующие ключевые кадры приводят к перевороту, как здесь, поэтому я предполагаю, что то, как я использую кватернионы, неправильно. Честно говоря, я недостаточно знаю о кватернионах, чтобы решить эту проблему. Буду признателен за любую помощь.
Я попробовал метод, включающий ограничения, однако ограничения не могут быть запечены в отдельных кадрах. Метод, который я сейчас использую, работает, но приводит к перевороту вращения, как показано выше. Вот соответствующий раздел.
if hand_ik and def_forearm:
if scene.hand_r_control.enable_hand_r:
# Get the world space matrix of DEF-forearm.R
def_forearm_world_matrix = def_forearm.matrix
# Get the local matrix of hand_ik.R's parent or use identity if there's no parent
hand_ik_parent_matrix = hand_ik.bone.parent.matrix_local if hand_ik.bone.parent else Matrix.Identity(4)
# Convert the world matrix of DEF-forearm.R to the local space of hand_ik.R's parent
def_forearm_local_matrix = hand_ik_parent_matrix @ def_forearm_world_matrix
# Extract rotation as a quaternion
hand_ik_local_quat = def_forearm.matrix.to_quaternion()
# Correct orientation difference between DEF-forearm.R and hand_ik.R
initial_orientation_diff = def_forearm.bone.matrix_local.to_quaternion() @ hand_ik.bone.matrix_local.to_quaternion()
corrected_quat = initial_orientation_diff @ hand_ik_local_quat
# Apply the corrected rotation to hand_ik.R
hand_ik.rotation_quaternion = corrected_quat
Подробнее здесь: [url]https://stackoverflow.com/questions/79176417/what-is-the-proper-way-to-deal-with-quaternions-when-matching-a-bones-rotation[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия