23 ноября 2005
Обновлено 17.05.2023

Горячая линия: игрострой

Горячая линия: игрострой - изображение обложка

24 часа в сутки вопросы по созданию, модифицированию и вскрытию игр принимаются на адрес gamedev@igromania.ru

Я неоднократно встречал термин “процедурные текстуры”, но так и не нашел нигде описания, что это за звери такие и в каких случаях используются. Чем они отличаются от обычных текстур, которые используются в играх, или это они и есть?

Большинство из вас видели так называемые демки. Не демо-версии игр, а маленькие фантастически красивые трехмерные анимации, длящиеся иногда по несколько десятков минут. В частности, в них, когда на счету каждый байт, разработчики просто не могут использовать обычные текстуры, которые занимают слишком много места. Поэтому используются процедурные текстуры, генерируются по определенным фрактальным алгоритмам, что называется, на лету. Весят такие текстуры крайне мало — несколько уравнений и параметров, которые умещаются в десятки байт, а выглядят очень красиво.

При этом не следует думать, что процедурные текстуры чем-то хуже простых, нарисованных от руки. У них даже есть некоторые преимущества. Они могут неограниченно масштабироваться в реальном времени. Для них не нужны мип-уровни. Процедурные текстуры не занимают в оперативной памяти драгоценное место и “разворачиваются” только непосредственно перед рендерингом. Немудрено, что и разработчики компьютерных игр обратили на процедурные текстуры свое внимание, ведь они практически не занимают места на диске. “Процедурками” можно имитировать самые различные объекты: камни, траву, кору деревьев, мрамор, кирпичики домов, асфальт и даже стекло (благодаря тому, что текстуры такого типа создаются по так называемым шумовым алгоритмам Перлина ). До последнего времени рендер процедурных текстур был довольно ресурсоемкой задачей. Но не так давно появились специальные алгоритмы, заточенные под новейшие 3D-технологии, и это вселяет определенные надежды: не исключено, что через пару-тройку лет в играх вовсе не останется простых рисованных текстур, а все они будут заменены на процедурные.

В статьях в журнале вы часто используете термин “рендеринг”. “Рендерится сцена”, “отрендеренный полигон” и т.д. Но не могли бы вы подробно описать, что же на самом деле такое рендеринг?

Несмотря на то что термин “рендеринг” (или “рендер”) используется в игровом мире на каждом шагу, далеко не все геймеры отчетливо представляют себе, что же за ним скрывается на самом деле. Давайте разбираться.

После того как любая программа или игра создала на экране некую 3D-картинку, проходит совсем немного времени (буквально миллисекунды), как эта картинка оказывается у нас перед глазами — на экране монитора. Но не сама же она это делает?! Все верно, в обработке изображения, существующего изначально только в памяти компьютера, участвует железо и отчасти программный код. Все, что происходит с того момента, как картинка сформировалась в памяти компьютера, до того момента, как она будет выведена на экран, и называется рендерингом. В русском языке есть аналог этого термина — “визуализация”. Так что если вы где-то услышали, скажем, что “компьютер провел визуализацию”, то знайте: речь все о том же рендеринге. Сам же рендер состоит из множества этапов, описание которых займет множество страниц (но если вам интересно, спрашивайте, в ближайших номерах расскажем подробнее).

В статье “Создание модификаций для GTA: San Andreas” вы описывали, как переодеть персонажа. Но в качестве примера привели только один вид одежды. Но ведь в игре одежек значительно больше. Можно ли как-то использовать другие “прикиды”?

Дополнительные команды, с помощью которых вы можете переодевать персонажа, ориентируясь на теорию, изложенную в материале:

Форма полицейского: “policetr” “policetr”

Форма медика: “medictr” “medictr”

Одежка жителя сельской местности: “countrytr” “countrytr”

Одежка грабителя банков: “gimpleg” “gimpleg”

Одежда богатого мафиози: “pimptr” “pimptr”

Одежда официанта: “valet” “valet”

Я хотел бы сделать в San Andreas возможность стрелять из тяжелого оружия из различных транспортных средств. Есть ли такая возможность?

Вы знаете, что во многих миссиях употреблялась одна очень интересная команда, которая заставляла стрелять из пулеметов то или иное транспортное средство (обычно такими транспортными средствами были военные вертолеты)? Не знаете — тогда знайте, и знайте то, что никто не помешает вам использовать эту команду в своих целях: вы, например, без особого труда сможете превратить San Andreas во всем знакомый Twisted Metal, установив пулеметы на вражеские автомобили, или реализовать гонки со стрельбой по пересеченной местности. Пулеметы устанавливаются на авто (+вертолет/самолет/катер/мотоцикл) следующей командой:

0541: fire guns on vehicle $my_car

Где my_car — название транспортного средства, которое будет вести стрельбу из пулеметов. Есть одно маленькое “но”. Данная команда работает только в цикле с постановкой условия на живучесть вашего транспортного средства. Если оно уничтожено, то скрипт прекращает свою работу. Таким образом, сначала вы должны создать на карте транспортное средство, после создать подпрограмму Twisted_Metal , которая приведена чуть ниже (материал изложен в первой статье цикла).

:Twisted_Metal

0001: wait 0 ms

00D6: if 0

8119: NOT car $my_car wrecked

004D: jump if false ЈЈEnd_Twisted

0541: fire guns on vehicle $ my_car

0002: jump ЈЈTwisted_Metal

Можно ли как-то упростить продвижение транспортных средство на улицах San Andreas? Я хотел бы полностью переделать трафик, но, изменяя описанные в статье по SAMB параметры, мне удается только немного подкорректировать движение.

Умницы Rockstar максимально упростили создание путей движения для машин и пешеходов. Таким образом, мы имеем возможность прописать нужные координаты в специальные команды и пустить по ним наземное транспортное средство (авто, bmx или мотоцикл). Результатом проделанных действий станет практически идеальное движение машины/персонажа по игровой карте. Плюсы: не надо мучаться с проверками. Минусы: таковых не обнаружено. Приступим к созданию идеального движения при помощи SAMB.

Первым делом нужно выгрузить из памяти игры все имеющиеся пути, делается это командой:

05D6: clear_scmpath

После проделанной очистки приступаем к созданию путей:

05D7: add point to scmpath 372.0 -120.1 1000.5

372.0 -120.1 1000.5 — координаты точки, к которой должно ехать транспортное средство.

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

В случае с транспортным средством имеем:

06BB: AS assign scmpath to actor $PLAYER_ACTOR in car $my_car speed 50.0

PLAYER_ACTOR — имя персонажа, my_car — название машины, 50.0 — скорость движения машины в милях/час.

Для актеров все схоже:

05D8: AS_assign_scmpath to_actor $PLAYER_ACTOR flags 6 0

PLAYER_ACTOR — имя персонажа, которого вы собираетесь поместить на путь (эту манипуляцию можете проводить и с CJ-ем, использую имя актера, данное в команде).

Вопрос месяца

Можно ли как-то выдрать музыку из GTA: San Andreas, а то очень уж хочется послушать ее в отрыве от игры?

Серия GTA традиционно хороша своим музыкальным сопровождением. San Andreas в этом плане не исключение. Думаю, во время игры вы не раз задумывались о том, как бы вытащить музыку из игры. В этом случае вам на помощь придет утилита GTA: San Andreas Radio Extractor (берите ее с нашего диска ). Она проста и удобна в пользовании и к тому же русская. В программе реализован автоматический поиск игровых файлов — чтобы он заработал, перепишите Radio Extractor в папку с игрой и запускайте оттуда. Однако если по какой-то причине при запуске утилиты поиск не сработал и в программном окне верхнее поле для ввода осталось пустым, вам необходимо самостоятельно задать там путь к звуковым архивам игры. Он будет иметь следующий вид: < Каталог игры>\audio\streams. После этого выберите в нижней части окна один из нескольких вариантов компоновки композиций, звучащих по радио, и жмите на кнопку “ Извлечь! ”. Появившиеся на свет файлы будут иметь формат ogg (песни) и m3u (плей-листы радиостанций). Известный аудио- и видеопроигрыватель WinAmp понимает оба формата (учтите только, что с ogg -файлами работают только версии Full и Pro ), для других подобных программ необходим соответствующий плагин. Теперь вы можете в любое время слушать любимые треки из любимой же игры!

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь