Меню сайта
   Главная   
   Обо мне   
   Статьи   
   Дневник   
   Картинки   
   Файлы   
   Форум   
   Гостевая книга   

Категории раздела
Настольные игры [20]
Мои статьи [18]
Мои интересы [36]
Перепечатки [49]
GNU/Linux [14]
ZX-Spectrum [10]
Субмарины [9]


Каталог статей

Главная » Статьи » Мои статьи

О развитии игрового жанра 3d action (2/2)
Продолжение статьи. Читать первую часть...
    
В конце 90х годов ушедшего XX века, когда у меня ещё был Pentium первого поколения, а последними хитами жанра оставались такие игры, как Duke Nukem 3D, Quake II, Hexen II, я глубоко задумался о судьбе развития жанра 3D Action.
     К сожалению налицо было наращивание графики при зачаточном состоянии интерфейса игрового мира. Впрочем всё так и осталось до сегодняшнего дня за небольшим исключением. Все, или почти все исключения были мною предсказаны ещё в те годы, и тогда же большую их часть можно было реализовать на железе того времени.
     Почему я это знал, а весь мир потребителей и производителей отказывался это замечать - остаётся загадкой и характерным показателем основной массы человеческой породы. Как памятник медлительности прогресса, привожу две свои статьи, написанные в те годы.
     В своё время все они подверглись жесточайшей критике игровой общественности, что, однако, спустя годы не помешало критиковавшим воспринять как должное исключения, которые разработчики игр всё-таки удосужились внести в свои творения.

***

А теперь следующая статья. Это уже попытка разработки интерфейса игрового мира, и советы по его реализации.

Статья Вторая. 4 марта 2003 года.

***


Full reality project
v.04.03.03г. 09:18:04
3d action: работа над ошибками.


                                     Взаимодействие   игрока   с  виртуальным
                                     миром  должно  происходить не по готовым
                                     шаблонам,  а с использованием интерфейса
                                     высокой  степени  свободы,  позволяющего
                                     игроку   совершать  незапрограмированные
                                     движения и действия.


В  этой  статье  я опишу основные хронические недочёты игр от первого лица, и
предложу  свой  метод  их исправления.


Недочёты в FPS-играх.

  1. Отсутствие модели игрока. Есть  только  протезы рук с оружием, и максимум тень ( от чего интересно? =), неуместная  на  фоне  отсутствия  ног,  если взглянуть вниз. Со стороны игрок виден, но это не он, а лишь его проекция для других игроков в сетевой игре.
  2. Невозможность очевидных логических действий.
  3. Все  действия  заранее  запрограмированны,  а  это  значит, что хрупкая стеклянная  лампочка,  или  любой другой предмет, никогда не разобьётся, если это не описанно. А ведь всё учесть нельзя.


Решение

1. Модель игрока

1.1. Подвижная модель


Модель состоит  из отдельных частей, шарнирно соединённых между собой: головы с шеей, корпуса, таза, рук и ног. Последние две в свою очередь состоят из  предплечья, локтя, кисти, пальцев - для рук, и из бедра, голени, ступни - для  ног. Совокупность частей составляют модель. Части могут быть разъединены между  собой  взрывом,  сильным выстрелом. Виртуальную камеру помещаем внутрь головы в правый глаз, либо между ними. Обращаем внимание, что помещаем именно камеру внутрь головы, а не наоборот.

Подпрограмма "Спинной Мозг"

За  движение  всех частей тела отвечает подпрограмма "спинного мозга", вернее совокупность  системных скриптов для него. Ей (пдпрограмме) подаются основные и   сложные   команды  движения.  Основные  команды,  такие  как  движение  в пространстве, движут конечности модели в соответствии со строением и походкой человеческого  тела,  как это делает наш спинной мозг, при подаче ему простой команды  "идти".  Сложные  команды  -- позволяют выделывать сложные движения, невозможные   через  обычное  управление.  Активируются  при  соответствующем действии.    Действие    передаёт    соответствующий    скрипт   подпрограмме
спинного  мозга для выполнения. Таким образом можно принять любую позу, какую только  позволит  подвижная  модель.  Взятие  предметов, оружия, боеприпасов, перезарядка,  открытие  дверей,  итд. -- всё это делают системные скрипты для подпрограммы "Спинной Мозг" -- управляющей моделью.

Результаты:

У  игрока  реально  присутствует  тело,  это многократно увеличивает реализм, расширяет   сферу   возможных  действий,  избавляет  от  таких  проблем,  как синхронизация  подошв с поверхностью, анимация всевозможных действий, влияние на  тело  внешних факторов. Становятся возможны любые телодвижения, возможные для  степеней  свободы  игрока.  Их  не  надо програмирвовать дополнительными моделями,  анимациями.  Достаточно  лишь  скрипта,  описывающего  необходимые движения.  Скрипт  имеет  команды  для управления всеми частями тела, команды ввода  данных,  циклы,  условия,  итд.  Это  позволит создавать такие сложные
скрипты   (описаны   ниже)   наподобии   интерфейсов   "Подвижная   рука",  и "Фехтование".  Такие  скрипты  будут  встроенны  в  игру,  их  будет возможно редактировать   и   создавать.  Можно  будет  назначить   на   клавишу  любое телодвижение,  например  скрипт  "повернуться задом и похлопать себя по нему" (скажем  bind  "f"  "bodymoves=jopa.scr").  Становится  возможно  садиться  в кресло,  ложиться  на  кровать,  поиграться  с  девушкой :) И не надо никаких дополнительных   кнопок,   всё   действия   делаются  кнопкой  "использовать"
(заложенные  в  игру  действия  с  известными предметами), и забиндованной на скрипт кнопкой -- для своих оригинальных телодвижений.

Подробнее об частях тела

Голова


Может вертеться вверх и вниз, влево и право. Движением управляет мышь. То  есть  крутя  мышь  стоя  на месте игрок не вертиться всем телом, а крутит головой,  а  телом  поворачивается  лишь тогда, когда поворачивает головой до упора.  Крутя  мышь  влево/вправо  время движения, игрок поворачивается всем корпусом вслед за головой, голова поворачивается с небольшим опережением ног, ведь  разворачиваясь  на самом деле, человек слека непроизвольно поворачивает голову  в  сторону  разворота. Крутя вверх/винз при движении -- просто наклон
головы вверх/вниз на поверхности, и смена глубины в воде. К  сведению: голова действителньо вертится, так как камера закрепленна внутри неё, а не голова "привязана" к камере. На экране вы видете вид из глаз вашего героя,  а  не  его  проекцию  , наложенную на передний план, как это сейчас с руками под оружие.

Туловище

При  движении соблюдается движение плеч и таза - за это отвечает подпрограмма "спинного  мозга"  модели.  У  различных  моделей  разные подпрограммы -- для женских  например  с  усиленным  верчением  таза  :) При приседании, туловище сгибается и в поясе, где оно сочлененно с тазом.

Руки

Держат текущее оружие или ничего не держат. У рук есть пальцы, которые будут задействованны  "Интерфейсом  руки", который я рассмотрю ниже. У рук есть все степени свободы  настоящих рук - плечи, локти, кисти, пальцы. Вы не сможете их  все  произвольно задействовать  --  за  вас ими будет управлять "спинной мозг",   и   "интерфейс   руки"  -  продвинутая  система  ручного  управления конечностями.  Однако написав скрипт, можно будет задать им любые движения, и навесить  на  клавиши,  и при необходимости вы сможете принять любую позу.

Ноги

Используются  по  назначению,  имеют  все  степени  свободы  настоящих  ног - сгибание  у таза, в коленях, ступнях. Управляются "спинным мозгом" аналогично рукам.  Таким образом вы не двигаете всю модель, анимируя перебирание ногами, а  даёте команду движения подпрограмме "спинного мозга", которая двигает вашу модель  путём  перебирания  конечностями  (ногами).  Таким образом решается и проблема  синхронизации  ног с поверхностью (полом, землёй) а также позволяет 100%  вычислить  где  стоят  ваши  тапки,  в  отличии от всех других движков,
которые по определению "знают" только координаты всей модели. В частности это позволяет  более  реалистично работать с минными полями, при этом можно будет пройти в ширине ладони от мины, точно зная (и видя) куда ступит ваша нога.

Прочие придатки

Можно  реализовать  и  детородный  орган  :)  Активация  по "использовать" на девице.  При  этом  подпрограмме  "спинного мозга" передаётся соответствующий скрипт,  управляющий  вашим подвижным телом. Разумеется у девушки должна быть такая же модель со спинным мозгом, и соответствующий скрипт. (иначе это будет актом со статуей :)


Взаимодействия модели игрока с окружающим миром

Ранения и увечья


"Подвижная   модель",   состоящая   из   отдельных  частей  (голова,  тулово, конечности) при ранениях позволяет без дополнительной анимации, как в обычных играх,   отображать  всевозможные  ранения.  Каждая  часть  тела  может  быть отчленнёной при жизни или посмертно, в зависимости от важности для организма. Скин  (текстура)  части  тела  изменяется при соприкосновении с пулей, ножом, взрывной волной.

Изменение  при пулевом ранении -- на скин нагладывается спрайт дырки от пули, причём  он  не  "прилепливается"  к  скину, а рисуется на нём, чтобы не нужно было  его  всё  время просчитывать. Таким образом можно как угодно измываться над моделью, хоть бодиартом заняться.

Изменение  при  ножевом  ранении  --  на  скин  нагладывается спрайт ножевого ранения, разреза. Всё анологично пулевому.

Изменение   при   ожоге,   взрыве   --   на   скин  накладывается  затемнение точками поражённых участков, а ля как распылителем в paintbrush.

Кровотечение  --  при  пулевых и ножевых ранениях идёт кроветечение. Кровь -- это  тоже  раскрас  скина  части  тела, в которую полученно ранение. Сперва в красный   цвет   окрашиваеся   поверхность  вокруг  раны  на  ширину  пальца, окрашивается  постепенно,  а  не  мгновенно. Для реализма и созерцания. После чего  от  раны  вниз,  то  есть  к  земле, рисуются ручейки крови -- эмуляция истекания кровью.

В  зависимости от попадания, крови будет много или мало. Таким образом, можно попасть  в  любую  точку  тела,  и  в  любой его точке наделать дырок, а не в заранее  указанных  местах. Это также решит проблемы выборочного попадания -- можно всадить пулю или нож в любую часть тела -- голова, тулово, ноги-руки. И соответственно отнимается соответствующие количество "здоровья". Для тулова можно  разделить  степень  ранений  в  грудь  на  лёгкие и тяжёлые -- область сердца,  почек,  живота,  спинного  мозга  (  перешибли  пулей хребет, лежишь
парализованный,  а  враг  подходит  и  медленно, с чувством, добивает) Это не займёт  лишнего времени -- сразу фиксируются координаты попадания и переход к нужной  подпрограмме.  Кстати  при  попаданиях  в  некоторые места ниже пояса появляется   временная  неспособность  двигаться  --  включается  подпрограма "спинного мозга": "ой как мне больно!" -- визуально бедняга держится за пах и корячится -- можно смело добивать.

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


Падения, плаванье, и полёты от взрывной волны

Технология  "подвижной  модели"  позволяет  более  точно реализовать падение, плавание, и сеансы левитации :) при взрывных волнах.

Падение  на  землю  -- осуществляется корректно, с рассчётом "спинным мозгом" наклонов,  неровностей, и препятствий. Не пролетая сквозь бочки, и не врастая в стены. Тело может принимать все позы, которые позволяет ему его сочленения. То  есть  как и любая человеческая поза за исключением поз "Камасутры" :) При падении  назад,  если  за спиной стена -- тело сползает по ней, и может как и остаться  в  сидячем  положении,  так  и  сползти  дальше  в  лежачее -- либо расчитывается с учётом собственного движения и удара. Если удар - выстрел, то
сзади  за спиной размазывается по стене кровавое пятно ( не забыть раскрасить кровью сзади скин, в области выходного ранения, потоки крови смазать по скину вверх,  на стене дырка от пули) Также не забыть учитывать препятствия на пути тела,  то  есть ту же стену, чтобы упавший не "впечатался" в неё. При падении на  лестнице  тело  может  скатиться  с неё (сильный удар при движении), либо упасть на ней, повторив телом её наклон, а не врастая в неё.

Плавание. При плавании повторять движения пловца (заложить несколько стилей в спинной  мозг) причём при плавании на месте, подводном, и надводном -- разные (!)  стили  -- нагами на месте, с использованием рук, брассом по поверхности, по рыбьи под водой. От правильной реализации зависит как это будет выглядеть. Для  игрока  это  тоже  самое  движение  по  клаве  и мыши, но "спинной мозг" повторяет  все  движения  настоящего  пловца,  которые  не  только  видны  со стороны, но и видны пловцу, так как имеется единная модель игрока.

Полёт  от  взрывной  волны  --  пожалуй самое трудоёмкое и зрелищное действо. Часто  выглядит  довольно  убого  -  человек  подлетает  вверх без изменения вертикального  положения, перебирая ножками, как при ходьбе. Помимо  отображения  собственно  взрыва,  идёт  примитивный расчёт траектории полёта  тела  (взависимости  от  силы  и эпицентра целиком или по частям) При расчёте  учитываются факторы скорости и направления движения игрока, и сила и
эп.  взрыва.  После  этого  игрока  отшвыривает  по  этой  траектории, причём кувырком  (и  на  экране  тоже  всё  видно  кувырком, из глаз вашей модели -- разумеется). Кувыркание осуществляется во всех плоскостях, с болтанием руками и  ногами.  При  этом  может  (  по  rand)  выпасть  их рук оружие, и вещи из карманов,  игрок  может  временно  потерять  сознание (сильное ренение). Либо вообще,  если взрыв сильный, разрыв на кусочки согласно сочленениям подвижной модели, и раскиывание по територии. Представляю, как это красиво выглядит.

Движение

При   приседании  нет  автовозвращения  в  вертикальное  положение.  Управляя клавишами  "прыжок/присеcть"  можно менять своё пложение от вертикального, до полусогнутрого и полностью лежачего. В полусогнутом полежнии можно перебегать открытые пространства, предствляя собой меньшую мишень для снайпера. Из этого положения  можно как и упасть, и ползти, так и распрямиться и бежать. Клавиша "прыжок" в вертикальном положении приводит к прыжку. Лёжа не прыгают. Всё это может быть настраеваемо консольной командой.

Слово об интерфейсах

Интерфейсы  фехтования  и  подвижной  руки  реализуются через скриптовый язык прямого  управления  моделью,  что  позволяет  их  изменять и улучшать. Таким образом,  он  не  занимает  места  в  движке,  является  открытой системой, и полностью  переназначаем игроком. А также служит примером для написания своих интерфейсов,  вплоть до демонстраций приёмов карате и танцев обезьяннего самца в брачный период.


Интерфейс "Подвижная рука"

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

Интерфейс включается при нажатии и удержании заданной клавиши (например Alt), и активирует рабочую (правую для правши) руку. При занятых руках подпрограмма "спинной  мозг"  освобождает руки: нож в ножны, пистолет в кобуру, винтарь за спину.  Либо  оружие  перекладывается  в другую руку (левую для правши). Рука двигается  мышью  при  нажатой  клавише  активации  в  пределах  экрана,  при изменении  координат  рука  перемещяется  согласно  строению суставов, за чем следит  подпрограмма  анимации  "спинного  мозга".  Клавиши мыши работают как пальцы  --  левая  кнопка  - большой палец, правая -- оставшиеся четыре. Если есть  средняя  кнопка,  то  она  управляет отдельно указательным пальцем. При
взятии  различных предметов кисть руки сама занимает нужную плоскость (забота спинного  мозга)

При  отжатии  заданной  клавиши  рука  достаёт  отложенное  перед  активацией оружие, если его держала. Если при отжатии в руке находился поднятый предмет, то  он  в  ней  остаётся.  Это нужно для возможности переноски предметов, или изменения  рабочей  плоскости  руки. При хождении с предметом в руке в другой можно держать и использовать оружие, если оно не требует двух рук. Естественно что с занятыми руками по лестницам типа "стремянка" не поднимешься.

Учитывая что руки делятся на "левую и правую", можно перекладывать предметы и оружие  из  одной  в  другую (с левой руки правша стреляет хуже). Должны быть карманы,   куда   можно   положить   вещь   (полный   карман  накладывает  на модель бедра выпуклость - модель кармана), взглянув головой вниз на тулово, и активиров  интерфейс  руки.  Возможен  заплечный  рюкзак,  где  можно таскать барахло.  По клавишам: "[" и "]" перебирается содержимое (на HUD показывается список), по Enter рюкзак снимается, запускается туда рука, и вытаскивает вещь
и  используется. Долго? Да. На самом деле именно так. А для "кэша" используем карманы.  Кстати  запасные  рожки  таскаем  в разгрузке на груди. Подбираются рожки  руками,  не  вручную, автоматом, также кладутся в разгрузку. Достаются при  перезарядке,  опять же автоматом. Все эти манипуляции производятся через скрипт для "спинного мозга", это и избавляет игрока от рутины, и в тоже время визуализирует всё до мелочей. На то они и скрипты.


Интерфейс "Фехтование"

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

Далее  несколько  слов  об самом фехтовании. Оно делится на блоки, собственно удары,  и  более  сложные  удары  со всевозможными уходами (расматриваться не будет).
Блоки  (6  штук):  нижний  левый  и нижний правый, блоки ног, средний левый и правый - блоки корпуса, верхний левый и правый - блоки головы. Основные  удары  (6  штук):  По ногам слева и справа, По корпусу горизонально слева  и  справа,  По  голове сплеча слева и справа. Дополнительные удары: колющий удар в корпус

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

нижний левый угол экрана -- нижний блок левой ноги
нижний правый угол экрана -- нижний блок правой ноги
средний левый угол экрана -- блок левой части корпуса
средний правый угол экрана -- блок правой части корпуса
верхний левый угол экрана -- блок головы слева
верхний правый угол экрана -- блок головы справа

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

нижний левый угол экрана -- нижний удар по левой ноге
нижний  правый  угол  экрана -- нижний удар по правой ноге средний левый угол
экрана  --  удар по левой части корпуса средний правый угол экрана -- удар по
правой части корпуса верхний левый угол экрана -- удар по голове сверху слева
верхний правый угол экрана -- удар по голове сверху справа

Средняя кнопка мыши (если имеется) -- доп. удар. (колющий)

При отжатии кнопки активации фехтования мыши возвращается обычное управление. При  нажатой  кнопке  движения  мышью  только управляют оружием для блока или удара.

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

Оружие

Прицельный крестик будет только у игроков с HUD на голове (или у киборгов) HUD может разбиться или потерскаться от попаданий в лицо или от падения. Руки с оружием на уровне пояса не видны, если смотреть прямо, и это правильно. Так стреляют от бедра. Для прицельной стрельбы нужно взять цель на мушку. То есть поднести  оружие  на  уровень  глаз  -  становятся  видны  руки  с оружием, и совместить  цель  и прицельную планку оружия. Смена положения рук с оружием - от  бедра,  у  глаз,  на  вытянутой  руке - - спец клавишей, либо настроить и
забыть. Можно сделать и автонастрйоку -- при беге от бедра, на месте у глаз.

Снайперская винтовка с оптическим прицелом

При  выборе  этого  оружия, и активации дополнителньного режима ( увеличение) производится ПЛАВНОЕ подношение оптики к глазу, не мгновенное, и без рывков. Последовательно  оружие подносится к плечу, и голова приникает к окуляру. Эту "анимацию"  осуществляет подпрограмма "спинного мозга", манипулируя винтовкой В  РУКАХ  модели  игрока. В руках - это значит, что оружие не является ЧАСТЬЮ модели  игрока,  а  отдельной  вещью,  которую  он  держит в руках. И модель винтовки  лежащая  на  земле, и находящаяся в руках -- это одна и таже модель
оружия,  а  не  две  разных,  как  это во всех остальных движках ( не имеющих технологии  "Подвижная  модель".

Тело игрока

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

Враги и просто люди

Технология "толпа"

Для  отображения  сразу большого количества людей, например мирных жителей на деревенской  улице, может использоваться общая систеема поведения с элементом случайности марширута с фильтром от верчения и прыганья на месте, и привязкой к  некоему центру ( длина "верёвочки" по желанию) чтобы не разбегались. Также вместо  привязки  к  точке,  можно  задавать  маршеруты,  вдоль которых будет происходить псевдослучайное движение. Для эмуляции "умности" каждого из толпы в  отдельности,  при  акцентировании  на  нём  внимания  (в  поле  кадра) ему добавляются  дополнительные  ф-ция  логики  (только  пока  на  него смотрят). Например  при длительном смотрении на хорошенькую деваху, он останавливается, и  смотрит  на  вас, далее уж как вы себя поведёте. Либо если это громила, он направляется  к  вам  узнать,  почему  вы  на него уставились. А также прочие варианты  проявления "интеллекта" -- нестандартные движения ( поскальзывания, разговор  с  прохожими)  и  действия.  При  утрате  с вашей стороны внимания, персонажи  снова  действуют  по  примитивной программе (необязательно). Таким образом   толпа  остаётся  толпой,  одновременно  состоящей  из  индивидов  с "интеллектом".


Ландшафт

Технология "Огромные просторы"

Это  эмуляция  огромных  пространств  без  использования  фоновых  текстур с паралаксом.  Заключается в том, что имеется некое пространство, которое можно видеть, палить по нему, но нельзя туда попасть ( глубина пропасти например) Такая  технология  использовалась  в  кино  для  создания  панорам.  Делается уменьшенная  копия  удалённого  пространства,  к которому нельзя подойти. Это создаёт  иллюзию  удалённости.  Игрок  может  даже не догадываться об способе реализации  этой  технологии.  Всё дело в том, чтобы он не мог приблизиться к
этой  декорации,  или  забросить  туда  какой предмет для сравнения размеров. Данный  отрезок  карты  выделяется  в  отдельный  блок,  по  которому  движок опреденяет  что это "удалённый" объект. Определяет для того, чтобы все пули и ракеты   на   пути   к  нему  уменьшались  сообразно  удалению,  что  создаст пространственную глубину, даже если игрок начнёт палить туда. Уменьшать также следует  и  все живые объекты в этом блоке -- иначе их реальный размер выдаст всю  иммитацию.  Сфера  использования  технологии  --  фоны  для  краёв карт.
Например город, скалы, пропасти, глубины моря, небо и космос наконец.

Деревья

Реализация  деревьев  не  самое  последнее дело, и далеко не простое. Сначала учитывается, что дерево можно срубить, повалить, и от него останется ствол -- дерево  создаётся из сочленнёных моделей: ствол, ветки, массивы листьев. Порадовали деревья в MOHAA.

Вода, волны, и круги

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

Вода.   Саму   воду  можно  представить  в  виде  плоскости,  разделённой  на треугольники  размером с локоть (чем больше размер - тем неспокойней вода), с изменяемой  высотой  относительно  значения по умолчанию. Волнение происходит спонтанно,  что имитирует волнение воды. Количество треугольников и их размер калькулируется  на  лету  в  зависимости от FPS (либо настраиваемо - но могут быть тормоза).

Волны  делаются  из  более  сложных овальных форм, почерёдно превращаясь то в "холмы", то в "низины".

Круги  на  воде  делаются  путём  радиально расходящихся от места раздражения кругов в сечении слегка полукруглых над поверхностью воды. Количество кругов, длина  их  хода  --  в  зависимости от FPS (либо настраиваемо - но могут быть тормоза). Круги на воде должны расходиться от плывущего или идущего в ней персонажа, от его  точки  тела,  соприкасающейся  с  водой: ног, тулова, головы. И также от выстрелов. ( с фонтанчиками)

Снег и дождь

Должны  поддеживаться.  погодные  условия,  как  непрерывные  в течении всего уровня, так и временные - случайно и эпизодично. Снегопад должен заметать следы в снегу, наметать сугробы. Для этого следует написать  процедуру  создания  полигонов: сначала небольшое возвышение, потом сугроб.  Это  скрасит  плоскость  ландшафта,  который  кстати плоским делать
в любым случае не стоит.

Дождь  реализуется  ввиде  капель, не просто идущих по экрану, но падающих на землю  для  создания  глубины  сцены.  Вдали вид затуманивать. В дождь должны появляться лужи.

Вот и всё.

При  полной  или  частичной  перепечатке ссылка на автора обязательна. Всякое   коммерческое   использование   без   согласования  с  автором запрещенно.


***

Вот такие идеи витали у меня тогда в голове.
Связанные статьи: нет.   Категория: Мои статьи | Добавил: harushima (06.10.2009)
Просмотров: 1479 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Авторизация
Анонимный вход:
anonymous / anonymous

Поиск

Облако тэгов
JGSDF игрушки Брюнетки Кладбище сайты Ярость Дракулы Древний Египет девушки кошки Cthulhu Вампиры Kitsune Ужас Аркхема инструмент комиксы Lovecraft готика Submarine submarine rc toy Hosting игротека Ужас Аркхэма book uboat мобильная связь го Edgar Poe swf Mansions of Madness Nightmares персоны Synergy linux-hardware bash youtube Storages Python Мастер-рукожоп Магнитофоны Entropy Grub2 loglevel WiFi Beeline ОПСОСЫ sharp939 Аудиокассеты Windows linuxwork Хочуны ImageMagick топБарыг C64c Commodore

Статистика
Яндекс.Метрика
Онлайн всего: 54
Гостей: 54
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2024
Лучший браузер!
Блокировка рекламы