четверг, 7 февраля 2013 г.

прогграмма для создания холодного оружия

foreach TraceActors(class'Actor', aHitActor, vHitLocation, vHitNormal, vTraceEnd, vTraceStart)

// Ищем актеров, которых зацепили оружием

vTraceEnd = GetSocketLocation(nTipSocket); // для наконечника

vTraceStart = GetSocketLocation(nHiltSocket); // для рукоятки

// Определяем текущее положение сокетов оружия

local Vector vHitLocation, vHitNormal;

local Vector vTraceStart, vTraceEnd;

В функцию GetSocketLocation() передается имя сокета (его можно вынести в архетип, что позволит более гибко настраивать холодное оружие прямо в редакторе UnrealEd UDK), и определяются его координаты. Теперь мы можем использовать стандартный метод TraceActors() для нахождения объектов, которые пересекает в данный момент наше холодное оружие:

skMesh.GetSocketWorldLocationAndRotation(SocketName, vLocation, rRotation);

if(skMesh != None && skMesh.GetSocketByName(SocketName) != None){

skMesh = SkeletalMeshComponent(Mesh);

local SkeletalMeshComponent skMesh;

function Vector GetSocketLocation(Name SocketName)

Трассировка луча (Trace)Да-да, нам на помощь придет обычная трассировка луча. Но чтобы было удобно находить точки для трассировки, оружие должно быть выполнено в виде SkeletalMesh и к нему должны быть присоединены два сокета: один неподалеку от рукоятки холодного оружия, второй на кончике оружия. Тогда в коде мы легко сможем в любой момент определить положение этих сокетов в пространстве методом:

Проблема в том, что для холодного оружия в UDK нет встроенного механизма определения столкновений (коллизий collisions). Да и не только для холодного оружия. Вообще нельзя отдельно для прикрепленных объектов просчитать столкновение. Считается только один единственный Collision Cylinder для всего персонажа, а прикрепленные объекты теряют свои коллизионные примитивы, даже если они у них были. Все это справедливо для режима ходьбы (PHYS_Walking) так уж устроен движок Unreal Engine. Давайте разбираться, как это ограничение обойти.

Если огнестрельное оружие встроено в Unreal Development Kit (UDK) по умолчанию и может быть использовано в собственной игре практически без изменений (за исключением, разве что самой модели оружия), то с холодным оружием (ножами, мечами, палками, дубинками и кусками арматуры) придется повозиться самому.

Создание холодного оружия в UDK

ВойтиЗапомнить меня

Логин или эл. почта

Создание холодного оружия в UDK / Создание игр / Dimanjy

Комментариев нет:

Отправить комментарий