Source как сделать воду

Source как сделать воду

Source SDK короткий FAQ:

Меню Source SDK:

VHE (Valve Hammer Editor):

Окна в VHE (стандартно они расположены так):

1.Camera
2.Top
3.Front
4.Right
Model Viewer:

Face Poser:

Вопросы по SDK:

Q: Чем отличается материал от текстуры?
A: Текстура это изображение. Материал — его свойства, такие как фактура, из которой сделана данная текстура (например дерево), описание
используемых шейдеров (Shaders), кубмапов (Cubemaps) и так далее.
У текстуры расширение *.vtf (Valve Texture Format), а у материала *.vmt
(Valve Material).

Q: Что такое вертекс?
A: Вертекс (Vertex) — это вершина, которую в VHE можно только перемещать с помощью Vertex Tool. Но при нарушении правильности форм полигонов появляется ошибка: Invalid solid structure.

A: Что такое полигон?
Q: Полигон это совокупность 3х вертексов — пространственнй треугольник. Сам по себе в маппинге не употребляется.

A: Что такое Фэйс?
Q: Фэйс это одна из сторон браша.

A: Что такое браш?
Q: Браш (Brush) — одна элементарная (простейшая) единица VHE, примитив, используемый для создания сложных объектов, может быть квадратом, трубой, стеной или чем угодно.

Q: Как создать браш?
A: Слева на панели инструментов вы можете найти инструмент Brush Tool, с помощью которого в 2D виде вы сможете создать браш.После того как вы определили размеры браша нужно нажать Enter что бы создать его.

Q: Что такое parent и когда его использовать?
A: Parent (Родитель) — это параметр энтити. В Spirit of Half-Life был
похожий move with. Если для первой энтити указать тут имя второй
энтити, то после компиляции первая энтитя будет двигаться вместе со
второй (но не наоборот). Причём будет всё движение выглядеть так, будто
обе энтити являются одним целым. Использовать этот параметр надо только
с динамическими энтитями (которые могут менять своё положение), в
противном случае, могут возникнуть непредсказуемые ошибки.

Q: Как сделать купол. ну всмыле чего-нибудь круглое ?
A: Моделью. Только моделью. Через prop_static. У вас не получится создать брашевый полый купол.

Q: Как мне сделать огонь/пар/взрыв?
A: Если вы хоть как-то знаете английский, то не сложно будет понять что например env_fire это энтитя для создания огня. Вообще большинство
эффектов имеет приставку env_.

Если же познаний в языке у вас нет, то вам потребуется любой электронный переводчик, либо словарь.

Q: А как класть на пол ковры?
A: Используйте decals tool. Вы найдёте его на панели инструментов слева.

Читайте также:  Куда положить воду при беге

Q: Как сделать воду, а то она у меня не видимая , а предметы в ней плавают.
A: Вы компилируете без vvis.exe, либо у вас на карте есть leak’и, и vvis.exe не может обработать карту.

Смотрите лог компила.

Q: Что такое leak и как с ним бороться?
A: Leak это «дырка» в безконечность. Для того что бы найти Лик необходимо
нажать Map->Load point file, затем следуя за красной линией вы без
труда найдёте место утечки.

Помните, что лик может быть не один.

Q: Как сделать комбиновские ворота (т.е. сначала определенное время
проигрывается анимация открытия, потом ворота станвятся открытыми)?
A: Используйте prop_dynamic. С помощью системы I/O(Inputs/Outputs) вы сможете задать им параметр SetAnimation и вписать нужную
анимацию.(анимацию вы сможете посмотреть в вкладке model у модели
ворот)

Q: Как поставить на карту арбузы, огнеопасные бочки и прочие подобные объекты? Просто через prop_physics, верно?

Если да, то где там их модели?

A: Да, через prop_physics, в свойствах необходимо указать World Model. Большинство объектов мусора лежит в props_junk

Q: Как сделать дождик?
A: Используйте brush-entity func_precipitation

Вы легко сможете настроить её

Q: Как создать объёмный свет, например от прожектора?
A: вам необходимо использовать light_spot и point_spotlight

Q: Выдаются ошибки:

Error! To use model «./models/props_canal/boxcar_door.mdl»

with prop_static, it must be compiled with $staticprop!

Error loading studio model «./models/props_canal/boxcar_door.mdl»!

Ну и что мне делать?
A: Вы забыли про ещё один тип объектов — prop_dynamic.

Хотя в данном случае вам подойдёт объект prop_door_rotating

Q: C какими параметрами запускать тестовй компил — так чтобы компилил без эффектов и света, а то мне тока геометрию и триггеры проверить надо.
A: Советую вам перейти на expert-режим компилирования(При компиляции слева внизу есть кнопка), затем убрать галочки у vvis.exe, vrad.exe.

Либо если вы находитесь в normal-режиме, то поставить vvis — no, vrad — no.

Q: Подскажите,как сделать чтобы при попадании в огонь получать повреждения,по моему это триггером делаеться.
A: Это вы можете сделать в свойствах огня. Поле Damage.

А вообще повреждение игроку наносит trigger_hurt

Q: Какой текстурой триггер то красить?
A: Текстурой tools/trigger

Q: Как проигрывать анимацию у НПЦ(NPC)?
A: Для этого необходимо создать сценку в Face Poser, либо использовать scripted_sequrence. Я думаю вы без труда найдёте у него поле Action Animation.

Q: Как поставить на карту cинюю Гравипушку(которую Фриман использовал в цитадели)?
A: Использовать env_global и установить значиние глобальной переменной на Enable Super Physcannon

Q: В начале игры мне понравились эффекты. Я хочу поставить на свою карту такой эффект, чтобы все было черно-белым, как это сделать?
A: Существует консольная комманда mat_yuv, с помощью неё изображение можно сделать чёрно-белым. Что бы использовать любую команду из игры, необходимо применить энтитю point_servercommand, я думаю вы без труда с ней разберётесь.

Читайте также:  Парфюмерная вода juicy couture majestic woods

Сайты рекомендуемые для просмотра:

Спасибо за Вопрос\Ответ:
Fenix

Источник

Source Modding — Часть 1 — Основы основ

В мире существует множество игровых движков, но нет ни одного движка, похожего на Source своей историей и особенностями.

В этом (пилотном) уроке мы разберем простейшие действия с исходными кодами SDK, а также внесем наше первое изменение в код Half-Life 2.

Вступление

Немножко терминов

Сам по себе Source SDK — набор утилит и программ, помогающих в разработке собственных уровней и модификаций для игры, а также исходные коды Half-Life 2 и эпизодов.

Игра/Мод (Для сурса нет никакой разницы, игра это или мод :p) — скомпилированные исходные коды SDK.

Так почему же именно Source?!

Что нам необходимо?

Введение в сурс дела

Репозиторий

Исходный код SDK находится в репозитории на GitHub. Склонируйте его в любое удобное для вас место:

Выбор ветки

Если вы хотите написать свой первый мод для Half-Life 2/Episode 1/2, то используйте директорию sp/ и Source SDK Base 2013 Singleplayer.

Если же вы извращенец и хотите написать свой первый мод для Half-Life 2: Deathmatch, то используйте директорию mp/ и Source SDK Base 2013 Multiplayer.

ВАЖНО: Туториал будет рассматривать программирование под ветку SP, поэтому пути, содержащие hl2 в пересчете на MP могут содержать hl2mp вместо hl2 .

Стиль кода

Клиентские (client.dll) классы именуются с префиксом C_ , а серверные (server.dll) — с префиксом C :

Поля класса именуются с префиксом m_, использование венгерской нотации рекомендуется (на то есть свои причины, которые здесь обсуждать нет смысла):

Структура кода

SDK, так же как и движок, разделён на несколько частей.

  • client.dll
    Клиентская часть игры.
    Отвечает за рендеринг, предсказания и ввод.
    Расположена: src/game/client/
  • server.dll
    Серверная часть игры.
    Отвечает за игровую логику, ИИ и т.д.
    Расположена: src/game/server/
  • tier1.lib
    Библиотека, содержащая в себе множество полезных фич, например UTL («валвовская» версия STL), interface convention и т.д.
    Расположена: src/tier1/
  • raytrace.lib
    Библиотека, внезапно содержащая в себе функции и типы, предназначенные для рейтрейсинга. Честно говоря, я так и не понял, что библиотека для компиляторов делает здесь.
    Используется компилятором vrad и, судя по утечкам исходных кодов, редактором уровней Valve Hammer Editor.
    Расположена: src/raytrace/
  • mathlib.lib
    Библиотека, содержащая в себе множество типов и функций, используемых в «повседневной» математике Source.
    Расположена: src/mathlib/
  • vgui_controls.lib
    Библиотека, содержащая в себе реализации разных элементов (кнопки, панели) VGUI2.
    Используется почти повсеместно.
    Расположена: src/vgui2/vgui_controls/

Source SDK имеет свой генератор проектов (sln, Makefile, etc.) с блэкджеком и… кхм…
Называется он Valve Project Creator и находится в src/devtools/bin .

Проекты генерируются автоматически с использованием специальных .VPC файлов. Синтаксис этих файлов прост до безобразия — простой набор пар ключ-значение.

Вот пути до некоторых таких файлов:

ВАЖНО: При внесении ЛЮБЫХ изменений в VPC файл решение должно быть заново перегенерировано!

Генерация проектов

Проекты генерируются вызовом скрипта, расположенного в директории src/ .
В самом простом случае — достаточно просто открыть src/creategameprojects.bat .
После генерации в src/ будет находиться games.sln.

Читайте также:  Что будет с двигателем если закипела вода

Исключение HL2

SDK имеет внутри себя также разделение на HL2 и Episodic. Использование второго позволит нам иметь некоторые фичи, например отдельную от стамины шкалу заряда фонарика.

И поэтому, чтобы не компилировать лишний код, мы можем просто исключить HL2 из скриптов:

  1. Откройте src/creategameprojects.bat в любом текстовом редакторе.
  2. Удалите из командной строки часть /hl2
  3. Сохраните файл и сгенерируйте проект.

Другие скрипты

Рядом с creategameprojects.bat также лежит его клон для bash а также два интересных файла — createallprojects.bat и его клон для bash.

Эти два скрипта заставляют VPC создавать проекты не только для чистых библиотек мода, но и для различных утилит, таких как vrad (Radiosity!) или height2normal.

Сейчас использовать я его вам настоятельно не рекомендую, так как свои собственные компиляторы карт нам пока не нужны.

Первичная сборка и запуск

Сборка

Чтобы удостовериться, что вы всё сделали правильно, необходимо собрать всё сгенерированное решение. Итак, собираем (вы же ведь открыли решение в IDE?):

  1. Переключите конфигурацию в Release.
    ВАЖНО: При сборке в Debug мод крайне нестабилен.
  2. Соберите ВСЁ решение (F6)
  3. Если сборка закончилась с ошибками, повторите шаг 2.
  4. Если ошибки повторяются, пересоздайте проекты (creategameprojects) и повторите все шаги начиная с 1.

После сборки в папке game/mod_hl2/bin/ или game/mod_episodic/bin/ должны появится наши клиентская и серверная библиотеки!

Запуск — Способ 1 — Steam

Запуск — Способ 2 — Visual Studio

Я рекомендую использовать именно этот способ — не копировать же бинарники мода каждый раз после сборки!

  1. Заходим в свойства проекта (не решения. ) во вкладку Debugging
  2. В поле Command вписываем:
  3. В поле Working Directory вписываем:
  4. В поле Command Arguments вписываем:
  5. Сохраняем, запускаем (F5)!
  6. Запускаем, в консоли запускаем карту sdk_vehicles (SP) или dm_lockdown (MP)

Если карта загрузилась и вы можете передвигаться и двигать камеру мышью — сборка успешна!

Первая модификация в коде

Функции семейства Msg()

Функции Msg() , DevMsg() , Warning() , DevWarning() и ConColorMsg() являются чем-то вроде классического printf() , но в мире программирования под Source SDK. Эти функции так или иначе выводят какой-то текст в консоль разработчика и debug output.

Говорящий пистолет!

Давайте научим пистолет писать сообщение с количеством патронов в магазине:

  1. Откройте src/game/server/hl2/weapon_pistol.cpp ( Server (Episodic/HL2)/HL2 DLL/weapon_pistol.cpp )
  2. Найдите там метод void CWeaponPistol::PrimaryAttack( void ) (Где-то вокруг строки 255)
  3. Аккурат после строчки BaseClass::PrimaryAttack(); добавьте какое-нибудь сообщение, например:
  4. Соберите мод, запустите и откройте карту
  5. Поскольку мы писали в аргументы -dev , чит-команды включены по умолчанию, поэтому пишите в консоль пресловутый impulse 101 и пробуйте стрелять из пистолета!

Заключение

Чему мы научились?

[Я надеюсь, что] из данного урока мы выяснили:

  • Что вообще такое Source SDK и с чем его едят
  • Как генерировать проекты используя VPC
  • Как печатать что-то в консоль разработчика

Что дальше?

Во второй части мы разберем систему сущностей Source SDK.

Источник

Оцените статью
Добавить комментарий