MMORPG Базис
- blackstrip
- Админ
- Сообщения: 1185
- Зарегистрирован: Ср янв 02, 2008 1:42 pm
- Откуда: Подольск
- Контактная информация:
Re: MMORPG Базис
Первая прикидка окна персонажа.
Слоты шмоток:
Голова
Лицо
Правый глаз
Левый глаз
Правое ухо
Левое ухо
Нос
Рот
Правая рука
Левая рука
Грудь
Ноги
Правая ступня
Левая ступня
Оружие ближнего боя в правой руке
Оружие дальнего боя
Боеприпасы для оружия дальнего боя
Экстренное зелье/Яд для оружия
Магическое оружие
Оружие ближнего боя в левой руке
Слоты шмоток:
Голова
Лицо
Правый глаз
Левый глаз
Правое ухо
Левое ухо
Нос
Рот
Правая рука
Левая рука
Грудь
Ноги
Правая ступня
Левая ступня
Оружие ближнего боя в правой руке
Оружие дальнего боя
Боеприпасы для оружия дальнего боя
Экстренное зелье/Яд для оружия
Магическое оружие
Оружие ближнего боя в левой руке
- blackstrip
- Админ
- Сообщения: 1185
- Зарегистрирован: Ср янв 02, 2008 1:42 pm
- Откуда: Подольск
- Контактная информация:
Re: MMORPG Базис
анимация моба в бою
Волк - Ожидание
Волк - Укус
Волк - Ходьба
Волк - Ожидание
Волк - Укус
Волк - Ходьба
- blackstrip
- Админ
- Сообщения: 1185
- Зарегистрирован: Ср янв 02, 2008 1:42 pm
- Откуда: Подольск
- Контактная информация:
Re: MMORPG Базис
Анимации смерти, как без них =)
Брит умирает
Волк умирает
Брит умирает
Волк умирает
- blackstrip
- Админ
- Сообщения: 1185
- Зарегистрирован: Ср янв 02, 2008 1:42 pm
- Откуда: Подольск
- Контактная информация:
Re: MMORPG Базис
анимация моба в бою
Волк - Вой
Волк - Вой
- blackstrip
- Админ
- Сообщения: 1185
- Зарегистрирован: Ср янв 02, 2008 1:42 pm
- Откуда: Подольск
- Контактная информация:
Re: MMORPG Базис
Переходим на 3D-версию мморпг.
Берем в левую руку современную Delphi, которая делает проги сразу и под Windows, и под Android. И причем они на обоих платформах работают совершенно одинаково.
Берем в правую руку 3DSMax, которое делает 3D модели в форматах и ASE, и DAE, и OBJ (их ест Delphi). Пока что выбран формат OBJ как самый нормально подгружающийся.
Вперед.
Берем в левую руку современную Delphi, которая делает проги сразу и под Windows, и под Android. И причем они на обоих платформах работают совершенно одинаково.
Берем в правую руку 3DSMax, которое делает 3D модели в форматах и ASE, и DAE, и OBJ (их ест Delphi). Пока что выбран формат OBJ как самый нормально подгружающийся.
Вперед.
- blackstrip
- Админ
- Сообщения: 1185
- Зарегистрирован: Ср янв 02, 2008 1:42 pm
- Откуда: Подольск
- Контактная информация:
Re: MMORPG Базис
Новый значок игры (вид спереди, примерно так будет на иконке):
Новый значок вблизи:
- blackstrip
- Админ
- Сообщения: 1185
- Зарегистрирован: Ср янв 02, 2008 1:42 pm
- Откуда: Подольск
- Контактная информация:
Re: MMORPG Базис
Новый логотип целиком
- blackstrip
- Админ
- Сообщения: 1185
- Зарегистрирован: Ср янв 02, 2008 1:42 pm
- Откуда: Подольск
- Контактная информация:
Re: MMORPG Базис
Интересная статистика по Android-приложениям в Delphi XE5:
- в Debug конфигурации прога дает 2-7 FPS (кадров/с);
- в Release конфигурации прога дает 80-200 FPS.
Т.к. сначала выбран Debug, то кажется что прога на телефоне еле дышит (хочется начать убирать количество полигонов, упрощать модели и т.д.). Но стоит переключиться на Release и скорость отрисовки 3D возрастает в 30 раз!
- в Debug конфигурации прога дает 2-7 FPS (кадров/с);
- в Release конфигурации прога дает 80-200 FPS.
Т.к. сначала выбран Debug, то кажется что прога на телефоне еле дышит (хочется начать убирать количество полигонов, упрощать модели и т.д.). Но стоит переключиться на Release и скорость отрисовки 3D возрастает в 30 раз!
- blackstrip
- Админ
- Сообщения: 1185
- Зарегистрирован: Ср янв 02, 2008 1:42 pm
- Откуда: Подольск
- Контактная информация:
Re: MMORPG Базис
Факты о текстурах на 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, которые потом будут видны таки в андроиде. Но весить текстуры в проге будет больше.
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
- Админ
- Сообщения: 1185
- Зарегистрирован: Ср янв 02, 2008 1:42 pm
- Откуда: Подольск
- Контактная информация:
Re: MMORPG Базис
Еще факты о текстурах: в 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:
Если бы здесь стояло:
А вот модуль для Windows FMX.Context.DX10.pas и там другие строчки, для DirectX:
Здесь нужно было бы поставить это чтобы текстура повторялась:
Решение такое:
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 пишем вместо старого кода:
в FMX.Context.GLES.pas пишем:
Починенный брит сзади:
Он же спереди (но там проблем не было и так, шов был сзади посреди полигона)
И под андроидом тоже все прекрасно.
Вот спина "Брита", кольчуга на туловище имеет щель, которой там быть не должно:
Как починить - этот вопрос уже волновал многих:
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:
Если бы здесь стояло:
то текстура бы повторялась бесконечно для любых координат (целая часть координаты бы отбрасывалась просто, и 0.1 было бы равно 1.1, и 2.1 и т.д.).glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
А вот модуль для Windows FMX.Context.DX10.pas и там другие строчки, для DirectX:
Здесь нужно было бы поставить это чтобы текстура повторялась:
Но поставить указанные изменения прямо в эти модули, лежащие по адресу Program Files\Embarcadero\RAD Studio\12.0\source\fmx , невозможно.Desc.AddressU := D3D10_TEXTURE_ADDRESS_WRAP;
Desc.AddressV := D3D10_TEXTURE_ADDRESS_WRAP;
Desc.AddressW := D3D10_TEXTURE_ADDRESS_WRAP;
Решение такое:
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 пишем вместо старого кода:
в FMX.Context.DX10.pas пишем вместо старого кода:glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
4) получаем кучу предупреждений что модули для Windows не будут в сборке под андроид, а модули для Android не будут в сборке для Windows. Прописываем в наших модулях условия для компилирования, чтоб андроидовский модуль добавлялся пустым если собираем сборку под Windows:Desc.AddressU := D3D10_TEXTURE_ADDRESS_WRAP;
Desc.AddressV := D3D10_TEXTURE_ADDRESS_WRAP;
Desc.AddressW := D3D10_TEXTURE_ADDRESS_WRAP;
в FMX.Context.GLES.pas пишем:
Аналогичные изменения, но наоборот, прописываем в FMX.Context.DX10.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}
5) ВСЁ! Теперь можно делать проги и под Android, и под win32 с нормальными текстурами: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}
Починенный брит сзади:
Он же спереди (но там проблем не было и так, шов был сзади посреди полигона)
И под андроидом тоже все прекрасно.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей