Точки крепления - PullRequest
       9

Точки крепления

2 голосов
/ 11 мая 2011

Я использую модели, разработанные в Blender, и мне нужно добавить точки привязки к нему для специальных эффектов. Например, отметьте точку на руке модели (конечно, измененной ручной анимацией), к которой я могу применить свечение, когда это необходимо. Я знаю, как применить свечение к трехмерной точке, мне просто нужен способ получить эту точку.

Как мне это сделать?

1 Ответ

1 голос
/ 01 июня 2011

Есть несколько способов сделать подобные вещи, но мне больше нравится этот подход, потому что технические художники легко взаимодействуют с ним (все, что ему нужно - это специальное имя на объекте). Вы можете сделать так, чтобы ваш скрипт персонажа верхнего уровня сканировал его дочерние элементы и искал объекты с указанным вами соглашением об именах.

foreach(Transform child in gameObject.GetComponentsInChildren<Transform>()) {
    if( child.name == "AttachmentPointOrWhatever" ) {
        myEffectsObject.transform.parent = child;
        myEffectsObject.transform.localPosition = Vector3.zero;
    }
}

Это работает, потому что Unity будет обновлять позиции костей на основе вашей импортированной анимации, поэтому объект эффектов будет следовать за точкой, которую вы импортировали с вашей анимацией.

Что касается создания анимации, то я из Maya и 3ds Max, но идея должна быть одинаковой для блендера: добавьте дополнительные кости для точек привязки и убедитесь, что они привязаны к вашей модели (или добавили весу кожи или какому-либо термину в Блендере). У них не должно быть весов на любых вершинах, но они должны быть в наборе связывания, чтобы Unity распознавала их как часть вашей анимации и правильно анимировала точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...