Почему во время анимации не происходит изменение масштаба модели
Анимация Birth. Сабж.
Анимация Death работает исправно.

Лучший ответ:
Как я понимаю - проблема в не заданном начальном состоянии(а может быть и нет, я не уверен). Информация о рескейлинге есть на момент начала анимации(599 кадр), а информация о используемом материале (повороте модели в последствии) появляется только на 600. Вероятно инструкции о том что делать с моделью определяются по ходу требования(а не хранятся в файле самой модели, как я думал) и на основании данных по требуемому кадру. Нельзя так просто взять и вникнуть в mdx формат. А, впрочем, я могу ошибаться.
Сделал анимации не пересекающимися (0-399 "stand", 400-599 "death", 600-799 "birth"), изменение скейла
Scaling 4 {
		Linear,
		400: { 1, 1, 1 },
		599: { 0, 0, 0 },
		600: { 0, 0, 0 },
		799: { 1, 1, 1 },
	}
и ротацию(бывшее изменение текстуры материала) оставил на круглых числах
Rotation 8 {
		DontInterp,
		0: { 0, 0, 0, 1 },
		100: { 1, 0, 0, 0 },
		200: { 0, 1, 0, 0 },
		300: { 1, 0, 0, 0 },
		400: { 0, 0, 0, 1 },
		500: { 1, 0, 0, 0 },
		600: { 0, 1, 0, 0 },
		700: { 1, 0, 0, 0 },
	}
Получилось работоспособно и удобно.



Просмотров: 118

ledoed #1 - 2 месяца назад (отредактировано ) 0
да вроде всё нормально должна показываться вот ваша кость отвечающая за это дело
Bone "ZZZZzzzap!" {
	ObjectId 0,
	Scaling 3 {
		Linear,
		400: { 1, 1, 1 },
		599: { 0, 0, 0 },
		798: { 1, 1, 1 },
	}
но так как анимация birth идёт 0.2 сек вы может и не замечаете
или может вы ставите эту модель под декарацию или предмет
Diaboliko #2 - 2 месяца назад (отредактировано ) 0
ledoed, я убрал однократность у анимации и наблюдал за ней в игре пока не убедился в том, что это не работает :) В War3ME она проигрывается исправно, а вот в игре - нет.
Используется в качестве юнита.
JyHgle #3 - 2 месяца назад 0
Diaboliko, а ты его сразу задаеш анимация или после вейт времени?
ledoed #4 - 2 месяца назад 0
Viktor19:
Diaboliko, а ты его сразу задаеш анимация или после вейт времени?
модель реально сломаная
JyHgle #5 - 2 месяца назад 0
ledoed, ясно!
ledoed #6 - 2 месяца назад (отредактировано ) 0
покопавышись в коде нашол косяк ты анимацию death заканчиваешь на 599 кадре и с этого начинаешь birth
прикреплены файлы
Diaboliko #7 - 2 месяца назад (отредактировано ) 0
ledoed:
покопавышись в коде нашол косяк ты анимацию death заканчиваешь на 599 кадре и с этого начинаешь birth
Используемые кадры анимаций не могут пересекаться? Т.е. один кадр использоваться в разных анимациях.
Мой план был задать 3 кадра, между которыми линейно меняется размер. 100% на нулевом, 0% на конец анимации смерти и, соответственно, 0-100 во время анимации Birth. Поэтому Birth шел с 599 до 798.
» Для тех, кому лень открывать .mdl файл
Sequences 3 {
	Anim "Stand" {
		Interval { 0, 399 },
		MinimumExtent { -500, -500, -500 },
		MaximumExtent { 500, 500, 500 },
	}
	Anim "Death" {
		Interval { 400, 599 },
		NonLooping,
		MinimumExtent { -500, -500, -500 },
		MaximumExtent { 500, 500, 500 },
	}
	Anim "Birth" {
		Interval { 599, 798 },
		NonLooping,
		MinimumExtent { -500, -500, -500 },
		MaximumExtent { 500, 500, 500 },
	}
}
ledoed #8 - 2 месяца назад 0
тогда почему работать начало
Diaboliko #9 - 2 месяца назад 0

Как я понимаю - проблема в не заданном начальном состоянии(а может быть и нет, я не уверен). Информация о рескейлинге есть на момент начала анимации(599 кадр), а информация о используемом материале (повороте модели в последствии) появляется только на 600. Вероятно инструкции о том что делать с моделью определяются по ходу требования(а не хранятся в файле самой модели, как я думал) и на основании данных по требуемому кадру. Нельзя так просто взять и вникнуть в mdx формат. А, впрочем, я могу ошибаться.
Сделал анимации не пересекающимися (0-399 "stand", 400-599 "death", 600-799 "birth"), изменение скейла
Scaling 4 {
		Linear,
		400: { 1, 1, 1 },
		599: { 0, 0, 0 },
		600: { 0, 0, 0 },
		799: { 1, 1, 1 },
	}
и ротацию(бывшее изменение текстуры материала) оставил на круглых числах
Rotation 8 {
		DontInterp,
		0: { 0, 0, 0, 1 },
		100: { 1, 0, 0, 0 },
		200: { 0, 1, 0, 0 },
		300: { 1, 0, 0, 0 },
		400: { 0, 0, 0, 1 },
		500: { 1, 0, 0, 0 },
		600: { 0, 1, 0, 0 },
		700: { 1, 0, 0, 0 },
	}
Получилось работоспособно и удобно.