Difference between revisions of "Autoskin"

From Bakery GPU Lightmapper: Wiki
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Последовательность действий при работе с автоскином:
 
Последовательность действий при работе с автоскином:
 +
 +
* Геометрия персонажа должна быть разделена на несколько объектов:
 +
** '''headmesh''': голова с шеей.
 +
** '''hands''': кисти.
 +
** '''coat''': торс, верхняя одежда. Либо вообще всё тело (тогда нужно legsFullyAffectCoat=true в autoskin.ms).
 +
** '''legs''': ноги от таза до стоп, но не доходя до них. Необязательно. Если такого объекта нет, надо создать одноимённую меш-пустышку с нулём вертексов.
 +
** '''boots''': ноги со стопами, но без таза. Необязательно. Если такого объекта нет, надо создать меш-пустышку с нулём вертексов.
  
 
* Мерджим из референсного файла все объекты, начинающиеся на g_
 
* Мерджим из референсного файла все объекты, начинающиеся на g_
 +
 +
* Скейлим чела, чтобы он ближе к пропорциям импортнутых объектов был.
  
 
* Удаляем старые '''g_l_arm и g_r_arm'''. Выделяем лупы вокруг плеч и подмышек. Жмём Create Shape From Selection, называя сплайны теми же именами (главное, не перепутать лево и право). Центрируем пивоты в полученных сплайнах, а затем двигаем их туда, где теоретически должны быть под одеждой реальные плечевые соединения. Обычно они выше центра сплайна и немного глубже.
 
* Удаляем старые '''g_l_arm и g_r_arm'''. Выделяем лупы вокруг плеч и подмышек. Жмём Create Shape From Selection, называя сплайны теми же именами (главное, не перепутать лево и право). Центрируем пивоты в полученных сплайнах, а затем двигаем их туда, где теоретически должны быть под одеждой реальные плечевые соединения. Обычно они выше центра сплайна и немного глубже.
  
* Удаляем старые '''g_l_elbow и g_r_elbow'''. Выделяем лупы вокруг локтей, жмём Create Shape From Selection, называем теми же именами. Центрируем пивоты.
+
* Удаляем старые '''g_l_elbow и g_r_elbow'''. Выделяем лупы вокруг локтей, жмём Create Shape From Selection, называем теми же именами.  
  
* Удаляем старые '''g_l_sleeve и g_r_sleeve'''. Выделяем лупы на самых кончиках рукавов, жмём Create Shape From Selection, называем теми же именами. Центрируем пивоты.
+
* Удаляем старые '''g_l_sleeve и g_r_sleeve'''. Выделяем лупы на самых кончиках рукавов, жмём Create Shape From Selection, называем теми же именами.
  
 
* Перемещаем и вращаем объекты '''g_l_hand, g_r_hand и g_l_hand_end, g_r_hand_end''' так, чтобы hand кружки находились на запястье, а проекция из hand в hand_end полностью захватывала кисть.
 
* Перемещаем и вращаем объекты '''g_l_hand, g_r_hand и g_l_hand_end, g_r_hand_end''' так, чтобы hand кружки находились на запястье, а проекция из hand в hand_end полностью захватывала кисть.
Line 15: Line 24:
 
* Ставим '''g_pelvis''' так, чтобы он совпадал с позицией/углом верха тазовой кости.
 
* Ставим '''g_pelvis''' так, чтобы он совпадал с позицией/углом верха тазовой кости.
  
* Удаляем старый '''g_collar'''. На основе имеющихся еджей создаём новый сплайн с таким же именем. Сплайн должен быть вокруг начала воротника. Сплайну необязательно повторять реальные еджи. Альтернативно, можно оставлять старый сплайн и просто подгонять его похоже. Важен только центр и размер.
+
* Меняем '''g_collar''' так, чтобы он огибал начало воротника.
  
 
* Ставим и поворачиваем '''g_neck''' так, чтобы он располагался под шеей и совпадал с её углом (там будет начинаться кость шеи).
 
* Ставим и поворачиваем '''g_neck''' так, чтобы он располагался под шеей и совпадал с её углом (там будет начинаться кость шеи).
Line 39: Line 48:
  
 
<hr>
 
<hr>
 +
  
 
* Сохраняемся.
 
* Сохраняемся.
Line 48: Line 58:
 
* Запускаем '''zeroSkeletonTransforms.ms'''. На все всплывающие окошки долбим ОК/Enter. Получаем персонажа в Т-позе стандартизированной высоты. Если персонаж стоит в Т-позе коряво, релоадим файл, твикаем объекты и запускаем снова.
 
* Запускаем '''zeroSkeletonTransforms.ms'''. На все всплывающие окошки долбим ОК/Enter. Получаем персонажа в Т-позе стандартизированной высоты. Если персонаж стоит в Т-позе коряво, релоадим файл, твикаем объекты и запускаем снова.
  
* Если плечи кажутся низкими, тупо поднимаем '''l_shoulder и r_shoulder'''.  
+
* Если плечи кажутся низкими, тупо поднимаем '''l_arm и r_arm''' до уровня '''l_shoulder и r_shoulder'''.  
  
 
* Если что-то ещё странное, корректим руками.
 
* Если что-то ещё странное, корректим руками.
 +
  
 
<hr>
 
<hr>
 +
  
 
* Экспортируем в тестовый юнити-проект и тестируем с анимацией.
 
* Экспортируем в тестовый юнити-проект и тестируем с анимацией.

Latest revision as of 17:52, 10 February 2022

Последовательность действий при работе с автоскином:

  • Геометрия персонажа должна быть разделена на несколько объектов:
    • headmesh: голова с шеей.
    • hands: кисти.
    • coat: торс, верхняя одежда. Либо вообще всё тело (тогда нужно legsFullyAffectCoat=true в autoskin.ms).
    • legs: ноги от таза до стоп, но не доходя до них. Необязательно. Если такого объекта нет, надо создать одноимённую меш-пустышку с нулём вертексов.
    • boots: ноги со стопами, но без таза. Необязательно. Если такого объекта нет, надо создать меш-пустышку с нулём вертексов.
  • Мерджим из референсного файла все объекты, начинающиеся на g_
  • Скейлим чела, чтобы он ближе к пропорциям импортнутых объектов был.
  • Удаляем старые g_l_arm и g_r_arm. Выделяем лупы вокруг плеч и подмышек. Жмём Create Shape From Selection, называя сплайны теми же именами (главное, не перепутать лево и право). Центрируем пивоты в полученных сплайнах, а затем двигаем их туда, где теоретически должны быть под одеждой реальные плечевые соединения. Обычно они выше центра сплайна и немного глубже.
  • Удаляем старые g_l_elbow и g_r_elbow. Выделяем лупы вокруг локтей, жмём Create Shape From Selection, называем теми же именами.
  • Удаляем старые g_l_sleeve и g_r_sleeve. Выделяем лупы на самых кончиках рукавов, жмём Create Shape From Selection, называем теми же именами.
  • Перемещаем и вращаем объекты g_l_hand, g_r_hand и g_l_hand_end, g_r_hand_end так, чтобы hand кружки находились на запястье, а проекция из hand в hand_end полностью захватывала кисть.
  • Ставим и поворачиваем g_chest так, чтобы он совпадал с позицией/углом низа грудной клетки.
  • Ставим g_pelvis так, чтобы он совпадал с позицией/углом верха тазовой кости.
  • Меняем g_collar так, чтобы он огибал начало воротника.
  • Ставим и поворачиваем g_neck так, чтобы он располагался под шеей и совпадал с её углом (там будет начинаться кость шеи).
  • Ставим и поворачиваем g_collar_top так, чтобы он располагался ровно над воротником и совпадал с его углом.
  • Ставим и поворачиваем g_head так, чтобы он располагался ровно под основанием черепа и челюстью (там будет начинаться кость головы).
  • Если есть капюшон, который должна деформировать кость головы, то ставим g_collar_headtop ровно над капюшоном (выше всего персонажа). Если его нет, удаляем этот объект.
  • Ставим g_l_thigh и g_r_thigh так, чтобы ровными кольцами опоясывали верх ног там, где они втыкаются в таз. Пивоты этих объектов используются для создания костей ног.
  • Ставим g_l_knee и g_r_knee так, чтобы они опоясывали коленки. Пивоты этих объектов используются для создания костей в этих коленках.
  • Ставим g_l_foot и g_r_foot ровно над над стопами. Они задают сочленение ноги и стопы.
  • Ставим g_l_foot_end и g_r_foot_end под стопами. Проекция от foot к foot_end должна полностью захватывать заднюю часть стопы.
  • Ставим g_l_toe и g_r_toe так, чтобы они опоясывали линию начала пальцев стопы (где она может сгибаться).
  • Ставим g_l_toe_end и g_r_toe_end чуть дальше конца стопы спереди. Проекция от toe к toe_end должна полностью захватывать переднюю часть стопы.




  • Сохраняемся.
  • Запускаем autoskin.ms
  • Можем покрутить кости и затестить качество скина. Если что-то плохо, релоадим файл, твикаем объекты и запускаем снова.
  • Запускаем zeroSkeletonTransforms.ms. На все всплывающие окошки долбим ОК/Enter. Получаем персонажа в Т-позе стандартизированной высоты. Если персонаж стоит в Т-позе коряво, релоадим файл, твикаем объекты и запускаем снова.
  • Если плечи кажутся низкими, тупо поднимаем l_arm и r_arm до уровня l_shoulder и r_shoulder.
  • Если что-то ещё странное, корректим руками.




  • Экспортируем в тестовый юнити-проект и тестируем с анимацией.