MMORPG Базис

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: MMORPG Базис

Сообщение blackstrip » Пн сен 26, 2016 2:30 pm

Первая прикидка окна персонажа.

Слоты шмоток:
Голова
Лицо
Правый глаз
Левый глаз
Правое ухо
Левое ухо
Нос
Рот
Правая рука
Левая рука
Грудь
Ноги
Правая ступня
Левая ступня
Оружие ближнего боя в правой руке
Оружие дальнего боя
Боеприпасы для оружия дальнего боя
Экстренное зелье/Яд для оружия
Магическое оружие
Оружие ближнего боя в левой руке

Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: MMORPG Базис

Сообщение blackstrip » Вт сен 27, 2016 11:08 am

анимация моба в бою
Волк - Ожидание

Изображение

Волк - Укус

Изображение

Волк - Ходьба

Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: MMORPG Базис

Сообщение blackstrip » Сб окт 01, 2016 1:36 pm

Анимации смерти, как без них =)

Брит умирает

Изображение

Волк умирает

Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: MMORPG Базис

Сообщение blackstrip » Ср окт 05, 2016 12:57 pm

анимация моба в бою
Волк - Вой

Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: MMORPG Базис

Сообщение blackstrip » Чт янв 11, 2018 7:13 am

Переходим на 3D-версию мморпг.

Берем в левую руку современную Delphi, которая делает проги сразу и под Windows, и под Android. И причем они на обоих платформах работают совершенно одинаково.

Берем в правую руку 3DSMax, которое делает 3D модели в форматах и ASE, и DAE, и OBJ (их ест Delphi). Пока что выбран формат OBJ как самый нормально подгружающийся.

Вперед.

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: MMORPG Базис

Сообщение blackstrip » Чт янв 11, 2018 8:07 pm

Новый значок игры (вид спереди, примерно так будет на иконке):




Новый значок вблизи:





Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: MMORPG Базис

Сообщение blackstrip » Сб янв 13, 2018 8:47 am

Новый логотип целиком





Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: MMORPG Базис

Сообщение blackstrip » Пт янв 19, 2018 7:17 am

Интересная статистика по Android-приложениям в Delphi XE5:
- в Debug конфигурации прога дает 2-7 FPS (кадров/с);
- в Release конфигурации прога дает 80-200 FPS.

Т.к. сначала выбран Debug, то кажется что прога на телефоне еле дышит (хочется начать убирать количество полигонов, упрощать модели и т.д.). Но стоит переключиться на Release и скорость отрисовки 3D возрастает в 30 раз!

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: MMORPG Базис

Сообщение blackstrip » Сб фев 03, 2018 10:01 am

Факты о текстурах на 3D моделях в Delphi XE5:
1) делаем 24-битный BMP "4 байт на точку" (R,G,B,пустой байт).
Импортируем модель в Delphi, текстура конвертируется в PNG.
Вес PNG файла текстуры становится: 3 кбайта.
5 цветов на картинке как было, так и осталось.
На 3D модели в Windows текстура видна.
На 3D модели в Android текстуры нет.

2) делаем 24-битный PNG.
Вес PNG файла текстуры: 1,5 кбайта.
Импортируем модель в Delphi.
5 цветов на картинке как было, так и осталось.
На 3D модели в Windows текстура видна.
На 3D модели в Android текстуры нет.

3) делаем настоящий 24-битный BMP (через экспорт OBJ-файлов в 3D Studio MAX, там есть опция перекодировки текстур). Получается 24-битный BMP "3 байт на точку" (R,G,B, без пустого байта). Причем инфо о файле текстуры в IrfanView показал что 12 цветов на картинке стало вместо 5! (какие-то оттенки добавились, видимо как при JPG-запаковке, откуда они взялись - неясно, перекодировка в OBJ экспортере шалит).
Импортируем модель в Delphi, текстура конвертируется в PNG.
Вес PNG файла текстуры становится: 44 кбайта.
На 3D модели в Windows текстура видна.
На 3D модели в Android текстура тоже видна!

Во как =)

Т.е. выбирай или мелкие файлы PNG, которые в андроиде, почему-то, не назначаются моделям совсем никак.
Или бери многоцветные-"сглаженные" 24-битные BMP после экспортера, которые дельфи сама перекодирует в PNG, которые потом будут видны таки в андроиде. Но весить текстуры в проге будет больше.

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: MMORPG Базис

Сообщение blackstrip » Вс фев 11, 2018 6:39 pm

Еще факты о текстурах: в Embarcadero Delphi XE5 нет опции, с которой текстура бы повторялась необходимое количество раз на модели. Если создаешь модель, и U или V координата текстуры вылезает на модели ниже 0, то в вашей проге рисуется в тех местах то что было на 0. Аналогично, все что выше 1 рисуется как будто координата 1.

Вот спина "Брита", кольчуга на туловище имеет щель, которой там быть не должно:
Изображение

Как починить - этот вопрос уже волновал многих:
http://quoteverge.com/embarcadero.delph ... ad/1052997
http://fire-monkey.ru/topic/2207-lightm ... cetexture/
http://www.devsuperpage.com/search/Arti ... tID=150214

Решение такое:

Оказывается, что в исходниках FireMonkey жестко заданы настройки для единичного неповторяющегося отображения текстуры.

Вот модуль для Android FMX.Context.GLES.pas и эти строчки для OpenGL:
Изображение

Если бы здесь стояло:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
то текстура бы повторялась бесконечно для любых координат (целая часть координаты бы отбрасывалась просто, и 0.1 было бы равно 1.1, и 2.1 и т.д.).

А вот модуль для Windows FMX.Context.DX10.pas и там другие строчки, для DirectX:
Изображение

Здесь нужно было бы поставить это чтобы текстура повторялась:
Desc.AddressU := D3D10_TEXTURE_ADDRESS_WRAP;
Desc.AddressV := D3D10_TEXTURE_ADDRESS_WRAP;
Desc.AddressW := D3D10_TEXTURE_ADDRESS_WRAP;
Но поставить указанные изменения прямо в эти модули, лежащие по адресу Program Files\Embarcadero\RAD Studio\12.0\source\fmx , невозможно.

Решение такое:
1) копируем FMX.Context.GLES.pas и FMX.Context.DX10.pas из папки Program Files\Embarcadero\RAD Studio\12.0\source\fmx в папку нашего проекта;
2) добавляем указанные файлы в проект через меню "Project" - "Add to Project...";
3) вносим вышеупомянутые правки кода в эти дубликаты модулей

в FMX.Context.GLES.pas пишем вместо старого кода:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
в FMX.Context.DX10.pas пишем вместо старого кода:
Desc.AddressU := D3D10_TEXTURE_ADDRESS_WRAP;
Desc.AddressV := D3D10_TEXTURE_ADDRESS_WRAP;
Desc.AddressW := D3D10_TEXTURE_ADDRESS_WRAP;
4) получаем кучу предупреждений что модули для Windows не будут в сборке под андроид, а модули для Android не будут в сборке для Windows. Прописываем в наших модулях условия для компилирования, чтоб андроидовский модуль добавлялся пустым если собираем сборку под Windows:
Изображение

в FMX.Context.GLES.pas пишем:
unit FMX.Context.GLES;

{$IFDEF WIN32}
interface
implementation
initialization
end.
{$ENDIF}

{$IFDEF ANDROID}

interface

uses
System.Classes, System.SysUtils, System.Types, System.UITypes, System.UIConsts, System.Generics.Collections, System.Math,

//и т.д. весь код модуля

{$ENDIF}
Аналогичные изменения, но наоборот, прописываем в FMX.Context.DX10.pas:
unit FMX.Context.DX10;

{ $DEFINE DXDEBUG}

{$IFDEF ANDROID}
interface
implementation
initialization
end.
{$ENDIF}

{$IFDEF WIN32}



interface

uses
Winapi.DXGI, Winapi.D3D10, Winapi.D3D10_1, FMX.Types3D, System.Types, System.UITypes, System.SysUtils,
System.Classes, System.Math, System.Generics.Collections;

//и т.д. весь код модуля

{$ENDIF}
5) ВСЁ! Теперь можно делать проги и под Android, и под win32 с нормальными текстурами:

Починенный брит сзади:
Изображение

Он же спереди (но там проблем не было и так, шов был сзади посреди полигона)
Изображение

И под андроидом тоже все прекрасно.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя