Пятница, 10 Мая 2024, 13:39

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » 3D движки для разработки игр » Как начать работу в DX Studio? Микро-уроки. (всё впервые)
Как начать работу в DX Studio? Микро-уроки.
horaxДата: Воскресенье, 06 Ноября 2011, 23:34 | Сообщение # 1
TheLord
Сейчас нет на сайте
Я сам - начинающий пользователь DX Studio. Поскольку никаких уроков по DX Studio на русском я не нашёл, не придумал ничего лучше, как начать самому. Посему - не судите строго. (В примере использована версия 3.1.5.)
***
Итак, DX Studio - скачана и установлена. Что дальше? Для первого знакомства я предлагаю вам создать 3Dсцену и добавить туда свою модель... Начнём!
1. Запускаем программу, выбираем создание нового документа:

2. Выбираем тип сцены - 3D:

3. Новая сцена содержит 2 объекта - камеру и источник света:

4. Чтоб добавить анимированную модель, нажимаем Insert>Add Mesh:

5. Выбираем модель:

6. Модель добавлена:

7. Она велика. Чтоб изменить масштаб, жмём на ней (в сцене или в списке) правой кнопкой мышки, выбираем Edit Pos/Rot/Scale, изменяем масштаб:

8. Модель масштабирована - запускаем превью, чтоб оценить результат:

9. Результат - наша сцена:

***
Пока - всё. Если вас заинтересовала DX Studio, пишите, спрашивайте - совместными усилиями мы найдём решение всех проблем.




Dlaczego kiedy Polak pisze: "Oh baby!",
Amerykanin czyta coś całkiem inne?!! ©Horax
***
HVC IAM SVM


Сообщение отредактировал horax - Понедельник, 07 Ноября 2011, 21:24
ggmanДата: Понедельник, 07 Ноября 2011, 03:01 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Урок хороший, простой, подробный, но ИМХО слишком примитивным вещам ты людей учишь. До этого и самому методом проб и ошибок дойти можно.
Лично меня интересует одно, как сделать нормальное меню и раздел в нем "настройки".
СибирскийДата: Понедельник, 07 Ноября 2011, 04:15 | Сообщение # 3
Javatar
Сейчас нет на сайте
Т.е. Как я понял, это как как юнити, но побыстрее и на с++?

horaxДата: Понедельник, 07 Ноября 2011, 10:55 | Сообщение # 4
TheLord
Сейчас нет на сайте
ggman, по меню в библиотеке оф-сайта есть рабочий пример. Но я его ещё не разбирал. В дальнейшем - коснусь и меню. Сейчас скажу в кратце, что для реализации меню или GUI нам нужно создать новую (2D) сцену. На элементы этой сцены мы вешаем скрипты, которые включают/переключают/управляют чем либо в нашей игре.
Пример GUI (делать только начал) :

По меню. Вот простейший скрипт для перехода от заставки к игре:
Code

function onInit()
{
  layers.layer_2.visible=false;  
}
function onClick()
{
  layers.layer_1.visible=false;
  layers.layer_2.visible=true;
}

***
Сибирский, C++ - для дополнений и расширений. Скриптование - на JavaScript-е (ECMAScript).




Dlaczego kiedy Polak pisze: "Oh baby!",
Amerykanin czyta coś całkiem inne?!! ©Horax
***
HVC IAM SVM
horaxДата: Понедельник, 07 Ноября 2011, 12:43 | Сообщение # 5
TheLord
Сейчас нет на сайте
***
Продолжим!
***
Теперь, дабы не возбуждать пенсионеров и не шокировать молодёжь, оденем "нашу дашу".
Одеваем без скриптов, просто присоединяем элементы одежды к соответствующим частям тела.
Как это сделать?
1. Как было описано выше, добавляем в сцену модели элементов одежды:

2. Присоединяем лифчик к персонажу:

3. Выбираем подгруппу, и объединяем все трансформации с таковыми родительского объекта:

4. Повторяем всё это с другими частями одежды, и видим результат - дама одета:

***




Dlaczego kiedy Polak pisze: "Oh baby!",
Amerykanin czyta coś całkiem inne?!! ©Horax
***
HVC IAM SVM


Сообщение отредактировал horax - Понедельник, 07 Ноября 2011, 16:09
horaxДата: Понедельник, 07 Ноября 2011, 15:44 | Сообщение # 6
TheLord
Сейчас нет на сайте
***
Идём дальше. Как добавить физику в нашу сцену?
***
1. Персонаж, висящий в воздухе - это замечательно:

2. Но куда замечательнее - персонаж, стоящий на твёрдой почве.Твёрдую почву в нашем примере представляет текстурированная плоскость. Она добавляется в сцену так же, как и все предыдущие модели. Мы не будем её масштабировать: пусть будет большой:

3. Запустим превью - и оценим результат:

4. Хорошо. Пришло время добавить в сцену физику. Чтоб это сделать, просто выделяем (в списке или окне 3D) интересующий нас объект:

5. В окне Object Properties, справа от 3D окна, находим пункт Physics Engine - ставим галочку напротив Enable. Физика включена:

6. Запустим превью. Как и ожидалось - наша дама уходит под землю:

7. Чтоб воспрепятствовать этому, добавим физику и нашей почве. Можете поэкспериментировать, Но скажу сразу: чтоб почва не улетала вместе с персонажем, дефолтную галочку возле Allow movement нужно убрать:

8. Запустим превью. Кажется, наличие физики теперь никак себя не проявляет? Хотите убедиться, что это не так? Добавим физику камере. Отключим вращения при столкновениях: или наша камера будет вести себя как мячик:

9. Запустите превью и попробуйте пройти сквозь землю. А теперь - врежьтесь в персонажа:

Физика работает корректно.
***




Dlaczego kiedy Polak pisze: "Oh baby!",
Amerykanin czyta coś całkiem inne?!! ©Horax
***
HVC IAM SVM


Сообщение отредактировал horax - Понедельник, 07 Ноября 2011, 16:15
OleGoNДата: Понедельник, 07 Ноября 2011, 16:28 | Сообщение # 7
Game Maker User
Сейчас нет на сайте
horax, МОЛОДЕЦ! Постарался. Думаю многим пригодится! happy

horaxДата: Понедельник, 07 Ноября 2011, 16:35 | Сообщение # 8
TheLord
Сейчас нет на сайте
OleGoN, спасибо! Продолжение - воспоследует.



Dlaczego kiedy Polak pisze: "Oh baby!",
Amerykanin czyta coś całkiem inne?!! ©Horax
***
HVC IAM SVM
СибирскийДата: Понедельник, 07 Ноября 2011, 16:40 | Сообщение # 9
Javatar
Сейчас нет на сайте
horax, Вай, круто! Как раз js учу!

horaxДата: Понедельник, 07 Ноября 2011, 21:13 | Сообщение # 10
TheLord
Сейчас нет на сайте
***
Вот скриптованием и продолжим.
Наш персонаж упал. Что нужно сделать, чтоб вернуть всё в исходное положение? Произвести рестарт.
***
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:

9. Запустим превью - музыка звучит:

***




Dlaczego kiedy Polak pisze: "Oh baby!",
Amerykanin czyta coś całkiem inne?!! ©Horax
***
HVC IAM SVM


Сообщение отредактировал horax - Понедельник, 07 Ноября 2011, 21:16
ggmanДата: Вторник, 08 Ноября 2011, 13:00 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
Отличные уроки!!!
horaxДата: Среда, 09 Ноября 2011, 18:03 | Сообщение # 12
TheLord
Сейчас нет на сайте
***
Женщины знают много всяких штук. В том числе - и непечатных. Но, поскольку совокупляться или драться нам пока не с кем, пусть наша дама просто садится и встаёт.
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. Запустите превью - наша дама садится и встаёт, последний скрипт завершает программу:

***




Dlaczego kiedy Polak pisze: "Oh baby!",
Amerykanin czyta coś całkiem inne?!! ©Horax
***
HVC IAM SVM


Сообщение отредактировал horax - Среда, 09 Ноября 2011, 18:11
Max_GamedevДата: Среда, 09 Ноября 2011, 18:23 | Сообщение # 13
почетный гость
Сейчас нет на сайте
Интересный engine. Хорошо проработанный api - минимум кода
horaxДата: Среда, 09 Ноября 2011, 18:26 | Сообщение # 14
TheLord
Сейчас нет на сайте
Quote (Max_Gamedev)
Интересный engine. Хорошо проработанный api - минимум кода

Max_Gamedev, ну минимум потому, что я даю пока самые азы. Дальше будет больше.




Dlaczego kiedy Polak pisze: "Oh baby!",
Amerykanin czyta coś całkiem inne?!! ©Horax
***
HVC IAM SVM


Сообщение отредактировал horax - Среда, 09 Ноября 2011, 18:26
OleGoNДата: Среда, 09 Ноября 2011, 20:28 | Сообщение # 15
Game Maker User
Сейчас нет на сайте
horax, Супер. По твоим урокам учу. Ждём новых smile

KillerbotДата: Понедельник, 14 Ноября 2011, 14:00 | Сообщение # 16
участник
Сейчас нет на сайте
Молодец, наконец-то нашел что-то достойное и легкое!

Добавлено (10.11.2011, 22:13)
---------------------------------------------
Вот классный урок есть по созданию простенькой 2D игры.

Добавлено (14.11.2011, 14:00)
---------------------------------------------
Замолчали что-то все wink

vovchikДата: Вторник, 15 Ноября 2011, 02:52 | Сообщение # 17
частый гость
Сейчас нет на сайте
Привет!
Впечатления после нескольких часов использования:
1.Ко многим настройкам довольно замудрёный, не интуитивный доступ, без прочтения уроков методом научного тыка можно просто не найти их.
2.Динамические тени сильно сажают производительность, а лайтмапера в движке нет, буду пробовать сторонние программы, но это только усложняет разработку уровней.
3. И вообще производительность оставляет желать лучшего, буду рыть в сторону поиска средств оптимизации в движке. К сожалению многие другие движки показывают лучшие результаты в более сложных и не оптимизированных сценах.
Но пока не сдаюсь smile smok

После некоторых мытарств по документации 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
vinurdДата: Среда, 16 Ноября 2011, 07:15 | Сообщение # 18
постоянный участник
Сейчас нет на сайте
чтобы закрепить камеру на персе можно так же сделать атач поз и атач рот на голове перса по ик и игрику. Движения перса можно сделать модулем там есть видео туторы по этому и по камерам.

Добавлено (16.11.2011, 05:44)
---------------------------------------------
я так сделал две камеры кнопки переключения от третьего и от первого лица

Добавлено (16.11.2011, 07:15)
---------------------------------------------
и чтобы что то там сделать нужны километры кода

ggmanДата: Среда, 07 Декабря 2011, 12:22 | Сообщение # 19
постоянный участник
Сейчас нет на сайте
Я так понимаю уроков больше не будет(((
vovchikДата: Воскресенье, 11 Декабря 2011, 19:05 | Сообщение # 20
частый гость
Сейчас нет на сайте
Quote (ggman)
Я так понимаю уроков больше не будет(((

Видимо не стоит тратить время, я лично разочаровался в первый день общения с DX Studio, написанный на C# NeoAxis рендерит быстрее, чем это чудо которое писано на С++. Да и игра посредством плеера просто извращение какое-то. Даже если мне станут понижать репу не откажусь от своих слов smile .


Запоминание прочитанного - рождает знание.
Размышление над прочитанным и прожитым - рождает мудрость. А. Турчинов
К сожалению, умных людей куда больше, чем благородных. Борис Парамонов
Форум игроделов » Движки для разработки игр и сложные системы разработки » 3D движки для разработки игр » Как начать работу в DX Studio? Микро-уроки. (всё впервые)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг