Недокументовані особливості half-life

Недокументовані особливості гри Half-Life

Недокументовані особливості half-life
Недокументовані особливості half-life
Недокументовані особливості half-life
Недокументовані особливості half-life

Працює техніка Тіньових обсягів або техніка "Shadow volume"
Недокументовані особливості half-life
Недокументовані особливості half-life
Недокументовані особливості half-life
Недокументовані особливості half-life

тіні

@PointClass base (Targetname, RenderFxChoices, Angles) size (-16 -16 -16, 16 16 16) = dynamic_light. "Dynamic Light Effect"
[
LightName (target_source). "Name of Light"
framestart (integer). "Starting Frame". 0
spawnflags (flags) =
[
1. "Start On". 0
32: "Toggle". 0
]
]

Доповнення від Buzer і ObaGlaza: сам динамічний світ можна зробити простіше - білий динамічне світло включається при завданні Недокументовані параметра effects = 4 або effects = 8 в точкової або брашевих ентіте. Наприклад, він буде рухатися разом з центром координат рухомого невидимого func_train з параметром effects = 4.


Об'ємне освітлення Початок те ж саме. Пишемо в ваш файл .fgd:

@PointClass base (Targetname, RenderFxChoices, Angles) size (-16 -16 -16, 16 16 16) = volume_light. "Volume Light Effect"
[
LightName (target_source). "Name of Light"
TargetName (target_name). "Name of Target"
conesize (integer). "Size of cone". 30
Fx_amount (integer). "Opaque". 255
Render_mode (fRender_mode). "Render Mode"
spawnflags (flags) =
[
1. "Start On". 0
32. "Not Solid". 0
64: "Toggle". 0
]
]

Використання не набагато складніше. Lightname - джерело світла. В даному випадку можна використовувати info_target.
Targetname - точка, куди буде проектуватися об'ємний промінь світла.
Conesize - кут розбіжності променів.

"Або" - ". Створюємо Solid - блок func_illusionary і затекстуріваем його цієї текстурою. В поле content встановлюємо замість solid значення fog (?). Об'ємний туман готовий. Але це ще не все. Потрібно налаштувати параметри туману на карті. Для цього використовуються map_environment і game_environment. Вас повинні цікавити такі поля:
  • falloff (загасання),
  • Fx_color (колір туману),
  • Fx_amount (прозорість туману),
  • fog_density (його щільність)

Мабуть, єдиний момент, коли застосовувався динамічний прорахунок зіткнень - це в грі Blue shift - момент з двома котяться котушками з кабелем на платформі:

Реалізувати подібну фізику досить складно, але все-таки можна. Насамперед розставте на карті досить info_target - краще в кутах сітки і надайте їм яке-небудь однакове ім'я. Потім розставте на підлозі рівною площиною 10-12 info_node з тими ж іменами. Тепер поставте якусь полицю і на ній коробки (зробіть їх ентітей func_pushable), в поле target яких слід вказати ім'я вузлів. Наступний крок - FGD файл, куди слід дописати вже

@PointClass base (Targetname, RenderFxChoices, Angles) size (-16 -16 -16, 16 16 16) = dynamic. "Dynamic physic controller"
[
spawnflags (flags) =
[
1. "Enabled". 0
]
]

Додаємо на карту цей самий dynamic і встановлюємо прапорець.
Тепер, запустивши гру, ви зможете побачити, як коробки від удару злітають і смішно відскакують один від одного і від статі. Скрінка додається.

Схожі статті