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

Экспорт точек веса, в простом текстовом файле, помогите

Тема в разделе "Анимация", создана пользователем ОА, 27 май 2012.

Модераторы: Артер
  1. ОА

    ОА Активный участник

    С нами с:
    15.03.2012
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    12
    Здравствуйте, товарищи.
    Прошу помощи, в решении следующего вопроса.

    Есть модель (человека), с костями и модификатором skin, проблема в экспорте данных. Нужно получить текстовый файл, с индексом точки и его веса к кости. 100% аналог Weight Table в модификаторе skin только в тексте.

    Если кто то знает как это сделать, прошу помочь, очень очень.

    С уважением, Олег.
     

    Вложения:

    • 2732432.jpg
      2732432.jpg
      Размер файла:
      258,7 КБ
      Просмотров:
      66
  2. Dark Lighter

    Dark Lighter Пользователь сайта

    С нами с:
    14.09.2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    2
    MaxScript тебе в помощь.
    Вот пример скрипта который построчно пишет в текстовый файл индекс точки и его вес к кости.
    Модель должна быть Editable Poly.

    Код:
    filename = getSaveFileName caption:"Save file" filename:($.name) --types: "Text files (*.txt) | (*.txt) | All (*.*) | (*.*)"
    if filename != underfined then
    	(
    		saveWeights = createFile filename
    		format "% <- vertex count" (polyop.getNumVerts $) to:saveWeights
    		for i = 1 to polyop.getNumVerts $ do
    			(
    				bone_count = skinops.getVertexWeightCount $.modifiers[#Skin] i
    				format "\n% <- vertex numer" i to:saveWeights
    				format "\n% <- vertex position" (polyop.getVert $ i) to:saveWeights
    				format "\n% <- vertex bone count" bone_count to:saveWeights
    				for b = 1 to bone_count do
    					(
    						bone_ID = skinops.getVertexWeightBoneID $.modifiers[#Skin] i b
    						bone_Name = skinops.getBoneName $.modifiers[#Skin] bone_ID 1
    						bone_Weight = skinops.getVertexWeight $.modifiers[#Skin] i b
    						format "\n% <- bone ID" bone_ID to:saveWeights
    						format "\n% <- bone name" bone_Name to:saveWeights
    						format "\n% <- vertex bone weight" bone_Weight to:saveWeights
    					)
    			)
    		close saveWeights
    	)
     
  3. ОА

    ОА Активный участник

    С нами с:
    15.03.2012
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    12
    О великий из великих, Dark Lighter.
    Огромнейшее спасибо, протестю скрипт, отпишусь обязательно
     
  4. ОА

    ОА Активный участник

    С нами с:
    15.03.2012
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    12
    Протестил, что то не получается....сохраняет вот такой документ (прикрепил) и всё...с коллапсом модели и без него...пыжился тужился и ничего больше одной строки не вышло...
    Dark Lighter что делать?
     
  5. ОА

    ОА Активный участник

    С нами с:
    15.03.2012
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    12
    Прикрепить не удалось...в .txt файле следующая строка: 2168 <- vertex count

    и всё
     
  6. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    На панели Modify выделяем модификатор Skin и запускаем скрипт.
    P.S. Cлово "underfined" лучше заменить на слово "undefined".
     
  7. Dark Lighter

    Dark Lighter Пользователь сайта

    С нами с:
    14.09.2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    2
    Хм, проверил, у меня работает.
    Я сам только начал постигать азы MaxScript и не могу гарантировать 100% работоспособность. Скрипт писал для своих нужд и возможно не все условия соблюдены для работы скрипта. Сейчас посмотрю еще раз.
     
  8. Dark Lighter

    Dark Lighter Пользователь сайта

    С нами с:
    14.09.2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    2
    Да, так и есть. И еще одно, в файл также пишется дополнительная информация, которую я использовал для дебага. Все что в кавычках после \n% можно убрать. Например: <- vertex count и <- vertex numer. Плюс в файл сохраняется позиция вершин, если она не нужна ее тоже можно убрать.
     
  9. ОА

    ОА Активный участник

    С нами с:
    15.03.2012
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    12
    Вот высылаю мув скрины. сделал всё как написано. И опять одна строка только в текстовом документе.
    *Удалял модель головы, оставляя только торс. результат тот же.

    Может это зависеть от версии макса?
    У меня вроде руки не кривые но с макс скриптом не дружу...Хелп
     

    Вложения:

    • 2735562.jpg
      2735562.jpg
      Размер файла:
      142,6 КБ
      Просмотров:
      66
    • 2735563.jpg
      2735563.jpg
      Размер файла:
      180,5 КБ
      Просмотров:
      74
    • 2735564.jpg
      2735564.jpg
      Размер файла:
      226,9 КБ
      Просмотров:
      64
    • 2735565.jpg
      2735565.jpg
      Размер файла:
      231 КБ
      Просмотров:
      61
    • 2735566.jpg
      2735566.jpg
      Размер файла:
      188 КБ
      Просмотров:
      63
  10. igorznag

    igorznag Знаток

    С нами с:
    23.04.2010
    Сообщения:
    1.256
    Симпатии:
    173
    Баллы:
    65
    Извиняюсь. Я не правильно написал. Правильно будет так:
    1. Открываем панель Modify и выделяем модификатор Skin.
    2. Не закрываем панель Modify. Панель Modify должна быть открыта.
    (Вы закрыли панель Modify и открыли панель Utilities.)
    3. Запускаем скрипт.
     
  11. ОА

    ОА Активный участник

    С нами с:
    15.03.2012
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    12
    Спасибо больше, сработало как надо. Отдельная благодарность, Dark Lighter'у
     
  12. Dark Lighter

    Dark Lighter Пользователь сайта

    С нами с:
    14.09.2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    2
    Был рад помочь. :)
    Кстати советую понемногу осваивать MaxScript, штука не слишком сложная но очень помагает в работе.
     
Модераторы: Артер

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