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

Создание скелета ( bones ) на API

Тема в разделе "Общие вопросы", создана пользователем -, 27 янв 2004.

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

    Помогите, пожалуйста, разобраться с импортом модели в Макс для последующей анимации. Геометрия ( треугольники с вершинами ) импортируется нормально. Со скелетом есть проблемы.

    Скелет у меня это ряд объектов, связанных друг с другом, т.е. имеем обычную связку родитель-ребенок ( parent-child, master-slave ). В плагине делаю так

    INode** bones = new INode*[oc];
    for( int j = 0; j < oc; j++ ) {
    Object* obj = (Object*) iptrImport->Create( GEOMOBJECT_CLASS_ID, BONE_OBJ_CLASSID );
    bones[j] = (INode*) i_ptr->CreateObjectNode( obj );
    }

    Point3 p;
    for( j = 0; j < oc; j++ ) {
    // skipped
    if( object[j].owner != -1 )
    bones[ object[j].owner ]->AttachChild( bones[j], 1 );
    }

    i_ptr->RedrawViews( 0 );

    Сначала создаем все кости, а затем их связываем. Из второго цикла убрал именование объекта и установку его координат.

    В результате получаю отдельно стоящие кости ( правда, стоящие на своих местах ), но при этом не соединенные между собой, и сама фигурка кости как бы вогнута сама в себя, т.е. она Уже, чем та, которая появляется при создании скелета в самом Максе. При этом в окне Свойств кости все параметры укащаны правильно - имя, родитель, количество детей и т.д.

    Видимо, забыл поставить какой-то параметр. Из файла bones.cpp из примеров я понял, что надо ставить длину кости через ее параметры, но как это сделать, не создавая свой собственный класс, как в bones.cpp, не понял совсем.

    Приветствуются любые идеи на тему. Заранее благодарен, Артем.
     
Модераторы: Артер

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