Сповіщення
Очистити все

Вчимося підвішувати об'єкти


Ранг:
Майстер
Роль:
Гість
Записи:
752
Приєднався:
7 місяців тому
 

Вступ

Сьогодні ми навчимося робити щось висить. Отже, ми готові щось повісити, для цього потрібно: LevelEditor, якась карта (я взяв приклад АТП), дві не дуже криві руки, і обов'язково голова з присутніми всередині мізками. Ну що ж, сьогодні ми вішатимемо ... ні, не нашого сусіда (але якщо у вас є його модель ...), сьогодні ми повісимо лампу, так, звичайну лампу на дроті.

Приступаємо до роботи

Легким рухом руки, акуратно запускаємо наш Левел Едитор і відкриваємо карту. Якщо ви ще не знаєте як переміщатися по едитор то кажу:

  • Shift + mouse1 = ліворуч, праворуч, вперед, назад.
  • Shift + mouse2 = вгору, вгору
  • Shift + mouse2 + mouse1 = обертання.

Знаходимо затишний куточок або місце куди ми надалі повісимо нашу лампу чи сусіда 🙂

Шукаємо відповідне місце
 
Тепер нам потрібно додати об'єкт. Робиться це так, У свитку Edit mode заходимо в Spawn Elements-> Physics-> Hanging Lamp. А якщо хочете підвішувати простий об'єкт то юзайте Spawn Elements-> Physics-> Object Це і є основа нашої дрібнички, що бовтається. Співаємо ентити на землю, попередньо натиснувши кнопочку Add.

Тепер нам потрібно перемістити недбайливу лампу (або сусіда) у місце передбачуваного повішення. Це робиться так, на панелі інструментів натискається кнопка Move. Далі ентити можна переміщати по трьох осях:

1. X – ліво, право                                
2. Y - вгору, вниз
3. Z - вперед, назад
4. ZX - ліво, право, вперед, назад

Насправді напрямок переміщення залежить від орієнтації камери, тому дивимося в лівому нижньому кутку на осі. Прим. редактора --Neo][ 10:52, 15 травня 2007 (MSD) Ще об'єкти можна обертати, по тим же горезвісним осям Ось, ми поставили нашу ентіті приблизно як нам потрібно, чому приблизно, та тому що остаточно ми поставимо, коли буде обрано тіло. Ви запитаєте, як його вибрати? Для цього відкриємо властивості об'єкта Hanging Lamp, щоб це зробити клацаємо по об'єкту ПКМ і вибираємо Properties (або натисканням клавіші "Enter", прим. редактора).

Поля, які нас цікавлять, підкреслені на картинці. Перше поле Visual, клацанням по ньому відкриваємо діалог Select Visual, в якому вибирається модель, яка бовтатиметься. Я обрав lampa_galogen_4.
 
 

Наступне поле це Fixed, клацанням по ньому відкриваємо діалог Select Skeleton Bones, у якому вибираємо зафіксовані кістки. Тобто, ці кістки стоять як укопані, інші ж вільно бовтаються у межах належних лімітів. Відповідно вибираємо кістки, являють собою місця кріплення для об'єкта.

Наступне поле, яке нас цікавить, це Physics, ставимо галочку навпроти нього, якщо цього не зробити, то наша лампа не смикнеться навіть під дулом пістолета:) Ще можна поставити Cast Shadow, щоб світло лампи відігравало тіні.

У сувої Lights > Main клацаємо по полю Bone, відкриється вже відомий нам діалог Select Skeleton Bones, в якому вибираємо кістку, до якої прикріпиться світло. Вибираємо bone_lamp.

Завершення роботи

Тепер коли ми бачимо модель лампи, світло світитиме звідти, звідки треба, а не з дроту, і наша лампа не впаде на землю, тому що ми зафіксували кістки, можна перенести лампу туди, де вона спокійнісінько бовтатиметься. Головне, щоб лампа не залазила в ігрову геометрію, щоб це зробити можна відключити Moving Snap Toggle, це прибере прив'язку і лампу можна буде делікатно підсунути туди, де їй зручніше бовтатися. Якщо ж залишити лампу в геометрії то при пострілі вашу карту наповнять звуки м'яса, що тріпочеться. Справа в тому, що лампи за своєю природою дуже розумні, вони знають, що знаходження будь-якого фізичного об'єкта в геометрії може призвести до Penetration Error, а потім і до кріша, тому лампа починає відчайдушно вивільнятися з полігонального капкана.

Тепер потрібно відбілдити та відкомпилити нашу карту:

  • Лезем у Scene > Options, сувій Build options, поле level path, у стовпці value пишемо ім'я нашої карти.
  • Далі ліземо в Compile > Build. Складання картки завершено.
  • Далі робимо батник, зміст:
@start bins\compiler\xrLC.exe -f "ім'я, яке ви вписали в level path"

Карта відкомпільована. Настав час глянути на нашу працю. Робимо батник:

bin\xr_3da.exe -start server(<ім'я рівня>/deathmatch) client(localhost)

   
Цитата