1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Скелетная анимация!

Тема в разделе "MAXScript", создана пользователем -, 14 авг 2005.

Модераторы: Savin Denis
  1. Guest

    Вопросы такие:

    1. Как узнать, есть ли у geometry[n] модифаер Skin?
    2. Как получить список костей, если модифаер Skin есть?
    3. Как для заданного вертекса получить вес заданной кости?

    Заранее большое спасибо!
     
  2. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    1 Проверить по очереди класс всех модификаторов у объекта
    for m in $.modifiers do if (classof m) == Skin then print "Skined Object!"

    2-3) Help - раздел Skin : Modifier
    + включи макро рекордер
     
  3. Guest

    denissavin, спасибо что откликнулся!

    Help по скриптам у меня есть. Сижу, читаю. По поводу 2 - 3 я так ничего и не нашел, поэтому и спрашиваю...
     
  4. Guest

    МакроРекордер ничего полезного не сказал :(

    skinOps.addBone $.modifiers[#Skin] $Bone04 1
    $.modifiers[#Skin].cross_radius = 13.125

    А вот как мне узнать у $.modifiers[#Skin] список всех костей?
    Что-то типа $.modifiers[#Skin].Bones[n] ??
     
  5. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Богатая фантазия это тоже конечно хорошо
    но легче все же заглянуть в хелп
    skinOps.GetNumberBones
    skinOps.GetBoneName
    там же все про веса
    некоторые почему-то думают я буду делать их работу и переводить за них хелп, так у меня других дел достаточно.
    Другое дело помоч человеку, у которого не получается не смотря на проштудированную документацию.
     
  6. Guest

    > некоторые почему-то думают я буду делать их работу и переводить за них хелп, так у меня других дел достаточно

    В титрах за тебя замолвлю словечко ;-) Что бы я без тебя делал?

    > Другое дело помоч человеку, у которого не получается не смотря на проштудированную документацию.

    Ты не поверишь, но это именно такая ситуация ;-)

    С количеством костей и именами уже разобрался. Последняя (надеюсь) проблемма осталась в следующем:

    skinOps.GetVertexWeight <Skin> <vertex_integer> <vertex_bone_integer>

    На сколько я понимаю, именно эта функция мне и нужна для получения веса. <vertex_integer> - понятно, это индекс вертекса в меше. А вот что такое <vertex_bone_integer> я так и не понял. Сначала подумал что это индекс кости, так ведь при четырех костях работает только с единичкой, на остальные ругается :(

    Было бы идеально следующее решение: Получить вес вершины по индексу вершины в меше и индексу либо имени кости. Такое возможно?
     
  7. Guest

    Правка: форум съел параметры в птичках :(

    > некоторые почему-то думают я буду делать их работу и переводить за них хелп, так у меня других дел достаточно

    В титрах за тебя замолвлю словечко ;-) Что бы я без тебя делал?

    > Другое дело помоч человеку, у которого не получается не смотря на проштудированную документацию.

    Ты не поверишь, но это именно такая ситуация ;-)

    С количеством костей и именами уже разобрался. Последняя (надеюсь) проблемма осталась в следующем:

    skinOps.GetVertexWeight Skin vertex_integer vertex_bone_integer

    На сколько я понимаю, именно эта функция мне и нужна для получения веса. vertex_integer - понятно, это индекс вертекса в меше. А вот что такое vertex_bone_integer я так и не понял. Сначала подумал что это индекс кости, так ведь при четырех костях работает только с единичкой, на остальные ругается :(

    Было бы идеально следующее решение: Получить вес вершины по индексу вершины в меше и индексу либо имени кости. Такое возможно?
     
  8. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    > Хотелось бы функцию >"ПолучитьВесВертексаПоИндексуВертекса_И_ИндексуКости"
    Функцию Получил ?
    DEN / bemz: Нет :( Где?
    Denis Station: Вот это она и есть:

    fn GetSkinVertWeight Skin_ Vert BoneID = (
    local BoneCount = skinOps.GetVertexWeightCount Skin_ Vert
    local bones = for i = 1 to BoneCount collect skinOps.GetVertexWeightBoneID Skin_ Vert i
    local Index_Bone = findItem bones BoneID
    if Index_Bone == 0 do return 0
    try skinOps.GetVertexWeight Skin_ Vert Index_Bone catch (0)
    )

    m = $.modifiers[#Skin]
    GetSkinVertWeight m 23 3
     
Модераторы: Savin Denis

Поделиться этой страницей