XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Anufis

offline
Опыт: 6,290
Активность:
Управление камерой при триггерном ландшафте
Есть карта, в ней есть ландшафт, который полностью рисуется триггерами, и высота создается через
Код:
TerrainDeformCrater(X,Y,64.,GetZ(X,Y)-WC1+2048,1,true)

После этого во время игры сама по себе камера не хочет подниматься/опускаться, потому пришлось написать что-то типа такого
Код:
function Trig_CameraChangeH_Actions takes nothing returns nothing
    real H=0.
    H=GetZ(GetCameraEyePositionX(),GetCameraEyePositionY())
    SetCameraField(CAMERA_FIELD_ZOFFSET,1.2*H,0.02)
endfunction

//===========================================================================
function InitTrig_CameraChangeH takes nothing returns nothing
    set gg_trg_CameraChangeH = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_CameraChangeH, 0.02 )
    call TriggerAddAction( gg_trg_CameraChangeH, function Trig_CameraChangeH_Actions )
endfunction

Но возникла проблемка. Когда на относительно ровной поверхности есть несколько горок, то при прохождении камеры над ними ее трусит. Может кто-то подсказать, как можно изменить алгоритм определения высоты, на которую поднимать камеру? Думал проверять в нескольких точках экрана и выставлять на максимальную из них, но не думаю, что это решит проблему.

И скриншот с примером, где камеру трусит.
Миниатюры
Кликните на картинку для увеличения
Название:  0.jpg
Просмотров: 53
Размер:  462.4 Кбайт  
Старый 25.05.2013, 12:24
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
попробуй находить среднее между новой высотой и старой и выставлять это усредненной значение,чтобы скачок не был таким резким,либо если новая высота меньше старой - ставь старую
Старый 25.05.2013, 14:26
Borodach

offline
Опыт: 5,837
Активность:
Еще можешь ставить высоту, если текущее значение больше от предыдущего на N. Высота будет меняться только при больших перепадах
Старый 25.05.2013, 15:26
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Borodach, во первых сделать плавное изменение высоты. Плавность сделать зависимой от значения перепада высоты.
В идеале, лучше перед стартом игры произвести анализ игровой зоны, индекс результатов расчета, и потом уже в ходе игры обращаться к этим готовым результатам. Для оперативного доступа к данным используйте хт.
В целом можете попробовать произвести расчеты, выгрузить их прелоадом и поместить в код, что бы каждый раз не нагружать карту загрузочными расчетами.
Старый 25.05.2013, 15:44
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 19:06.