forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   как найти поверхности в энтити после LoadAnimMesh (http://forum.boolean.name/showthread.php?t=17732)

egosha1381 08.01.2013 18:51

как найти поверхности в энтити после LoadAnimMesh
 
помогите ребята, дело такое:
загрузил модель снегохода(анимация поворота лыж сделана в 3д мах),т.е анимацию где у него лыжи поворачиваются (с целью анимировать и использовать в игре).
1)загрузил модель как меш (LoadMesh)
в Блице у него оказалась невидима одна поверхность.
методом перебора её нашёл и включил её видимость, а также альфу лобового стекла.
2)загрузил как анимацию (LoadAnimMesh)
стал кричать отсутствуют энтити поверхность.

итак вопрос. как загрузить анимацию, включить там эту поверхность и иметь возможность анимацию анимировать.
пример тут: http://files.mail.ru/QOAX2B
(17.7мб-материалы по игре)
исх.код: файл "снег аним.bb"
модель: /модели/снег_аним.3DS

а я тем временем попробую догадаться сам.
ссылка будет актуальна пару месяцев потом удалю и саму тему и ссылка кончится

ну так, поверхности и альфу нашёл и включил. однако: анимация в .3ds не экспортируется.
поставил b3d pipeline на мах9, в окне макса анимация анимируется, в превью пипелайна анимация не двигается. соответственно экспортируется только статическая модель.
чо это может быть

pepel 12.01.2013 09:55

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Вложений: 1
мда жесть.

вообще такие вещи не анимацией в максе делаются. а програмной анимацией
глянул модель. во первых она загружается единым мешем, хотя лыжи должны быть отдельными объектами. к тому же верткесы не соеденены, нужно делать weld для всех вертексов

вобщем берешь одну лыжу которую нужно вращать, ставишь pivot в то место относительно которого она должна вращаться, и называешь ее в максе ,например left , затем экспортируешь в b3d , делаешь команду ski_left=FindChild(koka,"left") , ski_left- ей присваевается эта модель лыжи. ну и далее вращаешь ее как хочешь


можно конечно и через анимацию реализовать, но это черезжопный метод, насчет анимации поищи на форуме тут куча тем было чтобы вставить модель с анимацией

и еще. называй пути и модели английскими названиями , а то потом могут быть проблемы.


прикрепил исправленный bb , b3d и max файл

egosha1381 12.01.2013 17:57

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
О, сделал мою работу)))
и особо радует наличие живых людей.
и не поленился ж скачать весь архив 17мб
1) а как ты смог вычленить лыжи? меня интересует пошаговое действие в 3д мах.
2) и, пошаговое действие в 3д мах по включению невидимых поверхностей.
почему собственно я пытался именно импортировать анимацию, я собираюсь посадить туда живого человека. насколько живого...)))) простого русского мужика, судя по речи. возможно в игре будет опция "цензура/без цензуры". статичная модель есть.

3) и, тут вопрос как вычленить руль, т.к. человек будет его поворачивать. (интересует последовательность кликов в 3д мах.)

а человека сделаю костной анимацией постараюсь портировать в b3d, у меня подозрение что он не экспортил анимацию именно из-за безкостности. и человек будет отдельным AnimMeshем

:ok: твой вариант благодарно принимаю, и скорее всего так и оставлю.

уважаемый Пепел. надеюсь ты прошёл оба левела, это не сложно. первый-кольцевая трасса с n поворотов, второй-лабиринт, карта прилагается. моя дочка кое-как пыталась, но для взрослого это пара пустяков. ну, следующие левелы могут быть посложнее. я пока займусь человеком

pepel 12.01.2013 18:12

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Вложений: 3
Цитата:

2) и, пошаговое действие в 3д мах по включению невидимых поверхностей.
не совсем понятно что значит невидимых. если невидимых в сцене то правой кнопкой- unhide all , а если ты про вычленение обьектов из меша, то в картинках описал, как вычленять , ставить пивот


Цитата:

3) и, тут вопрос как вычленить руль, т.к. человек будет его поворачивать. (интересует последовательность кликов в 3д мах.)
тут также как я показал в картинках

Цитата:

уважаемый Пепел. надеюсь ты прошёл оба левела, это не сложно. первый-кольцевая трасса с n поворотов, второй-лабиринт, карта прилагается. моя дочка кое-как пыталась, но для взрослого это пара пустяков. ну, следующие левелы могут быть посложнее. я пока займусь человеком
если честно в игру не играл) не люблю 3д игры особо, ктомуже незаконченные)

Цитата:

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

egosha1381 12.01.2013 19:04

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Вложений: 1
ну, вот собственно .max модель снегохода с анимацией лыж, всё сделано по видеоурокам в мах9. 1й ключ.кадр-положение1 2й-положение2 3й- снова положение1. 60кадров. загружаешь, клик плэй и всё калбасит. это я и пытался экспортировать. мах калбасит, b3d pipeline (плагин экспорта)стоит колом почему-то

pepel 12.01.2013 21:12

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Цитата:

Сообщение от egosha1381 (Сообщение 249234)
ну, вот собственно .max модель снегохода с анимацией лыж, всё сделано по видеоурокам в мах9. 1й ключ.кадр-положение1 2й-положение2 3й- снова положение1. 60кадров. загружаешь, клик плэй и всё калбасит. это я и пытался экспортировать. мах калбасит, b3d pipeline (плагин экспорта)стоит колом почему-то

ппц. можешь показать этот урок?) это жесть какаято

egosha1381 12.01.2013 22:06

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Вложений: 1
эээ...
3dsmax9 интерактивный курс
688мб
идея взята оттудова
http://rutracker.org/forum/viewtopic.php?t=245657

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

на всякий случай поставил мах2011 импортировать модели из Гугол скетчупа. снегоход, банки, человек - всё с Гугла

эмм... а вот HTML-версия, именно тема анимациии что я говорил
http://www.3dcollector.ru/data/help/...9_help/7_2.htm

pepel 12.01.2013 22:09

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Цитата:

Сообщение от egosha1381 (Сообщение 249257)
эээ...
3dsmax9 интерактивный курс
688мб
идея взята оттудова
http://rutracker.org/forum/viewtopic.php?t=245657

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

на всякий случай поставил мах2011 импортировать модели из Гугол скетчупа. снегоход, банки, человек - всё с Гугла


ок. и там учат делать анимацию внутри меша? если так. то ищи более норм уроки, и не по девятому максу а по последним, там они не сильно отличаются в версиях. небольшие апдейты модификаторов если только

а вообще у нас есть тема для вопросов по моделингу http://forum.boolean.name/showthread.php?t=195&page=38 только желательно юзать когда гугл не помогает

egosha1381 13.01.2013 01:53

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Вложений: 2
Спасибо Пепел. ты мне сегодня целый день помогаешь)
тогда вот: я хочу здесь отдетачить (рис.1) ту часть которая будет вертеться, а ещё надо отдельно отделить от неё рессору (рис.2) которая будет скейлиться по высоте при езде по ухабам.
часть выделенная на рис.1 должна вертеться
рессора (рис.2) должна одновременно и независимо скейлиться по высоте.
могу ли я так их разделить чтобы указанным образом к ним обращаться?

или если нет то придётся рессору разделить колечком ближе к низу, чтобы верхняя часть сжималась-растягивалась (к ней обращаемся отдельно), а нижняя вместе с лыжей будет крутиться (обращаемся отдельно же)

хех... ну, разделить.. одно дело поделить циллиндр поперёк, а эту штуку..

burovalex 14.01.2013 12:19

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Дружище, я конечно сам не выбираю лёгких путей, но мне кажется это перебор. Лучше посмотри физические движки. Уроков, примеров полно.
Это вот я щас мужусь, под Xors3d заточил всё, а на сам ксорс уже забили и библы не обновляются.
Но тебе, для реализации езды снегохода даже PhysX Wrapper'a хватит.
Я на примерах в нём за день разобрался. Жаль что движок тоже заброшенный.

Но есть хорошие примеры по врапперу от Автомата http://forum.boolean.name/showthread.php?t=7568
Посмотри, позапускай исходники, и ты поймёшь что так быстро и корректно ты не сделаешь! (Как и я :) )

pepel 14.01.2013 15:58

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Вложений: 2
Цитата:

Сообщение от burovalex (Сообщение 249372)
Лучше посмотри физические движки.

вообще ему рановато пока братся за движки если он даже с блитцем не разобрался толком , но вообще на будущее лучше конечно физикс юзать

Цитата:

Сообщение от egosha1381 (Сообщение 249279)
должна одновременно и независимо скейлиться по высоте.

вообще то ресора в жизни не скейлится а тонкая трубка уходит внутрь большой.

для этого лучше использовать тонкую трубку с локальной системой координат(http://www.3dgrafia.ru/modelirovanie...azovaniya.html) , т.е. смодилть отдельно и повернуть, соответственно ту которая была в модели удалить, смотри первую картинку обрати внимание на оси как они расположены

затем эту трубку также называем в максе, достаем ее в блитце финдчилдом . даем имя

затем нужно ее двигать в локальной системе координат , например moveentity там движение по локальной системе.

PHP код:

res_left=FindChild(koka,"res_left")
MoveEntity res_left,0,.5,

затем нужно привязать лыжу к ресоре, чтоб она за ней следовала

для этого нужно узнать глобальные координаты ресоры . и соответственно передвинуть в глобальных

PHP код:

PositionEntity ski_left,EntityX(res_left,1),EntityY(res_left,1),EntityZ(res_left,1),

единичка на конце это и означает что это глобальные координаты

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

в итоге получаем такой код

PHP код:

If KeyDown(200) And EntityY(res_left,0)<-7

    MoveEntity res_left
,0,.5,0
    MoveEntity res_right
,0,-.5,0


EndIf

If 
KeyDown(208) And EntityY(res_left,0)>-18

    MoveEntity res_left
,0,-.5,0
    MoveEntity res_right
,0,.5,0

EndIf    

    
PositionEntity ski_left,EntityX(res_left,1),EntityY(res_left,1),EntityZ(res_left,1),1
    PositionEntity ski_right
,EntityX(res_right,1),EntityY(res_right,1),EntityZ(res_right,1),

еще есть второй вариант - прикрепить каждую лыжу к родительскому объекту т.е. к ресоре и она будет двигатся в след за ней

PHP код:

EntityParent ski_left,res_left
EntityParent ski_right
,res_right 

тогда PositionEntity удаляем за не надобностью



прикрепил 2 проекта

burovalex 14.01.2013 19:42

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Ну даж не знаю, пепел.
Без физикса всё наоборот сложнее будет, тем более для начинающего.

Вот представь, для правильного движения ресора и лыжи ему как минимум нужно использовать:
пару нормалей к поверхности для определения положения лыжни
макс. мин. отклонение лыжи
макс. мин. сжатие ресоров.
как минимум скороть по У и масса снегохода, чтобы ресор ходил.
и много много условий...
и всё это убого будет смотреться.

И представь, физикс, где надо немного помурыжиться с привязкой через пружину лыж к саням..

Цитата:

вообще ему рановато пока братся за движки если он даже с блитцем не разобрался толком , но вообще на будущее лучше конечно физикс юзать
Берешь свои слова обратно?? )))

pepel 14.01.2013 20:26

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Цитата:

Сообщение от burovalex (Сообщение 249415)
Ну даж не знаю, пепел.
Без физикса всё наоборот сложнее будет, тем более для начинающего.

Вот представь, для правильного движения ресора и лыжи ему как минимум нужно использовать:
пару нормалей к поверхности для определения положения лыжни
макс. мин. отклонение лыжи
макс. мин. сжатие ресоров.
как минимум скороть по У и масса снегохода, чтобы ресор ходил.
и много много условий...
и всё это убого будет смотреться.


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

я бы сам не факт что запилил бы все это на физиксе

Цитата:

И представь, физикс, где надо немного помурыжиться с привязкой через пружину лыж к саням..
вообщето если делать по уму, на физиксе, то нужен джойнт-слайдер , а пружина в физиксе убогая, лучше самому писать + лыжи имеют свойство слегка наклонятся , а эту зависимость еще сложней написать

burovalex 14.01.2013 20:56

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
вот Булет для этих целей больше подойдёт, там отличные привязки и особенно дебагер - грани от боди, оси и ограничения по поворотам и перемещениям. Супер. Так жаль что приходится свой проект на ксорсе пишу (
Были бы шейдеры в блитце, я бы закинул этот заброшенный ксорс.
Домой приеду, вообще подумываю пробывать либо Unity3D, либо XNA

pepel 14.01.2013 21:03

Ответ: как найти поверхности в энтити после LoadAnimMesh
 
Цитата:

Сообщение от burovalex (Сообщение 249428)
вот Булет для этих целей больше подойдёт,

незнаю . мне буллет не понравился пружины там нет и btContactGetNum глючит, дальше проверять не стал. вернулся к физиксу.


Часовой пояс GMT +4, время: 10:51.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot