Я сам - начинающий пользователь DX Studio. Поскольку никаких уроков по DX Studio на русском я не нашёл, не придумал ничего лучше, как начать самому. Посему - не судите строго. (В примере использована версия 3.1.5.) *** Итак, DX Studio - скачана и установлена. Что дальше? Для первого знакомства я предлагаю вам создать 3Dсцену и добавить туда свою модель... Начнём! 1. Запускаем программу, выбираем создание нового документа:
2. Выбираем тип сцены - 3D:
3. Новая сцена содержит 2 объекта - камеру и источник света:
Урок хороший, простой, подробный, но ИМХО слишком примитивным вещам ты людей учишь. До этого и самому методом проб и ошибок дойти можно. Лично меня интересует одно, как сделать нормальное меню и раздел в нем "настройки".
ggman, по меню в библиотеке оф-сайта есть рабочий пример. Но я его ещё не разбирал. В дальнейшем - коснусь и меню. Сейчас скажу в кратце, что для реализации меню или GUI нам нужно создать новую (2D) сцену. На элементы этой сцены мы вешаем скрипты, которые включают/переключают/управляют чем либо в нашей игре. Пример GUI (делать только начал) :
Наша 3D сцена:
2D GUI:
GUI в 3D сцене:
По меню. Вот простейший скрипт для перехода от заставки к игре:
Code
function onInit() { layers.layer_2.visible=false; } function onClick() { layers.layer_1.visible=false; layers.layer_2.visible=true; }
*** Продолжим! *** Теперь, дабы не возбуждать пенсионеров и не шокировать молодёжь, оденем "нашу дашу". Одеваем без скриптов, просто присоединяем элементы одежды к соответствующим частям тела. Как это сделать? 1. Как было описано выше, добавляем в сцену модели элементов одежды:
2. Присоединяем лифчик к персонажу:
3. Выбираем подгруппу, и объединяем все трансформации с таковыми родительского объекта:
4. Повторяем всё это с другими частями одежды, и видим результат - дама одета:
*** Идём дальше. Как добавить физику в нашу сцену? *** 1. Персонаж, висящий в воздухе - это замечательно:
2. Но куда замечательнее - персонаж, стоящий на твёрдой почве.Твёрдую почву в нашем примере представляет текстурированная плоскость. Она добавляется в сцену так же, как и все предыдущие модели. Мы не будем её масштабировать: пусть будет большой:
3. Запустим превью - и оценим результат:
4. Хорошо. Пришло время добавить в сцену физику. Чтоб это сделать, просто выделяем (в списке или окне 3D) интересующий нас объект:
5. В окне Object Properties, справа от 3D окна, находим пункт Physics Engine - ставим галочку напротив Enable. Физика включена:
6. Запустим превью. Как и ожидалось - наша дама уходит под землю:
7. Чтоб воспрепятствовать этому, добавим физику и нашей почве. Можете поэкспериментировать, Но скажу сразу: чтоб почва не улетала вместе с персонажем, дефолтную галочку возле Allow movement нужно убрать:
8. Запустим превью. Кажется, наличие физики теперь никак себя не проявляет? Хотите убедиться, что это не так? Добавим физику камере. Отключим вращения при столкновениях: или наша камера будет вести себя как мячик:
9. Запустите превью и попробуйте пройти сквозь землю. А теперь - врежьтесь в персонажа:
*** Вот скриптованием и продолжим. Наш персонаж упал. Что нужно сделать, чтоб вернуть всё в исходное положение? Произвести рестарт. *** 1. Простейший скрипт:
Code
function onClick() { system.restart(); }
2. Повесим его на нашу даму. Для этого кликнем на неё правой кнопкой мышки и выберем Edit Script. В открывшемся окне редактора пропишим скрипт:
3. Запустим превью - и снова уроним её. А теперь кликнем на ней - что произошло? Верно, рестарт:
4. Ещё один скрипт добавит музыку в нашу игру:
Code
function onInit() { scene.sounds.mystery.play() }
5. Его мы повесим на почву:
6. Как же быть: скрипт есть, а музыки нет? В закладках в левом нижнем углу найдём Sounds, далее - жмём на крест: Add Sound:
7. В открывшемся окне поставим галочку возле пункта Looped - пусть музыка играет без остановок:
8. Всё бы здорово... Да только название нашего звука не соответствует названию в скрипте. Переименуем его. Это просто: кликнув по звуку правой кнопкой, выберем Rename:
*** Женщины знают много всяких штук. В том числе - и непечатных. Но, поскольку совокупляться или драться нам пока не с кем, пусть наша дама просто садится и встаёт. 1. Это - хороший повод добавить в нашу сцену GUI. Чтоб создать GUI (графический пользовательский интерфейс), кликнув правой кнопкой мышки в списке сцен, добавим в наш проект новую 2D сцену:
2. GUI создан. В нём пока нет ни одной кнопки - добавим их:
3. Запустим превью - оценим результат:
4. Кнопки есть, но они ничего не включают. Повесим на первую кнопку скрипт рестарта. Для этого откроем скрипт в 3D сцене нашего проекта - мы вешали его на персонажа:
5. Выделим всё - и скопируем:
6. Откроем 2D сцену и повесим скрипт на выделенную кнопку. Скрипты добавляются одинаково, как 2D, так и 3D объектам. Откроем редактор - и вставим скопированный текст:
7. Дальше я привожу 3 скрипта: 1)
Code
function onClick() { scenes.scene_1.objects.GNOME_WOMAN_000_1.animation="stay"; }
2)
Code
function onClick() { scenes.scene_1.objects.GNOME_WOMAN_000_1.animation="duck"; }
3)
Code
function onClick() { system.exit() }
8. Повесьте их сами на оставшиеся кнопки:
9. Запустите превью - наша дама садится и встаёт, последний скрипт завершает программу:
Привет! Впечатления после нескольких часов использования: 1.Ко многим настройкам довольно замудрёный, не интуитивный доступ, без прочтения уроков методом научного тыка можно просто не найти их. 2.Динамические тени сильно сажают производительность, а лайтмапера в движке нет, буду пробовать сторонние программы, но это только усложняет разработку уровней. 3. И вообще производительность оставляет желать лучшего, буду рыть в сторону поиска средств оптимизации в движке. К сожалению многие другие движки показывают лучшие результаты в более сложных и не оптимизированных сценах. Но пока не сдаюсь
После некоторых мытарств по документации DX Studio выкладываю вольный перевод статьи, посвящённой основам оптимизации применительно к данному движку. Хотя многое актуально и для других движков.
Руководство – Как получить большую сцену в DX Studio Если Вы сделали большую сцену в своем пакете моделирования, это руководство поможет Вам эффективно перенести её в DX Studio.
Проверьте модель Первая вещь, которую Вы должны сделать, удостовериться, что Ваша модель является подходящей для рендеринга в реальном времени, так что сделайте несколько проверок на следующее: Эта модель низко-полигональная? Вы не можете иметь цилиндр с 10,000 поверхностей, когда Вы собираетесь играть в режиме реального времени, поэтому убедитесь что наименьшее количество возможных поверхностей экспортируется. Если Вы можете, сгенерируйте карты нормалей с высоко-полигональной модели, чтобы низко-полигональная выглядела так-же, поскольку карта нормалей улучшит качество поверхностей. Есть ли какие-либо перекрывающиеся грани? Если поверхности будут компланарными, то они будут 'мерцать' или будут 'биться текстуры' в плеере. Потому что Z буфер в режиме реального времени является только 24-битным. Вы можете настроить плеер оптимально устанавливая zNear и zFar сцены, но болшая польза будет, если Вы попытаетесь избежать этоих ситуаций в моделях изначально. Я применил все преобразования? Движок в реальном времени поддерживает только треугольные меши, так что удостоверьтесь, что любые меши преобразованы. Имею я предопределённый физический объём? Маловероятно, что Вы захотите проверять каждый лист дерева физически, так что сделайте супернизко-полигональную версию Вашей модели и назовите ее DXPHYSICS как подгруппу для каждого объекта верхнего уровня. Также стоит определить средне-полигональную модель и называть её DXSHADOW, если Вы собираетесь использовать динамические тени в результате. Эти объёмные формы, в отличие от основной модели, должны быть единственным мешем без подгрупп. Я всё сгруппировал логически? Разместите объекты в именованные группы и они будут проще разделяться позже. Все в одном уровне создаёт дёргающееся изображение. В качестве приблизительного ориентира, убедитесь, что существует не более 20 объектов на данном уровне. Экспорт Используйте dxmesh плагин для Max 8/9 находящийся в разделе загрузок веб-сайте DX Studio, или для других моделлеров выбирайте формат, который поддерживает все нужные Вам данные в модели. Сохраните dxmesh (который будет включать текстуры) или другой файл со всеми необходимыми текстурами в папке. Импорт Подготовьте сцену DX Studio, создав 3D сцену, изменив свет на directional в настоящий момент, затем добавте Ваши меши. Добавим простую камеру прогулки Простой путь добавить камеру прогулки в том, чтобы просто включить физику на объекте camera_1 (и отключить ротацию и гравитацию), включите физику в Вашей модели (и отключите движение в ней). Тогда этот простой код в скрипте сцены должен заблокировать камеру на определенной высоте...
Code
var camHeight=2; // установите это согласно масштаба Вашей модели var camHeightRange=0.2; // дайте камере некоторый диапазон высоты или её физическая оболочка вызовет аппаратный сбой
function onInit() { objects.camera_1.pos.y=camHeight; objects.camera_1.physics.margin=0.5; objects.camera_1.physics.setConstraintBox(new Vector(-15000,camHeight-camHeightRange,-15000),new Vector(15000,camHeight+camHeightRange,15000)); }
Запоминание прочитанного - рождает знание. Размышление над прочитанным и прожитым - рождает мудрость. А. Турчинов К сожалению, умных людей куда больше, чем благородных. Борис Парамонов
Сообщение отредактировал vovchik - Вторник, 15 Ноября 2011, 12:09
чтобы закрепить камеру на персе можно так же сделать атач поз и атач рот на голове перса по ик и игрику. Движения перса можно сделать модулем там есть видео туторы по этому и по камерам.
Добавлено (16.11.2011, 05:44) --------------------------------------------- я так сделал две камеры кнопки переключения от третьего и от первого лица
Добавлено (16.11.2011, 07:15) --------------------------------------------- и чтобы что то там сделать нужны километры кода
Видимо не стоит тратить время, я лично разочаровался в первый день общения с DX Studio, написанный на C# NeoAxis рендерит быстрее, чем это чудо которое писано на С++. Да и игра посредством плеера просто извращение какое-то. Даже если мне станут понижать репу не откажусь от своих слов . Запоминание прочитанного - рождает знание. Размышление над прочитанным и прожитым - рождает мудрость. А. Турчинов К сожалению, умных людей куда больше, чем благородных. Борис Парамонов