Възпроизвеждане на Source SDK, задействания
След като прочетете нашия първи урок за Source SDK, вече трябва да сте запознати с основните функции на Hammer: да можете да използвате блокове за създаване на стаи, промяна на текстури и поставяне на модели на картата. Вашето ниво обаче все още оставя много да се желае, така че нека започнем да разглеждаме тригерите, за да добавим малко интерактивност. По-нататък как да създадете тригер за стартиране и спиране на събития, както и за промяна на свойствата на обекти.
Тригерите са специални невидими блокове, които се "задействат" при контакт с играч или друг обект, причинявайки определен ефект или изпращайки сигнал до друг обект. Нека започнем с най-простото - създайте тригер trigger_once. Първо ще ви трябва проста стая и коридор, можете да използвате картата, останала от последния урок.
Създаване на тригер
До изображението на текущата текстура щракнете върху бутона Преглед и въведете „инструменти“ във филтъра. Ще получите списък със специални материали, необходими за различни ефекти. Повечето имена говорят сами за себе си. Изберете материала на инструмента. Сега използвайте Block Tool, за да създадете блок от този материал, за да блокирате преминаването към коридора. Засега това е статичен блок без ефекти. За да му дадете функции, трябва да свържете блока с обекта. Най-лесният начин да направите това е да го изберете с инструмента за избор и натиснете Ctrl+T или щракнете с десния бутон върху него в 2D изгледа и изберете Свързване с обект.
Отваря се прозорецът Свойства на обекта. „Блокиращият обект“, който беше вашият блок по подразбиране, ще се промени на func_detail, много полезен обект, който ви позволява да запълвате картата с малки детайли, които не блокират изгледа, но не е нужно да мислим за това точно сега. Изберете trigger_once от падащия списък Class и щракнете върху Apply.
Нека се приближимНека да погледнем този прозорец. Първият раздел, Class Info, съдържа основните настройки за обекта. Добра идея е да присвоите име на обект, с което другите обекти да го препращат, но в нашия случай името няма да е полезно. Името на филтъра е удобен начин за филтриране на обектите, които причиняват задействане на тригера. Например, когато играчът трябва да намери физически обект, като зъбно колело или батерия, може да се използва тригер за идентифициране на модели с желаното име. Нека да преминем към следващите два раздела: Изходи (изходящи сигнали) и Входове (входящи сигнали). В момента те са празни, но ще се върнем тук, за да накараме тригера да направи нещо. Разделът Флагове съдържа допълнителни опции за обекти.
Сега трябва да зададем някакво действие на тригера. Като пример, нека активираме музиката да се възпроизвежда, когато играчът върви по коридора. Обектът за възпроизвеждане на звук в Source се нарича ambient_generic, нека го създадем. Обектът трябва да бъде поставен там, откъдето трябва да идва звукът. Двойното щракване върху обект в 3D изгледа ще отвори прозореца Свойства на обекта. Ще бъде полезно да дадете на обекта подходящо име, като corridor_sound. След това изберете полето Име на звука и щракнете върху Преглед, за да изберете звук. Отново можете да използвате филтър, за да стесните опциите. Внимавайте, някои звуци са настроени да се повтарят автоматично. Не е нужно да се тревожим за останалите опции тук, но можете да намерите някои полезни настройки в раздела Флагове.
Входящи и изходящи сигнали
Сега всичко, което трябва да направим, е да свържем спусъка към звука. Връщаме се към свойствата trigger_once в раздела Изходи и щракнете върху Добавяне. Тук трябва да попълните няколко полета, но не се притеснявайте, всичко е съвсем очевидно. В първото поле посочете какво трябва да се обадиизходящ сигнал, в нашия случай изберете OnTrigger. Целевият обект е обектът, към който е насочен изходът, ние го наричаме corridor_sound. В падащия списък Чрез този вход можете да видите всичко, което целевият обект е в състояние да направи. Имаме нужда от PlaySound. Полето за замяна на параметри няма да е налично, защото не се нуждаем от допълнителни настройки тук. По желание в следващото поле можете да добавите забавяне между активирането на тригера и ефекта. Щракнете върху Приложи и това е! Можете да отидете в раздела Inputs на свойствата на ambient_generic обекта и да видите входящия сигнал от вашия тригер там. Ако съставите картата и тръгнете по коридора, ще чуете зададения звук.
Съгласно този принцип почти всички сложни събития се създават в Source. Всички те се управляват от комбинация от обекти с тригери и техните изходящи сигнали. С помощта на обектите logic_ и math_ можете да създавате редуващи се събития, броячи, таймери и много други. В Source всеки обект се управлява от входящи и изходящи сигнали.
Други примери
автоматична врата
В този пример блоковият обект func_door се управлява от trigger_multiple. Всеки път, когато играчът докосне спусъка, вратата ще се отвори. Когато играчът напусне задействаната зона, изходящият сигнал OnEndTouch се включва и вратата се затваря.
Край на играта
Това е лесен начин да завършите правилно играта на картата. Когато „победите шефа“ (убиете хедкраба), смъртта му задейства логическо реле, обект, способен да контролира множество изходящи сигнали. Това от своя страна задейства изходящ сигнал към обекта env_fade, затъмнявайки екрана. Game_text също се задейства, показвайки съобщение за победа. И накрая, след забавянето, обектът се задействаточка_клиентска команда. Този обект активира конзолни команди, в нашия случай командата за прекъсване на връзката, която изпраща играча в главното меню.