skMesh.GetSocketWorldLocationAndRotation(SocketName, vLocation, rRotation);
if(skMesh != None && skMesh.GetSocketByName(SocketName) != None){
function Vector GetSocketLocation(Name SocketName)
Трассировка луча (Trace)Да-да, нам на помощь придет обычная трассировка луча. Но чтобы было удобно находить точки для трассировки, оружие должно быть выполнено в виде SkeletalMesh и к нему должны быть присоединены два сокета: один неподалеку от рукоятки холодного оружия, второй на кончике оружия. Тогда в коде мы легко сможем в любой момент определить положение этих сокетов в пространстве методом:
Проблема в том, что для холодного оружия в UDK нет встроенного механизма определения столкновений (коллизий collisions). Да и не только для холодного оружия. Вообще нельзя отдельно для прикрепленных объектов просчитать столкновение. Считается только один единственный Collision Cylinder для всего персонажа, а прикрепленные объекты теряют свои коллизионные примитивы, даже если они у них были. Все это справедливо для режима ходьбы (PHYS_Walking) так уж устроен движок Unreal Engine. Давайте разбираться, как это ограничение обойти.
Если огнестрельное оружие встроено в Unreal Development Kit (UDK) по умолчанию и может быть использовано в собственной игре практически без изменений (за исключением, разве что самой модели оружия), то с холодным оружием (ножами, мечами, палками, дубинками и кусками арматуры) придется повозиться самому.
Создание холодного оружия в UDK
Создание холодного оружия в UDK / Создание игр / Dimanjy
Комментариев нет:
Отправить комментарий