Кто может, киньте модель дамми с анимациями поворота на 360 градусов. Только поворотом не вверх/вниз, а вокруг своей оси, типо как стрела летит и в полете закручивается.

Принятый ответ

как повернуть юнита (снаряд) обычно мы можешь юнита двигать, поднимать. Но вот редактор не обладает возможностью триггерно наклонять вниз, накренять юнита вбок, вращать вокруг оси. здесь перечислено несколько способов как поворачивать модель юнита. тут есть дохрена моделей примерами, тут еще описано как создать свою модель
ссылка 2 тут тоже несколько способов. первый: использовать кость модели и поворачивать с помощью функции SetUnitLookAt. Раньше думал, что эта функция только для поворота головы, но оказалось можно сделать больше - поворачивать dummy-снаряды. К сожалению, не опробовал этот метод по причине недостатка времени. Недостатки: там можно повернуть только две кости, в принципе достаточно для снаряда (нужно создать модель. что тут сложного? ракета или стрела это простые модели, на них крепим кость); необходимость использовать даймика для поворота. Еще один способ - использовать специальную модель с различными анимациями (где каждая анимация сменяет положение юнита), и вращать с помощью SetUnitAnimationByIndex. берете модель из наработки скорпа и изучите код
вот кватерион вращения из первой ссылки
вот рисунок доработанный завалялся у меня на компе.
это в моделе прописывают
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
19
5 лет назад
2
Похожие вопросы:

ответ
Steal nerves:
раскрыть
local unit u= //кастер
local real x1=GetUnitX(u) //координаты кастера
local real y1=GetUnitY(u)

local unit t= //дайми
local real x2=GetUnitX(t)
local real y2=GetUnitY(t)

//определение расстояния
local real dx=x2-x1 //разница между концом на началом координаты
local real dy=y2-y1
local real dist = SquareRoot(dx * dx + dy * dy) //расстояние, где SquareRoot - математический корень, dx * dx - это dx в степени 2

local real angle = Atan2(dy,dx) //текущий угол между двумя точками (юнитами) в градусах

//если вы хотите текущий угол изменить, то можно изменить angle прибавив или убавив значение на несколько градусов
set angle = angle + 30. //например прибавляешь 30 градусов

set x = x + dist * Cos(angle * bj_DEGTORAD)
set y = y + dist * Sin(angle * bj_DEGTORAD)
ответ
В редакторе скелета
ответ
как-то делается, но тонкостей дохера - нельзя иметь регионы на карте, чтобы это работало, нельзя иметь события на unitInRange, и тд. и тп. Проще говоря - обломись, дешевле сделать статичный магаз где-то в неиспользуемой зоне
ответ
~8gabriel8:
ПРАВИЛА ЗАПРЕЩАЮТ НЕСКОЛЬКО ВОПРОСОВ ОДНОВРЕМЕННО!!!
Это для того сделано, чтобы бот на каждый вопрос мог показать уже решённые варианты, если сформулирован вопрос нормально, конечно. А ещё это позволит другим пользователям с аналогичными вопросами увидеть ответы на твои.
1. Можно в РО отключить урон юниту и триггерами просчитывать, кто находится перед ним в момент атаки, им будет наноситься урон.
1.5. Не понимаю проблемы, с чего это ты переключаешься на муху, атакуя огромного лорда склепа?
2. Способность Каменные доспехи Ночных Эльфов.
3. И да, и нет. Стандартными средствами сможешь убрать карту через перерисовку интерфейса, разработать и добавить новые кнопки в пул из 12, но для расширения пула или инвентаря потребуются хитрые системы, типа мемхака или DGUI, но не пользовался ими, потому не подскажу, как именно там надо действовать.
4. Можно либо отлавливать урон и прибавлять здоровье, либо делать морф в неуронящего юнита.
5. Не знаю, как именно сделано в Blade of Darkness, но есть событие на нажатие кнопок со стрелками, есть действие на переключение камеры. Просто почитай статью о работе с камерой.
6. У камеры в свойствах есть угол обзора, первую камеру ставишь вниз с углом обзора вверх, что можешь увидеть, поставив галочку в свойствах камеры, вторую камеру поднимаешь вверх и наклоняешь вниз, а в триггере ставишь применить первую камеру в течении 0 секунд, ждать 2 секунды, применить вторую камеру в течении 5 секунд, так обзор будет подниматься в положение второй камеры, ждать 5 секунд.

0
29
5 лет назад
0
Такие вопросы задаются в разделе Модели на заказ.
0
12
5 лет назад
0
NazarPunk:
Такие вопросы задаются в разделе Модели на заказ.
я ж не говорю сделать, говорю может у кого есть
0
27
5 лет назад
Отредактирован MpW
0
как повернуть юнита (снаряд) обычно мы можешь юнита двигать, поднимать. Но вот редактор не обладает возможностью триггерно наклонять вниз, накренять юнита вбок, вращать вокруг оси. здесь перечислено несколько способов как поворачивать модель юнита. тут есть дохрена моделей примерами, тут еще описано как создать свою модель
ссылка 2 тут тоже несколько способов. первый: использовать кость модели и поворачивать с помощью функции SetUnitLookAt. Раньше думал, что эта функция только для поворота головы, но оказалось можно сделать больше - поворачивать dummy-снаряды. К сожалению, не опробовал этот метод по причине недостатка времени. Недостатки: там можно повернуть только две кости, в принципе достаточно для снаряда (нужно создать модель. что тут сложного? ракета или стрела это простые модели, на них крепим кость); необходимость использовать даймика для поворота. Еще один способ - использовать специальную модель с различными анимациями (где каждая анимация сменяет положение юнита), и вращать с помощью SetUnitAnimationByIndex. берете модель из наработки скорпа и изучите код
вот кватерион вращения из первой ссылки
вот рисунок доработанный завалялся у меня на компе.
это в моделе прописывают
Загруженные файлы
Принятый ответ
0
12
5 лет назад
0
Steal nerves, Немного не то, тут поворот идет вверх/вниз крена, а надо в стороны.
0
27
5 лет назад
0
OVOgenez, словами трудно понять как вам нужно
0
26
5 лет назад
0
OVOgenez:
Steal nerves, Немного не то, тут поворот идет вверх/вниз крена, а надо в стороны.
плоскость смените, и вуаля... альберт эйнштейн в гробу перевернулся, это же вопрос относительности
0
12
5 лет назад
0
Hate:
OVOgenez:
Steal nerves, Немного не то, тут поворот идет вверх/вниз крена, а надо в стороны.
плоскость смените, и вуаля... альберт эйнштейн в гробу перевернулся, это же вопрос относительности
Я так понял это надо в самих анимках, если да, то как?
Steal nerves:
OVOgenez, словами трудно понять как вам нужно
обычно поворачивают вокруг оси Y, а надо по X.
0
27
5 лет назад
Отредактирован MpW
0
OVOgenez, тут кватерионы x,y,z,w
вращение по оси x
если вращение только по одной оси x, то y=0,z=0
кадров можно взять поменьше, огромное число кадров сделал чтоб понимали
		Rotation 17 {
		Linear,
		0: { 0, 0, 0, 1 }, //180°
		150: { 0.19, 0, 0, 0.98 }, //157.5°
		300: { 0.38, 0, 0, 0.92 }, //135°
		450: { 0.55, 0, 0, 0.83 }, //112.5°
		600: { 0.707, 0, 0, 0.707 }, //90°
		750: { 0.83, 0, 0, 0.55 }, //67.5°
		900: { 0.92, 0, 0, 0.38 }, //45°
		1050: { 0.98, 0, 0, 0.19 }, //22.5°
		1200: { 1, 0, 0, 0 }, //0°
		1350: { -0.98, 0, 0, 0.19 }, //337,5°
		1500: { -0.92, 0, 0, 0.38 }, //315°
		1650: { -0.83, 0, 0, 0.55 }, //292,5°
		1800: { -0.707, 0, 0, 0.707 }, //270°
		1950: { -0.55, 0, 0, 0.83 }, //247,5°
		2100: { -0.38, 0, 0, 0.92 }, //225°
		2250: { -0.19, 0, 0, 0.98 }, //202,5°
		2400: { 0, 0, 0, 1 }, //180°
	}
для вращения по другим осям поменяйте плоскость, короче тоже самое, те же цифры только ось меняем
вращение по оси y
если вращение только по одной оси y, то x=0,z=0
		Rotation 17 {
		Linear,
		0: { 0, 0, 0, 1 }, //180°
		150: { 0, 0.19, 0, 0.98 }, //157.5°
		300: { 0, 0.38, 0, 0.92 }, //135°
		450: { 0, 0.55, 0, 0.83 }, //112.5°
		600: { 0, 0.707, 0, 0.707 }, //90°
		750: { 0, 0.83, 0, 0.55 }, //67.5°
		900: { 0, 0.92, 0, 0.38 }, //45°
		1050: { 0, 0.98, 0, 0.19 }, //22.5°
		1200: { 0, 1, 0, 0 }, //0°
		1350: { 0, -0.98, 0, 0.19 }, //337,5°
		1500: { 0, -0.92, 0, 0.38 }, //315°
		1650: { 0, -0.83, 0, 0.55 }, //292,5°
		1800: { 0, -0.707, 0, 0.707 }, //270°
		1950: { 0, -0.55, 0, 0.83 }, //247,5°
		2100: { 0, -0.38, 0, 0.92 }, //225°
		2250: { 0, -0.19, 0, 0.98 }, //202,5°
		2400: { 0, 0, 0, 1 }, //180°
	}
вращение по оси z
если вращение только по одной оси z, то x=0,y=0
		Rotation 17 {
		Linear,
		0: { 0, 0, 0, 1 }, //180°
		150: { 0, 0, 0.19, 0.98 }, //157.5°
		300: { 0, 0, 0.38, 0.92 }, //135°
		450: { 0, 0, 0.55, 0.83 }, //112.5°
		600: { 0, 0, 0.707, 0.707 }, //90°
		750: { 0, 0, 0.83, 0.55 }, //67.5°
		900: { 0, 0, 0.92, 0.38 }, //45°
		1050: { 0, 0, 0.98, 0.19 }, //22.5°
		1200: { 0, 0, 1, 0 }, //0°
		1350: { 0, 0, -0.98, 0.19 }, //337,5°
		1500: { 0, 0, -0.92, 0.38 }, //315°
		1650: { 0, 0, -0.83, 0.55 }, //292,5°
		1800: { 0, 0, -0.707, 0.707 }, //270°
		1950: { 0, 0, -0.55, 0.83 }, //247,5°
		2100: { 0, 0, -0.38, 0.92 }, //225°
		2250: { 0, 0, -0.19, 0.98 }, //202,5°
		2400: { 0, 0, 0, 1 }, //180°
	}
0
26
5 лет назад
0
Сейчас сделал на базе твоей юлы, но вроде бы что-то пошло не так. Должны вращаться крепления head, chest и origin по разным осям, а они вроде как не вращаются, а дрыгаются, наверное, угол поворота неправильно рассчитывается.
Загруженные файлы
0
12
5 лет назад
0
8gabriel8:
Сейчас сделал на базе твоей юлы, но вроде бы что-то пошло не так. Должны вращаться крепления head, chest и origin по разным осям, а они вроде как не вращаются, а дрыгаются, наверное, угол поворота неправильно рассчитывается.
ща чекну
угол поворота норм расчитан, пример же есть, ща кину другую модель дамми
Загруженные файлы
0
26
5 лет назад
0
В mdlvis перехожу в Редактор анимаций, выбираю анимацию Stand, переключаюсь на вкладку Движение, выбираю кость Chest, в инструментах выбираю Вращение-кнопка в виде круглой двойной стрелки. Нам нужно сделать изменения лишь в ключевых кадрах, модель сама будет вращаться из одного состояния в другое по мере проигрывания анимации. Предварительно сократил длительность анимации Stand до 1000 кадров, чтобы сделать вращение, поменяю поворот оси на 90 градусов каждые 250 кадров, то есть на первом кадре значение по осям 0;0;0, на 250 0;0;90, на 500 0;0;180, на 750 0;0;270, на 1000 0;0;0.
0
12
5 лет назад
0
8gabriel8, если че я в моделинге нуб(
0
26
5 лет назад
0
Аналогично с костями Head и Origin, только там оси меняются на Х;0;0 и 0;Y;0.
0
12
5 лет назад
0
Steal nerves:
OVOgenez, тут кватерионы x,y,z,w
вращение по оси x
если вращение только по одной оси x, то y=0,z=0
кадров можно взять поменьше, огромное число кадров сделал чтоб понимали
		Rotation 17 {
		Linear,
		0: { 0, 0, 0, 1 }, //180°
		150: { 0.19, 0, 0, 0.98 }, //157.5°
		300: { 0.38, 0, 0, 0.92 }, //135°
		450: { 0.55, 0, 0, 0.83 }, //112.5°
		600: { 0.707, 0, 0, 0.707 }, //90°
		750: { 0.83, 0, 0, 0.55 }, //67.5°
		900: { 0.92, 0, 0, 0.38 }, //45°
		1050: { 0.98, 0, 0, 0.19 }, //22.5°
		1200: { 1, 0, 0, 0 }, //0°
		1350: { -0.98, 0, 0, 0.19 }, //337,5°
		1500: { -0.92, 0, 0, 0.38 }, //315°
		1650: { -0.83, 0, 0, 0.55 }, //292,5°
		1800: { -0.707, 0, 0, 0.707 }, //270°
		1950: { -0.55, 0, 0, 0.83 }, //247,5°
		2100: { -0.38, 0, 0, 0.92 }, //225°
		2250: { -0.19, 0, 0, 0.98 }, //202,5°
		2400: { 0, 0, 0, 1 }, //180°
	}
для вращения по другим осям поменяйте плоскость, короче тоже самое, те же цифры только ось меняем
вращение по оси y
если вращение только по одной оси y, то x=0,z=0
		Rotation 17 {
		Linear,
		0: { 0, 0, 0, 1 }, //180°
		150: { 0, 0.19, 0, 0.98 }, //157.5°
		300: { 0, 0.38, 0, 0.92 }, //135°
		450: { 0, 0.55, 0, 0.83 }, //112.5°
		600: { 0, 0.707, 0, 0.707 }, //90°
		750: { 0, 0.83, 0, 0.55 }, //67.5°
		900: { 0, 0.92, 0, 0.38 }, //45°
		1050: { 0, 0.98, 0, 0.19 }, //22.5°
		1200: { 0, 1, 0, 0 }, //0°
		1350: { 0, -0.98, 0, 0.19 }, //337,5°
		1500: { 0, -0.92, 0, 0.38 }, //315°
		1650: { 0, -0.83, 0, 0.55 }, //292,5°
		1800: { 0, -0.707, 0, 0.707 }, //270°
		1950: { 0, -0.55, 0, 0.83 }, //247,5°
		2100: { 0, -0.38, 0, 0.92 }, //225°
		2250: { 0, -0.19, 0, 0.98 }, //202,5°
		2400: { 0, 0, 0, 1 }, //180°
	}
вращение по оси z
если вращение только по одной оси z, то x=0,y=0
		Rotation 17 {
		Linear,
		0: { 0, 0, 0, 1 }, //180°
		150: { 0, 0, 0.19, 0.98 }, //157.5°
		300: { 0, 0, 0.38, 0.92 }, //135°
		450: { 0, 0, 0.55, 0.83 }, //112.5°
		600: { 0, 0, 0.707, 0.707 }, //90°
		750: { 0, 0, 0.83, 0.55 }, //67.5°
		900: { 0, 0, 0.92, 0.38 }, //45°
		1050: { 0, 0, 0.98, 0.19 }, //22.5°
		1200: { 0, 0, 1, 0 }, //0°
		1350: { 0, 0, -0.98, 0.19 }, //337,5°
		1500: { 0, 0, -0.92, 0.38 }, //315°
		1650: { 0, 0, -0.83, 0.55 }, //292,5°
		1800: { 0, 0, -0.707, 0.707 }, //270°
		1950: { 0, 0, -0.55, 0.83 }, //247,5°
		2100: { 0, 0, -0.38, 0.92 }, //225°
		2250: { 0, 0, -0.19, 0.98 }, //202,5°
		2400: { 0, 0, 0, 1 }, //180°
	}
в том проблема, хз че куда прописывать...
0
26
5 лет назад
0
OVOgenez:
8gabriel8, если че я в моделинге нуб(
Поэтому и поясняю.
0
12
5 лет назад
0
8gabriel8:
OVOgenez:
8gabriel8, если че я в моделинге нуб(
Поэтому и поясняю.
Хочешь сказать сделать для 3 костей разные оси?
0
26
5 лет назад
0
Это просто вариант, как понадобится вращать.
OVOgenez:
ща кину другую модель дамми
Это что и зачем?
0
12
5 лет назад
0
8gabriel8:
Это просто вариант, как понадобится вращать.
OVOgenez:
ща кину другую модель дамми
Это что и зачем?
да там небольшая проблема была, ничего такого
8gabriel8, Может есть статьи где это подробно расписывается?
0
26
5 лет назад
0
Одну проблему нашёл, не было первого ключевого кадра, потому вращение казалось неравномерным.
Но вращение по origin так и не нравится.
В карте это видно отчётливо.
есть статьи где это подробно расписывается?
Не знаю, посмотри в разделе Моделлинг.
Загруженные файлы
0
12
5 лет назад
0
8gabriel8:
Одну проблему нашёл, не было первого ключевого кадра, потому вращение казалось неравномерным.
Но вращение по origin так и не нравится.
В карте это видно отчётливо.
есть статьи где это подробно расписывается?
Не знаю, посмотри в разделе Моделлинг.
варик правильно работает с bone_head и bone_chest, остальные он в упор не видит.
bone_root работать не будет.
0
26
5 лет назад
0
А weapon?
0
12
5 лет назад
0
8gabriel8:
А weapon?
только 2 эти кости
0
26
5 лет назад
0
Ясно. Если не найдёшь нужных статей, попробуй просто развернуть модель задом-наперёд в анимации Stand, указав 180 вращение по оси Х в первом и последнем кадре анимации.
Так должен уловить смысл.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.