Сейчас 01:50:18 Пятница, 29 марта, 2024 год
Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я

Меню сайта

Категории

Наш опрос
Ваша любимая раса?
Проголосовало: 177920

Сейчас на сайте
На сайте всего: 1
Гостей: 1
Пользователей: 0

Реклама

Главная » Статьи по WarCraft 3 » Создание карт » Jass
Углы Эйлера (Yaw, Pitch) в WarCraft III.
Эта статья поможет вам задать углы Эйлера для любой модели, таким образом получив целых три новых разновидности поворота.

Что такое Yaw, Pitch и Roll?

Чтобы это понять, посмотрите на картинки ниже.


[spoiler="Угол Yaw"][/spoiler]
[spoiler="Угол Pitch"][/spoiler]
[spoiler="Угол Roll"][/spoiler]

Для эмуляции этих углов требуется три шага.

Шаг 1 - Подготовка модели.

- Скачайте Model Editor здесь.
- Откройте нужную модель в этой программе.
- Выберите Windows -> Node Manager.
- Нажмите правой кнопкой на хелпер (шарик с буквой "i" внутри), который назван Bone_Root или как-то похоже.
- Выберите Edit Node.
- Переименуйте его в Bone_Head.
- Сохраните.
- Импортируйте отредактированную модель в карту.

Шаг 2 - Работа в Редакторе.

- В нужном воине в Редакторе Объектов измените параметр "Графика - Файл модели" на импортированный.
- Измените значение поля "Графика - Анимация: Время цветового перехода (сек.)" на 0.
- Создайте боевую единицу.
- Создайте две реальные переменные, их значение будет являться градусной мерой угла.

Шаг 3 - Задаём углы Yaw и Pitch.

В задании углов Yaw и Pitch нам помогут две простые Jass-функции.
[code=jass]function AdjustToRangeOfNum takes real adj, real num returns real
local real adjusting = adj

loop
exitwhen (adjusting <= num and adjusting >= 0)
if adjusting < 1 then
set adjusting = adjusting + num
elseif adjusting > num then
set adjusting = adjusting - num
endif
endloop

return adjusting
endfunction

function SetUnitYawPitch takes unit u, real yaw, real pitch returns nothing
// Пользователь может ввести любой угол, а нам нужен такой, который попадёт в область [0;360].
// И это делается из-за проверки недопустимых pitch-углов (90 и 270 градусов), у них изменение угла будет 0 и функция не поменяет поворот.
local real y = AdjustToRangeOfNum(yaw,360.)
local real p = AdjustToRangeOfNum(pitch,360.)

local real offsetX
local real offsetY
local real offsetZ

if p == 90. or p == 270. then
set p = p - 1.
endif

if y == 90. or y == 270. then
set y = y - 1
endif

set offsetX = Cos(p * .0174532) * Cos(y * .0174532) * 1000000.
set offsetY = Cos(p * .0174532) * Sin(y * .0174532) * 1000000.
set offsetZ = Sin(p * .0174532) * 1000000.

call SetUnitLookAt(u,"head",u,offsetX,offsetY,offsetZ)
endfunction[/code]
Вот, собственно, и всё.
Просмотров: 3695 Добавил: Duosora Добавлено: 22 Декабря 2010 в 23:18:13
Комментариев: 6 |

Всего комментариев: 6
14 Августа 2013
Какая-то и не статья вовсе.
Ответ: Перезагрузил анимации, теперь нормально. (Sir Nikolas)

04 Января 2013
5. Юрий (19yuri98) [Материал]
Цитата (Atom_Upgrader)
а вот как вращать по трём осям не знаете

А как?

11 Января 2012
4. Atom_Upgrader (AU) [Материал]
а вот как вращать по трём осям не знаете ;)

21 Ноября 2011
3. Atom_Upgrader (AU) [Материал]
а почему 270 недопустимо?

26 Января 2011
на JASS что тока не сделать.

14 Января 2011
1. Андрей (Пикс) [Материал]
гуд статья

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Форма входа
Логин:
Пароль:

Поиск

Случайная картинка

Случайный файл
[22 Июля 2008]
[Карты · Другое]
Starcraft -
Прекольная карта! Можно Перепутать с Настаящем Starcraft'о

Новые карты
[07 Февраля 2016]
Переезжаем на другой сайт, господа![Dota]
[18 Октября 2015]
Duel of Gods PreV[Другое]
[18 Октября 2015]
Hero of The Empire v1.18g[RPG]
[17 Октября 2015]
Servant War v1.05[Другое]
[17 Октября 2015]
Age of Vikings Edited v1.6[Другое]
[17 Октября 2015]
Strife of the Champions Beta v1.2[Arena]
[17 Октября 2015]
VirusBoll (rus)[Другое]
[17 Октября 2015]
Exterminators v1[AoS]
[17 Октября 2015]
The Lord Heroes v1.2[Другое]
[17 Октября 2015]
Versus heroe Arena 1.0 AI[Arena]

5 лучших по кол-ву добавленных статей
[ Duosora ] [ 58 ]
[ Messenger ] [ 52 ]
[ Bru ] [ 39 ]
[ Pand@ ] [ 35 ]
[ OrcRider ] [ 27 ]

Наша кнопка
Warcraft3FT.info - Всё для Warcraft 3 и DotA

Другие варианты

Статистика

Материалы:
Новости: 1010
Файлы: 8668
Статьи: 680
Картинки: 8256
Форум: 30520/954989
Комментарии: 58094
Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz