Показать сообщение отдельно
Старый 16.11.2008, 22:47   #1
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Лампочка FAQ LoadAnimSeq (загрузка нескольких анимаций из файла)

Итак, уже (сбился со счёту который) раз меня об этом спрашивают.
Специально написал без синхронизации, а то м.б. народ запутается)
Для запуска семпла нужен Blitz3D версии 1.98 и желательно понимающий русские комментарии
Вся необходимая медия - в аттаче.

Итак:

Graphics3D 800,600,32,2 ; Объявляем графический режим
SetBuffer BackBuffer() ; и иже с ним - короче, без этого никак в любой проге

cam = CreateCamera() ; Камера,
CreateLight() ; свет - тоже неотъемлемые части любой проги

man = LoadAnimMesh("MedicTFC.b3d") ; Грузим модельку перца
PositionEntity man,0,-50,100 ; Отдаляем от камеры чтоб видно было 



idle = LoadAnimSeq(man, "Idle.b3d") ; Вот так грузим первую анимацию
run = LoadAnimSeq(man, "run.b3d") ; Точно так же - вторую

; В переменных run и idle появятся порядковые номера анимации - не более того
; Они назначаются автоматом при загрузке анимации в том порядке, в котором 
; эта анимация была загружена. Например, в данном случае, idle будет = 1, а 
; run = 2, ноль - это та анимация, которая изначально содержалась в модели
; (Если стояла галка "сохранить анимацию")


Repeat ; Главный цикл

	If KeyHit(2) Then Animate man, 1,.5,run,10 ; По нажатию клавиш анимируем мужика
	If KeyHit(3) Then Animate man, 1,1,idle,10
	
	; Обратите внимание на 3-й параметр
	; Собсно туда и указывают, какую анимацию запускать
	; Остальные параметры (режим, скорость, плавность переключания)
	; выбирают по ситуации, это, думаю, понятно
	; Если непонятно - читайте справку
	
	
	UpdateWorld() ; Для того чтобы работала анимация, UpdateWorld обязателен!
	RenderWorld() ; Рендер
	
	
	
	Text 20,20,"PRESS 1 TO RUN AND 2 TO STOP" ; Немного текста
	
	Flip 1 ; Вертикальная синхронизация включена
Until KeyHit(1) ; Выход из главного цикла - по нажатию клавиши Ескейп
End ; Конец всея проги
Хинт: Если скопировать модель с загруженными анимациями при помощи CopyEntity, то и анимация тоже будет в скопированной модели Так что грузим с винта всего 1 раз а потом только копируем.
Вложения
Тип файла: zip LoadAnimSeq_Sample.zip (238.8 Кб, 1011 просмотров)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 9 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
Arton (10.02.2014), DeadElf (22.07.2009), Eugenes (08.07.2012), HolyDel (17.11.2008), impersonalis (17.11.2008), KRIK (29.12.2014), Nex (02.04.2010), SkyMD (20.03.2012), tormoz (18.11.2008)