Пожалуй многих интересует вопрос OpenWorld в UDK. Из-за отсутствия какой либо информации по данному вопросу в интернете решил выложить свои наработки. Всё что нужно трогать на начальной стадии программирования лежит в 2х файлах UCPawn и UCPlayerCamera Сперва текст изменённых файлов:
class HSPawn extends Pawn;
var DynamicLightEnvironmentComponent LightEnvironment;
Begin Object Name=CollisionCylinder //CollisionRadius=+0005.000000 //CollisionHeight=+0044.000000 CollisionRadius=+0011.000000 CollisionHeight=+0010.000000 End Object CylinderComponent=CollisionCylinder }
Файл UCPlayerCamera
class HSPlayerCamera extends Camera;
var Vector CamOffset; var float CameraZOffset; var float CameraScale, CurrentCameraScale; /** multiplier to default camera distance */ var float CameraScaleMin, CameraScaleMax;
function UpdateViewTarget(out TViewTarget OutVT, float DeltaTime) { local vector HitLocation, HitNormal; local CameraActor CamActor; local Pawn TPawn;
local vector CamStart, CamDirX, CamDirY, CamDirZ, CurrentCamOffset; local float DesiredCameraZOffset;
// Default FOV on viewtarget OutVT.POV.FOV = DefaultFOV;
// Viewing through a camera actor. CamActor = CameraActor(OutVT.Target); if( CamActor != None ) { CamActor.GetCameraView(DeltaTime, OutVT.POV);
// Grab aspect ratio from the CameraActor. bConstrainAspectRatio = bConstrainAspectRatio || CamActor.bConstrainAspectRatio; OutVT.AspectRatio = CamActor.AspectRatio;
// See if the CameraActor wants to override the PostProcess settings used. CamOverridePostProcessAlpha = CamActor.CamOverridePostProcessAlpha; CamPostProcessSettings = CamActor.CamOverridePostProcess; } else { TPawn = Pawn(OutVT.Target); // Give Pawn Viewtarget a chance to dictate the camera position. // If Pawn doesn't override the camera view, then we proceed with our own defaults if( TPawn == None || !TPawn.CalcCamera(DeltaTime, OutVT.POV.Location, OutVT.POV.Rotation, OutVT.POV.FOV) ) { /************************************** * Calculate third-person perspective * Borrowed from UTPawn implementation **************************************/ OutVT.POV.Rotation = PCOwner.Rotation; CamStart = TPawn.Location; CurrentCamOffset = CamOffset;
Добавлено (27 Июн 2016, 11:30) --------------------------------------------- <_< HS- мой тип игры меняйте на свой позже допишу и дооформлю
Добавлено (27 Июн 2016, 11:46) --------------------------------------------- Первая секция относится к перемещению персонажа: defaultproperties { WalkingPct=+0.4 CrouchedPct=+0.4 BaseEyeHeight=20.0 - Базовая высота глаз EyeHeight=20.0 - Высота глаз GroundSpeed=60.0 - Скорость пешком AirSpeed=220.0 - Скорость полёта WaterSpeed=110.0 - Скорость плаванья AccelRate=2048.0 JumpZ=200.0 - Высота прыжка CrouchHeight=15.0 CrouchRadius=10.5 WalkableFloorZ=0.1 - Скорость подъёма MaxStepHeight=8.0 - Высота "зашагивания" на объекты отсутствует в стандартном файле
Остальные можно не трогать ниже ищем //Scale=1.075 (значение по умолчанию) Scale=0.25 уменьшенное в 4 раза (примерно) Scaleотвечает за размер игрока Осталось подогнать физику коллизий: Строки Begin Object Name=CollisionCylinder CollisionRadius=+0011.000000 радиус цилиндра коллизии CollisionHeight=+0010.000000 высота цилиндра коллизии Так же нужно не забыть про строчку Translation=(Z=0.0) - она как то связана с камерой и высотой pivot самого игрока (пока не вдавался в подробности) Компилируем и смотрим что получилось :)
Одно НО весь игровой контент - перфабы придётся переделывать под новый размер будь то текстуры или материалы
Добавлено (27 Июн 2016, 13:26) --------------------------------------------- Если появились вопросы пишите с удовольствием отвечу.
Сообщение отредактировал Leshander - Пн, 27 Июн 2016, 13:25
Конечно существует, Unreal Engine 4 унаследовал всё из UDK просто улучшили интерфейс и аппаратные требования, меньше скриптов стало. Те кто ограничен в ресурсах продолжают пользоваться им, (это не о больших игровых студиях) широко применяется в образовании и GIS системах. Один его минус документация англоязычная и часть её до сих пор выдаётся только зарегистрированным разработчикам >( P.S. Работает куда шустрее при тех же возможностях в приведённом примере карта 1024 квадратных километра (стороны 32х32) масштаб реальный. Т.е. при скорости 5 км/час 32 километра (из угла в угол) можно пройти примерно за 6 часов игрового времени Не знаю чего его все побросали
Сообщение отредактировал Leshander - Вт, 28 Июн 2016, 10:15
UDK имело свой скриптовый язык, унаследованный от UE3/ новый UE его имеет? К UDK GUI можно было делать на flash, т.к. SclaeForm был бесплатный и интегрированный. UE 4 тоже? Вообще имхо - это все же новый движок и редактор -именно UE4, а не UDK. Хотя я уже давно не спец... Побросали из за сложности программирования не предусмотренных типов игр. На UDK легко и непринужденно можно было сделать шутер, а вот РПГ уже значительно сложнее. Думаю на UE то же самое. Ну и порог вхождения больше - следовательно школота в него так не лезет, как в Юнити.
UE4 скрипты тоже есть но уже с бооольшили изменениями и упрощениями, чтоб сделать что-то своё не стандартное танец с бубном обеспечен. Но начинающим и школьникам он привлекателен из-за простоты (просто -не значит хорошо, всегда программистам говорят) Так что UDK ещё живее всех живых, только русские сообщества все умирают Юнити тоже сперва страшный буду выкладывать на форуме что узнал и тд, может единомышленники подтянутся. Сейчас пытаюсь разобраться как в кисмет добавлять скрипты-заготовки, только ресурс power of kismet умер, собираю по крохам на сайте epic`ов если кто знает где можно глянуть в заранее благодарю за помощь.