|
Результаты поиска
| |
| pro100denver | Дата: Пятница, 07 Октября 2011, 16:50 | Сообщение # 61 | Тема: Как делать оружие, какие ньюансы? |
участник
Сейчас нет на сайте
| Тебе что именно. Экспорт оружия в движок?
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 18:25 | Сообщение # 62 | Тема: Концепт-арт |
участник
Сейчас нет на сайте
| Не знаю куда поместить этот скриншот. Поэтому кидаю сюда) В общем попытка воплотить ваши арты в СЕ3. Делал с помощью всего 1ой текстуры. 0% 3D моделей.0% Фотошопа.100% CryEngine 3. Первый арт, от автора Anfedart. Вот как это я портировал в СЕ3,потрачено времени 38 минут. (ссорь за низкое разрешение,баг в СЕ3,в СЕ2 следующий раз сделаю HD разрешении)
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 19:49 | Сообщение # 63 | Тема: UDK vs Unity что лучше? |
участник
Сейчас нет на сайте
| UDK vs Unity CryEngine win.
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 20:10 | Сообщение # 64 | Тема: UDK vs Unity что лучше? |
участник
Сейчас нет на сайте
| Quote (_LeVoID_) Oh, noooo!!!! My ears is bleeding!
http://pro100denver.wordpress.com/2011/10/08/screen-art/ Слабо в UDK или Unity сделать так же? НЕ используя 3д модели вообще,и всего лишь с 1ой текстурой?
Мой блог.DENVER
Сообщение отредактировал pro100denver - Суббота, 08 Октября 2011, 20:11 |
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 21:56 | Сообщение # 65 | Тема: UDK vs Unity что лучше? |
участник
Сейчас нет на сайте
| _LeVoID_, Ну дык правду впариваю -)
Кластер,
+100500
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 21:57 | Сообщение # 66 | Тема: Как делать оружие, какие ньюансы? |
участник
Сейчас нет на сайте
| Тут в Вики разделе где то мой тутор лежит. Искать времени ща нет. http://www.crymod.net/index.php?page=Portal
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 22:57 | Сообщение # 67 | Тема: Заявки на модератора |
участник
Сейчас нет на сайте
| Умение добавлять материалы - Я и моя команда написала очень много туториалов по CryEngine 2.В скором времени выложу их тут. Грамотность - пишу без ошибок. Присутствие на сайте не менее 1 раза в сутки, 1-2 часа в сутки - Каждый день тут с марта этого года. Не меньше 200 сообщений на форуме - 66 постов.Не люблю оффтопить,поэтому набираю посты медленно. Активное участие в обсуждениях - Имеется Нет нарушений и замечаний (уровень на 0) на протяжении 2-х месяцев - выполнено. Положительная репутация - +14 Полное согласие с правилами форума и сайта - согласен Дружественное или доброе отношение к содержателям (администраторам и модераторам) ресурса. Отсутствие конфликтов и противоречий - Обязательно От модераторов требуется подчинение Супер Модераторам и Администраторам - субординация - Обязательно.
Я хотел бы модерировать раздел CryEngine 3 Имею огромный опыт в серии движоков CryEngine. Лидер сильнейшей команды модмейкеров CryEngine 2. Хорошо известны за рубежом. Сайты: http://www.crymod.net/index.php?page=Portal -Российский портал моддинга и разработки игр на CryEngine http://www.cryzone.org/ -Сайт проекта CryZone http://vkontakte.ru/cry_zone -Мы в ВК http://www.crydev.net/newspage.php?news=76423&sid=889e03d1ee6a60a4a63de0f1e1ec4a70 -Мы на CryDev
Моя мотивация модерировать раздел CryEngine заключается в развитии подфорума,заинтересовать форумчан в изучении данного движка,поделится опытом и выкладывать туториалы.
Мой блог.DENVER
Сообщение отредактировал pro100denver - Суббота, 08 Октября 2011, 22:59 |
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 23:15 | Сообщение # 68 | Тема: Создание и экспорт объектов из 3ds Max |
участник
Сейчас нет на сайте
| Описание С помощью этой статьи вы научитесь создавать простые объекты и экспортировать их из 3ds Max в .cgf. Этот урок предполагает, что пользователь понимает основы 3ds Max, такие как пользовательский интерфейс и создание простой геометрии. Подготовка объекта Структура папки Все папки содержащие объекты, должны быть помещены в корневую папку игры. Для этого урока я создам свой объект в качестве примера в Game\Objects\Testbox. Объекты, помещенные вне папки игры, не будут работать в движке.
Объект Для начала, создайте простой box (коробка) в 3ds Max, метр на метр. Поскольку Sandbox использует метрическую систему для того, чтобы измерить расстояния, вы можете использовать сантиметры в 3ds Max. Центр объекта в 3ds Max будет соответствовать центру объекта в движке. Удостоверьтесь, что вашему объекту назначены группы сглаживания. Движок назначит группу сглаживания для любых полигонов, иначе это может привести к нежелательным визуальным результатам. Удостоверьтесь, что у вашего объекта есть координаты текстурной карты (UVW mapping). Вы можете использовать любые стеки модификатора на своем объекте, они не будут затрагивать экспорт, и ваш объект успешно экспортируется в движок. Чем больше полигонов, которые имеет ваш объект, тем дольше он будет экспортироваться, хотя экспорт вообще проходит очень быстро. Ваш объект должен быть либо редактируемой сеткой (Editable Mesh) либо редактируемой поверхностью (Editable Poly).
Создание материала для объекта Чтобы использовать текстуры и шейдер эффекты, объект нуждается в материале. Материалы сохранены в .mtl-файлах. В этой части урока мы создадим материал в 3ds Max и научимся передавать, информацию в .mtl-файл, где это можно будет отредактировать позже с помощью редактора материалов (Material Editor) в SandBox'е. 1. Откройте редактор материалов в 3ds Max. 2. Выберите новый материал, нажмите на "Standard" и измените тип материала на "Multi/Sub-Object". 3. Установите подматериальный счет на 3. Движок поддерживает до 32 подматериалов. Чем больше подматериалов использует объект, тем сильней уменьшается производительность. Поэтому лучше всего найти способ удерживать чилов подматериалов настолько низко, насколько это возможно. 4. Дайте материалу и всем подматериалам название. Когда вы создадите материальный файл, эти названия будут переданы. Название материала, которое вы назначаете на объект в 3ds Max, должно быть таким же как и название самого материального файла. Мы назовём материал "Testbox" и создадим материальный файл с названием "Testbox.mtl" 5. Откройте каждый подматериал, и в “Shader Basic Parameters” измените тип шейдера на “Crytek Shader”. Вы должны использовать только Crytek Shader для ваших объектов. Другие типы шейдеров не будут работать правильно после экспорта. Если у вас возникли проблемы, пожалуйста проверьте, что все плагины установлены правильно. Вы увидите новый раскрывшийся список рядом с "Physicalization". Этот список задает пути для работы материалов в движке. Пока, нам только интересны два из них; Default и Physical Proxy. Default — нормальный материал. Вы будете использовать его для большинства материалов. Он ничего не меняет. Physical Proxy — специальный материал, который вы можете использовать для физикализированной (Physicalized) геометрии. Этот параметр применяется с физикализированной геометрией, но при рендере его не видно. 6. Третий подматериал должен быть с параметром “physics proxy” (объясню позже). Откройте этот подматериал и измените тип Physicalization на “Physical Proxy NoDraw)”. Нажмите на флажок "Physicalization" рядом со свитком. Это будет физикализируемым материалом в движке. Если этот флажок не будет поставлен, то ваш объект не будет физикализирован, а это значит что объект ни с чем не будет физически взаимодействовать в игре. Если ваш объект имеет отдельную физическую прокси (physics proxy), то данная геометрия не должна быть в физикализирована. 7. Нам нужно назначить текстуру каждого подматериала за исключением подматериал physics proxy, который будет невидимым и использоваться только для соединения. Перейдите к первому подматериалу и в свитке Maps выберите Diffuse Color Map "Bitmap" Найдите текстуру, которую вы будите использовать. Все текстуры (за исключением Flash текстуры) должны быть либо в формате TIF, либо в формате DDS, подходящими для CryENGINE. Теперь, подберите изображение для Bump Normals Map. Не забудьте приписать суффикс "_DDN", иначе текстура не будет работать как normalmaps. Эта текстура будет вашей картой нормалей. Использование карты нормалей конечно не обязательно, но желательно. Повторите эти шаги и со вторым подматериалом. Используя различные текстуры. Назначение материала на объект 1. Назначьте свой мультиматериал на объект. 2. Измените ID материала одних полигонов на 1, а других на 2. Убедитесь, что объект не имеет материальных идентификаторов вне числа подматериалов, которые имеет мультиматериал. При наличии текстур они будут отображаться как "Replace Me".
Создание физической прокси В сложных многополигональных объектах, как правило, используется вспомогательная сетка называемая physics proxy. Физикализированные объекты в игровом мире можно связать друг с другом и больше полигонов, эти объекты будут иметь более интенсивные физические расчеты. Поэтому с physics proxy вы можете иметь больше полигонов насколько это возможно. Сложные proxy также могут привести к некорректному поведению во время столкновений. Proxy также используется для взаимодействия с игроком. С physics proxy объект всегда должен быть с "закрытой" сеткой, и не должен иметь открытых ребер. Открытые края могут вызвать различные проблемы с физическим взаимодействием, а также может вызывать уменьшение производительности поэтому следует избегать их, по возможности. 1. Сделайте копию окна сетки на уровне элемента 2. Назначение "Proxy" sub-material ID к нему. Он теперь будет действовать в качестве physics proxy.
Создание файла материала 1. Откройте CryENGINE 2 экспортер в Utility. Это хорошей идеей будет добавить кнопку для экспортера в список кнопок Utility, если вы собираетесь использовать его не раз. 2. В нижней части окна утилы можно найти свиток "Material". Убедитесь, что вы находитесь в корневом уровне вашего материала в MAX. Это означает, что вы не должны просматривать какой-либо из подматериалов, а просто в multimaterial. Если вы находитесь в каком-либо из подматериалов при создании файла .mlt, файл будет содержать только то, что содержит подматериал, и ничего больше. 3. Нажмите на кнопку "Create Material". Это позволит открыть окно редактора материалов в SandBox. Теперь, в MAX снова нажмите на кнопку "Create Material". Вам будет предложено ввести имя для нового файла MTL. Убедитесь, что это имя совпадает с именем материала в MAX. http://wiki.crymod.net/images/thumb/2/2d/Sandbox_ExportMax_image015.png/300px-Sandbox_ExportMax_image015.png[/img] Нажмите кнопку "Сохранить", когда закончите. 4. Ваши материалы в настоящее время генерируется. Вы можете раскрыть корневой материал, для просмотра подматериалов. Все текстуры вы выбранные MAX теперь используются и здесь. Сведения о редакторе материалов рассматриваются в другом разделе. Закройте окно редактора материалов.
Экспорт из 3ds Max 1. 1. В разделе Object Export выберите объект и нажмите на кнопку "Add Selected" под пустым списком. Вы можете выбрать несколько объектов одновременно. 2. Щёлкните по синей кнопке "Export Nodes". Это позволит экспортировать объект. Он будет создан в той же папке, где расположен файл MAX. Вы можете просмотреть эту папку, нажав на кнопку "Explore ...". Ваш объект будет иметь то же имя, что и Max-файла (Testbox.cgf). Вы можете назвать свой объект как угодно, проверьте галочку "Export File per Node" под Geometry Export Options и переименуйте объект.
Просмотр объектов в SandBox 1.Запустите SandBox и загрузите уровень. 2. Нажмите на кнопку "Brush" на панели инструментов справа. 3. Найдите ваш объект. 4. 4. Перетащите объект на уровень.
Дополнительная информация Извлечение/назначение материалов Вы можете просмотреть материал объекта путем открытия редактора материалов (кнопка "M" на клавиатуре или нажмите кнопку на панели инструментов, которая выглядит как синий кружок, или воспользуйтесь меню View). Нажмите на третью кнопку слева в верхней части окна редактора материалов, выглядит как голубой ящик. Так вы перейдёте к просмотру материала выбранного объекта. Вы можете назначить любой материал на объект, выбрав материал (всегда выбирайте корень материала, не подматериал) и нажмите левую кнопку на панели инструментов редактора материалов ("Assign material to selection").
Включение теней Вы можете включить тени для объекта. Нажмите кнопку "CastShadowMaps" флажок в свойствах объекта. Тестирование объекта игре Вы можете перейти в режим игры, нажав SHIFT + G, или с помощью меню Game. Если вы использовали параметр "Physicalize" в максе на proxy материал (и предположим, что вы создали proxy, если вы так сделали, то physicalize может быть любой материал, который вы захотите), вы или любые другие игровые объекты будут взаимодействовать с вашим объектом. Кнопка "Reload" в brush parameters могут быть использованы для обновления CGF файла. Таким образом, вы можете внести в него изменения в MAX, экспортировать и быстро увидеть результат в редакторе.
Примечание: вы увидите, что объекты использующие параметр physicalized не обновляются (если они были изменены), после нажатия кнопки "Reload". Вы можете обойти эту проблему путем удаления объекта и использования Undo (Ctrl + Z или отменить кнопкой). Physicalized геометрии также автоматически обновляется, когда уровень загружается снова. Консольная команда "P_Draw_Helpers 1" покажет physicalized геометрии. Установка этого параметра на 0 отключает её. Консольная команда "E_Debug_Draw 1" (и другие номера, за 10) будет отображать различные виды полезной информации об объектах, такие как количество полигонов, количество материалов и т.д.
PS/ Для создании примитивов архитектуры используте Solid. К примеру что бы создать коробку выберите Solid/Box/В гранях напишите "4"/и Рисуйте на ландштафте примитив.
Мой блог.DENVER
Сообщение отредактировал pro100denver - Суббота, 08 Октября 2011, 23:17 |
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 23:31 | Сообщение # 69 | Тема: Создание простого эффекта частиц |
участник
Сейчас нет на сайте
| Описание В этом руководстве вы узнаете основные функции системы частиц, и, более того, создадите эффект огня. В рамках подготовки к руководству, запустите редактор Sandbox 2 и откройте любой уровень. Подготовка новой библиотеки частиц Что такое «библиотека частиц»? Большинство данных в CryENGINE обрабатываются и хранятся в библиотеках. Библиотеки эффектов частиц хранятся в папке с игрой, в Game/Libs/Particles. Чтобы создать эффект частиц, нужно подготовить новую библиотеку частиц. Заходим в базу данных Откройте Database View из подменю Open View Pane в меню View. Появится окно базы данных. Перед созданием частиц необходимо выбрать библиотеку, в которую они будут сохранятся. Самый лучший способ, это создать нашу собственную библиотеку. Добавление новой библиотеки В Database View, во вкладках в верхней части окна, вы увидите вкладку Particles. Там отображаются все открытые библиотеки частиц. Должна быть открыта стандартная библиотека, которая называется Level. Вы можете создать столько библиотек частиц, сколько вы хотите. Каждые библиотеки будут сохранятся в отдельный файл в папке с игрой. Выберите вкладку Particles и нажмите кнопку Add Library, чтобы создать новую библиотеку. В окне New Library Name, введите название вашей библиотеки, в данном примере мы назвали её «MyTutorials», как показано ниже. Добавление нового эффекта частиц в вашу библиотеку Щелкните кнопку Add New Item, чтобы добавить новый эффект частиц. Каждый эффект организован группами. Так как у вас ещё нет групп, то вы должны создать новую группу. В окне New Particle Name, в качестве Group укажите «MyFire», а в качестве названия частицы «Fire1»; Новая частица появится в списке частиц. Теперь, вы можете приступать к работе над ним. Выберите File/Save, чтобы сохранить свой прогресс. Подготовка эффекта частиц Вам нужно будет подготовить свои текстуры, прежде чем начинать делать новые эффекты. Однако, в этом руководстве будут использоваться заранее подготовленные текстур и сфокусируемся на различных типах текстур. Стандартное местоположение для сохранения текстур к частицам — это папка Game/Textures/Sprites. Настройка спрайтовой текстуры Убедитесь, что выбрана частица Fire1. В вкладке Appearance (расположенная ниже и правей от списка частиц), щелкните иконку папке в поле ввода «Texture». Теперь, в папке Game/Textures/Sprites выберите текстуру fire_ball6.dds. В поле ввода Texture появится путь к текстуре. Вы можете проверить текстуры, наведя курсор мыши на поле ввода. Чтобы выровнять направление движения спрайта, поставьте галочку Orient To Velocity. Следующим шагом идет время жизни частицы. Чтобы создать продолжающийся огонь, щелкните по галочку Continuous в разделе Emitter свойств частицы. Чтобы каждая частица повышала настройки, задайте Particle Life Time равное 3, и чтобы в любое время появлялась более, чем одна частица, задайте Count (видимость частиц в одно и тоже время) равное 10. Оставьте другие настройки стандартными (Emitter Life Time 0, Spawn Delay 0, Pulse Period 0). Выберите в панели Movement параметр Speed и задайте его значение равным 3, чтобы ускорить частицу. Размещение эффекта частиц на уровне Чтобы разместить ваш эффект на уровне, то вам нужно перетащить эффект из списка частиц на уровень. Но, прежде чем это сделать, включите инструмент Select and Move на панели инструментов редактора, а также включите Follow Terrain and Snap to Objects, чтобы облегчить размещение. Теперь, перетащите эффект частиц «Fire1» на уровень. Вы можете увидеть, что частицы возрождаются из эмиттера непрерывно. Но сейчас он по-прежнему выглядит далеко не как настоящий огонь. Следующим шагом будет настройка нескольких параметров в редакторе частиц и улучшение внешнего вида эффекта. Примечание: Вы можете использовать кнопку Goto Selected Object чтобы выровнять позицию камеру, чтобы оказаться перед эммитером. Сохраните сцену еще раз, прежде чем перейти к следующему шагу. Создание более реалистичного вида Чтобы получить более «огнеподобный» вид, вам необходимо настроить несколько параметров частицы. Вид зависит от: Условия возрождения Внешний вид Движения Тонкая настройка возрождения спрайтов Перейдите в панель Emitter слева вверху списка параметров. Если в Emitter Life Time указать 0, частицы будут возрождаться бесконечно, пока эммитер не будет отключён или удалён. Задайте Particle Life Time равное 1. Ваша частица должна изменить свой внешний вид, как показано ниже. Параметр «Count» управляет, как долго будет жива частица в сцене. Если его значение 10, и возрождается частица 11, то частица под номером 1 исчезнет. «Particle Life Time» управляет временем жизни каждой частицы. Если его значение 3, то частицы «умирают» через 3 секунды после возрождения. Добавление случайности До сих пор, все частицы возрождались именно таким образом, — это выглядит неестественно. Чтобы добавить случайности нажмите на маленькую кнопку + перед параметром Particle Life Time, чтобы открыть его дополнительные параметры. Задайте Var Random равным 0.4. Ваша частица начнёт сейчас выглядит немного неотрегулированной. Параметр «Var Random» существует практически у всех параметров. Случайность измеряется от 0 до 1. Если в «Particle Life Time» задать 10 (секунд), а в «Var Random» задать значение 1, то время жизни частицы будет рандомизировано от 0 до 20 секунд (+/- 100). For now though, keep the settings as shown. Не забывайте сохранять уровень время от времени. Вкладка «Lighting» Перейдите в панель Lighting и добавьте следующие настройки: Задайте Diffuse Lighting равное 0. Задайте Diffuse Backlighting равное 0. Задайте Emissive Lighting равное 3. Задайте Emissive HDR Dynamic равное 3. Ваш частица начнёт светиться, как показано на рисунке: «Diffuse Lighting» — основной параметр света для спрайтов. Он управляет, как на спрайт будут влиять любое динамическое или обычное освещение на уровне. Как правило, вы должны установить любые соответствующие значения для него (например, 0,7). Но в данном случае для огня, который не может быть фактически освещён, вы должны установить значение 0. «Diffuse Backlighting» — простой параметр, для добавления яркости частице (в большинстве 3D-программ часто называют «Ambient» (Окружающий свет) или «Incandescence» (Накаливание)). При увеличении этого значения, вы можете сделать более прозрачный внешний вид. Напротив, при уменьшении этого значения, необходимо создать более массивный вид частицы. «Emissive Lighting» и «Emissive HDR Dynamic» отличаются от других параметров освещения. Они управляют эмиссивностью света у эффекта, например, света, который создается частицей. Как правило, эти параметры используются, если частица является самоизлучающей (как например, огонь, искры, взрывы). «Emissive HDR Dynamic» работает только если включен HDR, например, если настройка графики выбрана высокой или максимальной. Тонкая настройка кривой альфа Теперь, измените продолжительность жизни кривой, чтобы добавить природный прозрачный вид. Откройте дополнительные параметры параметра Alpha в панели Lighting. «Alpha» управляет прозрачностью частицы. Дважды щелкните по зелёной линии Var Particle Life, чтобы создать ключевую точку (красную точку) на линии, как показано ниже. Дважды щелкните в левом верхнем крае зелёной линии, чтобы создать вторую точку и перетащите его вниз графа. Дважды щелкните в правом верхнем крае кривой, чтобы создать третью точку и перетащите его вниз графа. Кривая «Var Particle Life» управляет значением альфы независимо от альфа-текстуры спрайта. Длина представляет альфа-значение, поперечное времени жизни частицы. В данном случае, частицы будут появляться с альфа-значением 0 (невидимым), потом увеличится его время жизни до 100, и потом снова исчезнет в конце его жизни. Примечание: Вы можете добавить или удалить ключи дважды щелкнув по ним, и перемещать в обоих направлениях. Тонкая настройка параметров масштаба и растягивания Перейдите в панель Size и задайте значение Size равное 1.3, затем откройте дополнительные параметры и задайте значение Var Random равное 0.4. Настройте кривую Var Particle Life как на графе ниже. Далее, добавьте небольшой эффект растягивания спрайте. Задайте у Stretch значение 0.2, настройте кривую Var Particle Life у Stretch, как показано ниже. «Stretch» растянет ваш спрайт. Стандартное значение 0 означает, спрайт не растягивается совсем, например, имеет совершенно квадратную форму. В данном случае, частицы растягивается до 0ю2 в начале своей жизни и возвращается к совершенно квадратной форме в конце. Теперь, ваша частица выглядит уже более настоящим огнём, но с некоторыми другими настройками вы сможете сделать его ещё реалистичней. Тонкая настройка движения и сопротивления воздуха Движение частиц также очень важно, для добавления реалистичности эффекту. В этом разделе вы сможете настроить параметры движения частицы. Перейдите в вкладку «Movement» и задайте у Speed значение 3, а у Var Random значение 0.4. Вы найдете «Var Random» за маленькой кнопки «+». «Speed» управляет скоростью частицы. Он управляет скоростью по направлению к «Emit Angle», который вы настроите позже. Примечание: Помните, что добавление значения случайности является эффективным, для получения более реалистичный эффекта. «Air Resistance» имитирует плотность воздуха или любую среду, в которой находится частица. В плотной среде, такой как вода, энергия движения расходуется быстрее, потому что вода имеет более высокое сопротивление, как и воздух. В космосе, напротив, частицы никогда не теряют свою скорость. Задайте у Air Resistance значение 0.2, а у Var Random значение 0.4. Примечание: На частицы с сопротивлением воздуха влияют окружающие факторы уровня, такие как ветер, турбулентность, или глобальный ветер. Таким образом, если вы установите слишком высокие значения сопротивления воздуха, то ваши частицы будут так затронуты силой ветра, что вы не увидите частицы. Чтобы избежать этого, вы можете попробовать низких значения (например, 0). Тонкая настройка вкладки «Angles» Перейдите в панель Angles. Задайте у Emit Angle значение 20, а у Var Random значение 1. Стандартное направление частицы идёт в точности вдоль оси Z от эммитера. Изменения, сделанные выше, означают, что частица излучается на 20 градусный угол вдоль оси Z, и получает случайное направление в пределах от -20 до 20 градусов. Если вы не установите значение Random, отличное от 0, то частицы всегда будут получать точный градус направления по оси Z, следовательно, все формы эффекта будут выглядеть как перевёрнутый зонтик. Настройте Random Angles и Random Rotation Rate, как показано ниже: Эти параметры управляют вращением каждого спрайта. Левая колонка относится к оси X, центральная колонка к Y, а правая колонка к Z. В данном случае, при возрождении у частицы значение вращения 180 градусов по оси Z, и не более 30 градусов случайного вращения по оси Z, пока они живы. Для спрайтовых частиц, таких как огонь, оси X и Y ни на что не влияют, потому что спрайты являются двухмерными объектами — у них нет осей X и Y. Система частиц также поддерживает импортирование трёхмерных объектов, которые могут быть использованы в качестве частиц, где поддерживаются все 3 оси. Мягкие частицы Когда вы подойдёте к эффекту и проверите области, где частица пересекается с поверхностью ландшафта, вы уведите выразительный край в нижней части спрайта. Чтобы убрать этот край, перейдите в панель Appearance и включиие Soft Particle. Теперь, край исчезнет и огонь станет выглядить еще более реалистично, чем раньше.
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 23:35 | Сообщение # 70 | Тема: Выбор сущности мышкой |
участник
Сейчас нет на сайте
| Данный код позволяет получать сущности, находящиеся под курсором мыши. Полезно для разработки системы выбора юнитов в стратегии реального времени.
Code EntityId GetMouseEntityID() { static ray_hit hit; float x, y, xMouse, yMouse, zMouse = 0.0f; if(!gEnv->pHardwareMouse || !gEnv->pRenderer || !gEnv->p3DEngine || !gEnv->pSystem || !gEnv->pEntitySystem || !g_pGame->GetIGameFramework()) return 0; IActor *pClientActor = g_pGame->GetIGameFramework()->GetClientActor(); if (!pClientActor) return 0; gEnv->pHardwareMouse->GetHardwareMouseClientPosition(&x,&y); y = gEnv->pRenderer->GetHeight() - y; gEnv->pRenderer->UnProjectFromScreen(x, y, 0.0f,&xMouse,&yMouse,&zMouse); static const unsigned int flags = rwi_stop_at_pierceable|rwi_colltype_any; float fRange = gEnv->p3DEngine->GetMaxViewDistance(); Vec3 vCamPos = gEnv->pSystem->GetViewCamera().GetPosition(); Vec3 vDir = (Vec3(xMouse,yMouse,zMouse) - vCamPos).GetNormalizedSafe(); IPhysicalEntity *pPhysicalEnt = pClientActor->GetEntity() ? pClientActor->GetEntity()->GetPhysics() : NULL; if(!pPhysicalEnt) return 0; if (gEnv->pPhysicalWorld && gEnv->pPhysicalWorld->RayWorldIntersection(vCamPos, vDir * fRange, ent_all, flags, &hit, 1, pPhysicalEnt)) { if (gEnv->p3DEngine->RefineRayHit(&hit, vDir * fRange)) { if (IEntity *pEntity = gEnv->pEntitySystem->GetEntityFromPhysics(hit.pCollider)) { return pEntity->GetId(); } } } return 0; }
Мой блог.DENVER
Сообщение отредактировал pro100denver - Суббота, 08 Октября 2011, 23:35 |
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 23:43 | Сообщение # 71 | Тема: Добавление деталей эффекту частиц |
участник
Сейчас нет на сайте
| Введение После создания простой 2D-частицы, мы сфокусируемся на добавлении детальности существующей частице. Для начала, загрузите частицу огня из 1-ой части, и следуйте инструкциям приведённым ниже. Добавление частиц к эффекту Добавление дочерних частиц Каждая частица может иметь дочерние узлы, и они могут быть вызваны родительским эффектом. Для начала, убедитесь в том, что частица Fire1, которую вы создали в первой части руководства, выбран в редакторе частиц. Далее, нажмите кнопку Add Sub Effect чтобы добавить дочерний узел. Щелкните правой кнопкой мыши по дочернему узлу и переименуйте его в «Spark1». Настройка искр Выберите Spark1, затем перейдите в панель Appearance, и включите свойство Orient To Velocity, в качестве Texture укажите spark_stretched_mono.dds и в качестве Blend Type выберите Additive. В дополнительных параметрах Texture Tiling, в качестве Tiles X и Tiles Y задайте 2, а в качестве Variant Count задайте4. Примечание: Вам, возможно, придётся щелкнуть правой кнопкой мыши по вашей сущности и выбрать Reload Script, для того, чтобы увидеть визуальный эффект. Использование случайных кадров в анимированных частицах Этот спрайт сделан для использования в качестве анимированных текстур. Чтобы создать анимированные текстуры самому, подготовьте плиточные текстуры, как показано ниже. Порядок кадров анимации начинается в верхнем левом углу, идёт вправо, и заканчивается внизу справа. Разрешение каждой плитки должно соответствовать основному правилу создания текстур для CryEngine 2, то есть оно должно быть кратно 16. В нашем примере, мы укажем Variant Count вместо Anim Frames Count, так, при рождении, тектсура спрайта будет случайно взята из одной из 4 плиток. Рождение вашей искры Перейдите в панель Emitter и включите свойство Continuous, в качестве Count укажите 30, в качестве Particle Life Time укажите 0.5 и в качестве Particle Life Time Var Random укажите 0.5. Перейдите в панель Lighting и в качестве Diffuse Lighting и Diffuse Backlighting укажите 0, в качестве Emissive Lighting и Emissive HDR Dynamic укажите 3 и настройте кривую Alpha Var Particle Life, как показано ниже. Типы интерполяция типов в графах частиц Далее, выберите конечную точку кривой, затем поместите курсор мыши в область графа и нажмите клавишу Пробел. Это изменит интерполяции типа точки на линейной. [img]http://wiki.crymod.net/images/5/59/Sandbox_Particle2_image051.png Добавление цвета вашей частице На данный момент, у этой текстуры нет цвета так, что давайте добавим его. Откройте панель дополнительных параметрах Color. Дважды щелкните по левому краю панели Color Var Particle Life… …и появится окно выбора цвета. Выберите тёмно-оранжевый цвет, затем нажмите OK. Дважды щелкните по правому краю панели Color Var Particle Life. Создайте новую точку и выберите тёмно-оранжевый цвет. Панель Var Particle Life должна выглядеть, как показано. Изменение размера ваших искр Далее, перейдите в панель Size и настройте её как показано ниже: Перейдите в панель Spawning и в качестве Random Offset X и Y укажите0.5. Поля Random Offset добавляет случайным сдвиг к точки рождения частицы от оси эмиттера. Далее, включите свойство Second Generation. Это гарантирует, что рождение частицы будет вызвано родительской частицей. Каждый раз, когда рождается 1 спрайт Fire1, вызывается Spark1 и рождает до 30 спрайтов. При включенным Second Generation, значение Inherit Velocity влияет на движение частиц второй генерации. Это процент скорости, которую наследует дочерняя частица от частицы родителя на время эмиссии. Попробуйте увеличить это значение, и посмотреть, как оно влияет на движение ваших частиц, и сохраните его, если он вам нравится. Обязательно сохраните сцену до перехода к следующему шагу. Настройка движения частиц Перейдите в панель Angles и в качестве Emit Angle укажите 45, в качестве Emit Angle Var Random укажите 1 и в качестве Rotation Rate Z укажите 20. Перейдите в панель Movement и введите настройки, как показано ниже: В данном случае, вы установите отрицательное значение Gravity Scale. Это означает, что частицы не будут падать на землю, а будут подниматься в небо. Turbulence Size, и Turbulence Speed добавляет простое турбулентное движение частиц. Значение Turbulence Size управляет количеством турбулентности, подвергаемой частице, а Turbulence Speed управляет скоростью передвижения частицы по пути турбулентности. Поэкспериментируйте с значениями этих параметров, чтобы получить хорошее представление о том, как работают эти значения. Тестирование частицы в разное время дня Откройте окно Time Of Day из View->Open View Pane->Time Of Day. Включите параметр Force sky update и перетащите ползунок к 22:30, как показано ниже: Сцена потемнеет, так что вы сможете проверить, как ваш эффект выглядит в ночное время. Из этого изображения, кажется, что частица слишком сильно светится по ночам. Чтобы противостоять этому, уменьшите Emissive Lighting, Emissive HDRDynamic и Alpha value. Вы должны всегда проверять ваши частицы, переключаясь между дневным и ночным временем, и настраивая значения, чтобы убедиться, что частица хорошо выглядит всегда. Прибавление огню реалистичности Настройка анимированной текстуры Чтобы огонь выглядил более реалистичным, вы можете изменить его анимированные текстуры. Измените настройки Fire1, так, как показано ниже. Используйте текстуру textures/sprites/fire/large_animated1.dds. Кроме того, не установить положение, как показано ниже: Добавление дыма огню Выберите Fire1, создайте дочернею частицу и переименуйте её в Smoke1. Настройте Smoke1, как показано ниже. Используйте текстуру textures/sprites/smoke_white_tiled2.dds. Теперь, повторите ранее шаги: В панели Emitter, включите свойство Continuous и измените Count, указав соответствующее значение. В панели Lighting, настройте значение Alpha и кривую Var Particle Life. В панели Angles, настройте Rotation Randomization. Кроме того, не забудьте нажать Reload Scripts у вашей частицы, так вы сможете увидеть изменения. Добавление свечения вокруг основы огня Выберите Fire1, создайте дочернею частицу и переименуйте её в Base1. Это частица будет рождаться вокруг основы огня, и на должна подниматься выше. Установите скорость движения до очень низкого значения: Настройте Base1, как показано ниже. Используйте текстуру textures/sprites/radialfire2.dds. В панели Emitter, включите свойство Continuous и измените Count, указав соответствующее значение. В панели Lighting, настройте значение Alpha и кривую Var Particle Life. Кроме того, настройте Emissive Lighting и Emissive HDRDynamic, если хотите. В панели Angles, отрегулируйте Random Rotation Rate. Кроме того, не забудьте нажать Reload Scripts. Полезная информация Загрузка и использование других библиотек Щелкните кнопку Load Library слева вверху окна Database View. Откроется окно проводника, в котором можно выбрать другую библиотеку. Вы можете переключаться между библиотеками, выбирая их из раскрывающегося списка. Копирование и вставка атрибутов частиц Вы можете копировать и вставлять частицы по библиотеками, щелкнув правой кнопкой мыши по панели и выбрав либо Copy Category, или Copy All. Вы можете Paste (Вставить) используя то же самое меню. Применение материала для частицы Вы можете применять материалы для частицы. Например, если вы выберите материал преломления, то он применит преломление для вашей частицы. Щелкните кнопку Browse Material, откроется окно Material Editor. Выберите материал, а затем вернитесь к вашей частице в Database View. Далее, щелкните Assign Material.
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 23:46 | Сообщение # 72 | Тема: Вопрос-Ответ по CryENGINE 3 SDK |
участник
Сейчас нет на сайте
| Quote (Termin8) Ты советы даешь только чтобы + в репу получить? И вообще, что дает эта репутация?
Мне нужно модератора в подфоруме CryEngine получить. Баллы репутации влияют на это.
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Суббота, 08 Октября 2011, 23:48 | Сообщение # 73 | Тема: Обсуждение CryENGINE 3 SDK |
участник
Сейчас нет на сайте
| Termin8, Можно делать модели в системе Solid прямо в окне редактора. Мой пример тыц Quote (Termin8) FlowGraph пока не юзал. Если объективно, удобнее чем Kismet? Удобнее своей удобностью =) Самое главное в FG это интуитивность и гибкость.
Мой блог.DENVER
Сообщение отредактировал pro100denver - Суббота, 08 Октября 2011, 23:51 |
|
|
| |
| pro100denver | Дата: Воскресенье, 09 Октября 2011, 00:15 | Сообщение # 74 | Тема: Выбор сущности мышкой |
участник
Сейчас нет на сайте
| Сущъность = Enity = Нпс , партиклы, физ объекты и т.д.
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Воскресенье, 09 Октября 2011, 00:38 | Сообщение # 75 | Тема: Выбор сущности мышкой |
участник
Сейчас нет на сайте
| Ошибся =(
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Воскресенье, 09 Октября 2011, 00:41 | Сообщение # 76 | Тема: Обсуждение CryENGINE 3 SDK |
участник
Сейчас нет на сайте
| Termin8, Банально лифт в Кизмете делать ,займет эдак минут 30. А игровую механику RTS ,с камерой,выбором юнитов,простенькой системой приказов займет столько же времени. Вот и сравни,лифт,и RTS механику=) FG удобен,и этим он экономит кучу времени.А время-деньги.
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Воскресенье, 09 Октября 2011, 01:26 | Сообщение # 77 | Тема: [2d] Dragon Riders (рабочее название) [IOS/Web] |
участник
Сейчас нет на сайте
| Красиво!+)
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Воскресенье, 09 Октября 2011, 02:01 | Сообщение # 78 | Тема: Обсуждение CryENGINE 3 SDK |
участник
Сейчас нет на сайте
| Quote (Termin8) Это ты говоришь, как человек юзавший Kismet или от фонаря? Как человек юзавший Kismet. FG не так "Глубок" изначально как Kismet,это легко исправляется если юзер хоть немного знает С++. Но простота реализации сложных систем,тут FG "на коне".
Мой блог.DENVER
|
|
|
| |
| pro100denver | Дата: Воскресенье, 09 Октября 2011, 13:15 | Сообщение # 79 | Тема: Изучаем FlouGraph |
участник
Сейчас нет на сайте
| Начнем, с того, что все что вы видите в игре (Действия, сцены, команды и экшен) на уровнях в Crysis/Crysis Warhead/Crysis 2 все это грамотно запрограммированный и продуманный Код, который собран в 'Flow Graph'. Любая кат-сцена не будет нормально работать без флоуграфа, да и вообще без флоуграфа вам ее не активировать. Так как же понять его? Как понять эту кучу всяких окошек и линий между ними!?
Ваша задача понять его принцип работы, приведу аналогию: Вы включили выключатель дома и загорелась лампочка. Так и тут, но только на языке программирования. Мы хотим чтобы при пересечении определенной местности включилась лампочка в доме или поехала машина с противником к вам на встречу. Тут нет ничего сложного. Первым делом нам нужно установить на уровень Shape и прицепить к нему AreaTrigger (Как вы установите Shape зависит от того, где именно должен пройти игрок, или от вашего уровня и окружающей местности.) После как вы установили, вы можете задать команду AreaTrigger-у сколько раз он будет активироваться Один или до потери вашего пульса. Для этого Нажмите на ваш AreaTrigger и в правой панели РолопБар вы сможете найти команду Trigger Once (Активация один раз) если вы поставите галочку на против Trigger Once то ваш триггер сработает всего один раз. (пример: если вы ее не поставите, то каждый раз проходя через Shape к которому подключен ваш Триггер, будет срабатывать команда включить или отключить лампочку. Тем самым она будет каждый раз вкл. и выкл. )
Ну что друзья продолжим, теперь вам необходимо создать свой флоуграф код. Прежде чем мы его создадим, нам нужно создать раздел с любым именем латинскими буквами. Сделать это можно так: выделите ваш триггер на уровне и в правой панели РоллупБар нажмите на Create В появившемся окне введите произвольное имя на Английском (допустим: By Marcos) и нажмите окей. Пам Парам, вы видите окно флоуграфа, в котором вам и придется все программировать. Теперь прежде чем что-либо трогать выполните вот это: Как только вы закончите добавления всех нодов, тока после этого можно начинать плавное изучение. Сперва изучим где там и что. Тут мы видим, тот самый триггер который вы добавили в флоуграф. Именно в нем и будет сохранен код уровня или какой либо сцены. Тут мы видим все папки со всеми нодами. Они нам пригодятся для программирования уровня и программирования отдельных деталей будь то кат-сцена, АИ или Entity. Все что нам нужно, это открыть какой либо из каталогов, выбрать нужный нод и перетащить его в правое окно (похожие на сетку)(наведя курсор на сетку и крутя колесо мыши мы может увеличивать или уменьшать масштаб сетки, тем самым регулировать обзор нодов.) Как я добавил мой триггер сюда? Просто, не закрывая окна Флоуграфа, просто сместите его в угол и выберите на уровне свой триггер, выделите его кликом мышки на него. Как только вы это сделаете перейдите обратно в окно флоуграфа, навидите мышкой на сетку и нажмите правую кнопку. После появится свиток в котором нажмите на Add Selected Entity (по русски: добавить этот динамический объект сюда.), так же вы можете выделить на уровне любого АИ или транспорт, либо партиклэффект, и так же добавить его в флоуграф. Идем дальше, запомните пару важных текстов: Disable-Выключить Enable-Включить Enter-Выход сигнала, источник, ключ. Получается так, если мы поставим стрелочку на наш нод на надпись Disable то мы его отключим. Получается так, если мы поставим стрелочку на наш нод на надпись Enable то мы его включим. Ну а если, Интер, то это мы уже берем Ключ сигнала от нашего триггера и подаем его на лампочку. Мы прошли сквозь Схэйп, к которому у нас подключен наш Триггер, триггер активируется и подает команду на свой нод в флоуграф, команда идет сквозь нод обрабатывается и выводится через Enter и следом идет на лампочку, а у лампочки свой режим, Активация, в нод входит сигнал Активировать и "лампочка загорается" На данном примере мы отключили AI.
Давайте сделаем что либо сами? Как насчет того что бы "заспавнить" игрока, и при спавне включить надпись на экран?Классический Hello World.
1) Ставим на карту Spawn Point (Entity/Multiplayer в СЕ3,Entity/Other в СЕ2) В насройках SpawnPoint нажимаем Create , и называем свой первый ФГ как хотите.(Only English) 2) Misc/Start 3) Активируем Spawn Point в окне FG. 4) Из нода Start,output коннектим со Spawn в SpawnPoint (В СЕ3 еще и с Enable) 5) Game/Local Player 6) HUD/DisplayDebugMessage 7) EnityID из Local Player коннектим с InupEntity (из красного ,он должен перекрасится в зеленый) 8) В DisplayDebugMessage ,в настройках message пишем Hello World! 9) Теперь от Spawn Point ,у "выхода" из Spawn коннектим с Show от DisplayDebugMessage .
Cntrl+G.Вуаля =)
Вот как выглядит данный ФГ в СЕ3.
Мой блог.DENVER
Сообщение отредактировал pro100denver - Воскресенье, 09 Октября 2011, 13:18 |
|
|
| |
| pro100denver | Дата: Воскресенье, 09 Октября 2011, 15:15 | Сообщение # 80 | Тема: Заказ на туториал. |
участник
Сейчас нет на сайте
| Я пишу туториалы по СЕ 2-3. Что бы знать, что именно интересует форумчан ,прошу писать заказы на туториалы здесь.
Мой блог.DENVER
|
|
|
| |
|