Камера надо специальная и хождение по стрелкам надо (можно и без этого)
Вот 3д камера которую я сам использую
Code
function Trig_CameraOsnovnaya_Actions takes nothing returns nothing
local location p
local real HeroPosition
//<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<>>>>>>>>>>>>>>><<<<<<<<<<<<<>>>
// В общем основная камера>
//<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>
set p = (GetUnitLoc(udg_Hero)) //глобальная переменная типа боевая ед.
set HeroPosition = GetLocationZ(p)
call SelectUnitSingle( udg_Hero )
call SetCameraTargetControllerNoZForPlayer( Player(0), udg_Hero, 0.00, 0.00, false )
call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_TARGET_DISTANCE, 900.00, 0.25 )
call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_ZOFFSET, HeroPosition, 0.25 )
call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_ROTATION, GetUnitFacing(udg_Hero), 1.70 )// поворот камеры (по лицу юнита)
call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_ANGLE_OF_ATTACK, -27.00, 0.25 )
call RemoveLocation(p)
if ((HeroPosition >=300) and (HeroPosition <=1500)) then // Для того , чтобы камера нормально работала на возвышенностях, склонах и мостах
call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_ZOFFSET, HeroPosition*0.5, 0.25) // корректируем границу высот
call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_ANGLE_OF_ATTACK, -33.00, 0.25 ) //корректируем угол атаки
call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_TARGET_DISTANCE, 650.00, 0.25 ) // корректируем расстояние
call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_FIELD_OF_VIEW, 85.00, 0 ) // корректируем границу обзора
endif
endfunction
// В принципе можно и больше подккоректировать (расстояние,видимость и т.д...), но мне вполне хватило и этого
//===========================================================================
function InitTrig_CameraOsnovnaya takes nothing returns nothing
set gg_trg_CameraOsnovnaya = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_CameraOsnovnaya, 0.20 )
call TriggerAddAction( gg_trg_CameraOsnovnaya, function Trig_CameraOsnovnaya_Actions )
endfunction