|
3D-программирование Вопросы, касающиеся программирования 3D мира |
02.03.2009, 21:56
|
#31
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
Сообщение от ELIAS
Заранее спасибо. Жду...
|
Graphics3D 1280, 1024, 32, 1
cam=CreateCamera()
CameraClsColor cam, 0, 100,255
MoveEntity cam,0,0,-50
lit=CreateLight()
robo=LoadAnimMesh("Robot.b3d")
ScaleMesh robo, 100,100,100
For i=1 To CountChildren(robo)
child=GetChild(robo,i)
If child<>0
Animate child
EndIf
Next
For i=1 To 10
e=CreateCube()
ScaleEntity e, 4,4,4
PositionEntity e, Rand(-100,100),Rand(-100,100),Rand(-100,100)
Next
Repeat
If KeyDown(200)=1 Then MoveEntity cam, 0,0,1
If KeyDown(208)=1 Then MoveEntity cam, 0,0,-1
RotateEntity cam, EntityPitch(cam)+MouseYSpeed()*0.2, EntityYaw(cam)-MouseXSpeed()*0.2 ,0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
UpdateWorld
RenderWorld
Flip
Until KeyHit(1)
End
;~IDEal Editor Parameters:
;~C#Blitz3D
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
02.03.2009, 22:44
|
#32
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
АВТОМАТ, если получилось анимировать, почему бы не бросить код???
|
Шоб ты сам в хелп полез, а то привыкнешь...
Я и так уже весь алгоритм описал в посте
Тормоз, зря...
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.03.2009, 17:59
|
#33
|
Знающий
Регистрация: 31.08.2008
Адрес: Arrakis
Сообщений: 234
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
ммм....Вы не поняли
...
Или я не понял?
...
А потом мне в цикле надо будет обязательно менять последовательность анимации, ну будет ходьба, бег, прыжок, падение и тп. Мне это всё так и менять циклом??? да?
Я просто в идеале это видел иначе. я думал что можно создать какую-нибудь переменную-указатель, которая и будет содержать в себе пути ко всем чилдам.
Но впринципе! Создаем функцию - туда этот цикл! Из параметров - модель, скорость, секвенция, плавность, зацикленность! И всё будет!
Спасибо, tormoz!!!
Шоб ты сам в хелп полез, а то привыкнешь...
Я и так уже весь алгоритм описал в посте
Тормоз, зря...
Ну АВТОМАТ! Что такое, я итак всё на блюдечке вам поднёс, только код отредактируйте! И модель сделал, и экспортил её, и код весь необходимый уже написал!... Некоторые...Даже многие, на словах туго понимают, я в том числе.
Перебирай каждый чайлд GetChild, CountChildren (нумерация с единицы)
Применяй к нему Animate
|
For i=1 To CountChildren(robo)
child=GetChild(robo,i)
If child<>0
Animate child
EndIf
Next
ИМХО, гораздо эффективнее в этом случае объяснить кодом.
Но всё-равно спасибо!
|
(Offline)
|
|
04.03.2009, 00:11
|
#34
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
Чтобы поменять анимацию в твоём случае - да, опять перебирать чилды.
Вообще например если есть модель человека - то Skin там один, так что проблем не возникает. Если Skin один то чаще всего у него индекс 1 так что зная точно индекс можно сразу прописать, без цикла: Animate GetChild(Model,1), или можно FindChild'ом, но если их несколько то тут проще перебором, кроме специальных случаев, когда нужно анимировать например только голову или только торс.
З.Ы. Stop offtop
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
04.03.2009, 03:20
|
#35
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
Сообщение от ELIAS
И модель сделал, и экспортил её, и код весь необходимый уже написал!... Некоторые...Даже многие, на словах туго понимают, я в том числе.
|
это сделал только потому, что мне моделько понравилось
Вот бы сделать аркадко типа "Приключения кубо-менчика в кубостране"
В стиле марио, только 3д
кстати, движок уже готофф.
Токо уровни подавай и героев
(делал как прототип одной фирме. в связи с кризисом проект заморозили, движок разрешили использовать куда угодно)
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.03.2009, 00:56
|
#36
|
Знающий
Регистрация: 31.08.2008
Адрес: Arrakis
Сообщений: 234
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
хз хз... я ваще всегда делал не как тормоз, просто один мешь для всего, и всё отлично ) попробуй на всякий случай
|
NitE, поделись секретом, как это ты так модель экспортишь???
Я с тех пор как способом тормоза стал пользоваться, так больше у меня такого не получалось, чтобы анимировалась сама модель, а не её чайлды.
Заскринь пожалуйста настройки пайплайна при твоём экспорте и выложи ту пару строчек, обслуживающих твою анимацию.
|
(Offline)
|
|
08.03.2009, 01:31
|
#37
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
фигасе ты, спросил тоже - я уж забыл всё и о чем разговор...
но вообщем я экспортил отдельно модель, отдельно анимацию(костную)
в первом случае убирал галочку "экспорт бонес" во втором прятал каркас и только кости с анимацией экспортил...
ну а код это ваще ппц, было что-то вроде
model=loadanimmesh("shit.b3d")
anim=loadanimmesh("shitani.b3d")
animate model,0,0,anim,0
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.03.2009, 12:36
|
#38
|
Знающий
Регистрация: 31.08.2008
Адрес: Arrakis
Сообщений: 234
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
Аа..Найт, дак это получается что у тебя совершенно тоже самое, что и у тормоза, только тормоз анимацию и модель держит в одном файле, и потом растаскивает их уже в блитце, а ты их 3дмаксом уже разделяешь.
Только вот, что. Вопрос уважаемому tormoz`у:
Нельзя ли цикл сканирования чайлдов в твоём способе заупскать лишь один раз, и все чайлды модели как-нибудь тут же связывать...Тогда анимировать придётся только что-то одно... В таком случае гораздо удобнее будет управлять секвенцией!!! А то если делать ту функцию с циклом, тогда секвенцию придётся определять только аргументами начального кадра и конечного А я хочу чтобы в аргумент секвенции попадала переменная секвенции как обычно типа playerrun Или playerjump.
Я то думал, что секвенцию можна взять с любой анимации, ведь если к переменно приравнять секвенцию, то эта перемеенная равна натуральному числу! Никаких ссылок на объект и тп((( Но я ошибся.
|
(Offline)
|
|
08.03.2009, 15:24
|
#39
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
Сделай рекурсивную функцию, которая сканирует анимирует каждый чайлд.
Рекурсивная - это когда функция сама себя вызывает
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
08.03.2009, 16:47
|
#40
|
Знающий
Регистрация: 31.08.2008
Адрес: Arrakis
Сообщений: 234
Написано 6 полезных сообщений (для 6 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
Не понял, как мне поможет рекуссивная функция... вообще чем она от обычной то отличается..??? мы и обычную можем в цикл под условие поставить...-будет вызываться!
Аха! Я и забыл спросить! А нельзя никак экспотрить модель в один файл, и анимировать также просто как найт. Ведь можно же!!! Но тут какие то особенности чтоли при экспорте...неполучается ((((
Ну тоесть получится такой код:
model=loadanimmesh("shit.b3d")
run=ExtractAnimSeq(model,10,70)
animate model,0,0,run,0
Тут всё от экспорта вроде зависит, но я уж много вариантов перепробовал - не смог такого добиться.
Возникает вопрос "А возможно ли это впринципе?"
|
(Offline)
|
|
08.03.2009, 19:33
|
#41
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
насколько я понял рекурсивная функция нужна для поиска всех чайлдов, тоесть вот ищем чайлдов - нашли и ищем уже чайлдов в чайлде всё той-же функцией...
и что мешает так-же как я экспортить ?
|
(Offline)
|
|
09.03.2009, 03:11
|
#42
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Заметка о пипелайне для 3ds max
Если заскинен один объект - один объект и анимируется
Если заскинено несколько объектов - нужно их все искать и анимировать
По уму делается одним объектом, если не нужно использовать отдельные анимации (например, бежим вперед, стреляем вбок, вперед, и тд)
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:23.
|