Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

Давайте попробуем развить демку dceDemo из состава GLScene ?   Найти похожие ветки 

 
Ктото   (2004-09-17 02:54) [0]

Потому, что она похожа на недоделанный игровой движок. (Графика плюс коллизии.) И можно попытаться его доделать. Или хотя бы обсудить чего ей нехвататет, чтобы стать игрой.

Сама демка dceDemo, если кто не знает, лежит тут :
http://cvs.sourceforge.net/viewcvs.py/glscene/Demos/behaviours/DCEDemo/

Я пока сделал небольшой редактор Джиэльсценовского мира, с возможностью сохранять/загружать отредактированный мир в ini-файл. Ini-файлы удобны тем, что их можно легко подредактировать ручками. Например, вставить несколько однотипных объектов с небольшим смещением координа, и таким образом получить, например забор, или несколько этажей здания. И т. п.

Скачать можно тут : http://dcegame.narod.ru/dcegame.html
Исходник к демке прилагается. В файле save.ini находится небольшой уровень, сделанный в редакторе.

Вопросы, пожелания ? СтОит ли ? Куда двигаться дальше ?


 
DeadMeat ©   (2004-09-17 17:32) [1]

Я не совсем догнал, как ты хочешь ее доделать?
В принципе превратить в некий шутер проще простого...

---
...Death Is Only The Begining...


 
kastik   (2004-09-17 20:23) [2]

> Ктото   (17.09.04 02:54)
*.ini - юзать для подобных целей, просто не рационально. Они очень медленные. Дело в том, что они предназначены для хранения настроек различных, а не для хранения информации об уровне.


 
miek   (2004-09-17 21:10) [3]

>Они очень медленные

Субъективно судишь, это смотря как грузить.


 
Ктото   (2004-09-18 01:26) [4]


> DeadMeat ©   (17.09.04 17:32) [1]
> Я не совсем догнал, как ты хочешь ее доделать?
> В принципе превратить в некий шутер проще простого...

Ну, преврати, раз проще простого. Да выложит тут исходник. Только ты ведь знаешь, что это совсем не просто как кажется, и очень трудоёмко.


> kastik   (17.09.04 20:23) [2]
> > Ктото   (17.09.04 02:54)
> *.ini - юзать для подобных целей, просто не рационально.

А ты сравни скорость загрузки демки с ini-файлом приложенном к демке, и без него, и убедишься, что оно почти не отличается.
А там 58 3ds-объектов.


 
kastik   (2004-09-18 02:50) [5]

>Ктото   (18.09.04 01:26) [4]

Я не хочу развивать спор на тему *.ini файлов. Просто я убедился на собственной практике в их медленной работе. Вот когда будет записей за несколько сотен, тогда ты поймешь, о чем я говорю.

Они же все-таки не предназначены для хранения базы данных. Просто я тоже однажды был так наивен и пытался хранить в них различную информацию, как в базе данных. В итоге напоролся на грабли.


 
Ктото   (2004-09-18 07:21) [6]


> kastik   (18.09.04 02:50) [5]
> >Ктото   (18.09.04 01:26) [4]
>
> Я не хочу развивать спор на тему *.ini файлов. Просто я
> убедился на собственной практике в их медленной работе.
> Вот когда будет записей за несколько сотен, тогда ты поймешь,
> о чем я говорю.

1 Поставь эксперимент и убедись сам.
2 Для сравнения, можешь посчитать количество статичных объектов, скажем в Сэме, который аналогичен по строению уровней.
3 Задайся вопросом, зачем вообще игры делят на уровни.


> Просто я тоже однажды был так наивен

Запости свой код, наивный.


 
kastik   (2004-09-18 15:26) [7]

>Ктото   (18.09.04 07:21) [6]

Ты наверное меня не правильно понял. Дело в том, что сам модуль TIniFiles с файлами больших размеров медленно работает.

1) Эксперементы я ставил.
2) Почему игры делят на уровни я тоже знаю.
3) Не думаю что в Сэме уровни хранятся в обычных *.ini файлах.

Код:

var
 MyLevel: TIniFile;
begin
 MyLevel:= TIniFile.Create("c:\my_level.ini");
 with MyLevel do begin
   MyObject.Name:=ReadString("mysection","name","noname");
   MyObject.X:=ReadString("mysection","x","0.0");
   MyObject.Y:=ReadString("mysection","y","0.0");
   MyObject.Z:=ReadString("mysection","z","0.0");
 end;
 MyLevel.Free;
end;


Это код не из той игры, где я читаю подобным способом уровни. Это просто пример чтения ini файла используя модуль TIniFiles. Писал на "бум".

---
Я извиняюсь, но это уже, похоже, офф-топ


 
DeadMeat ©   (2004-09-18 18:37) [8]


> [4] Ктото   (18.09.04 01:26)


> Ну, преврати, раз проще простого. Да выложит тут исходник.
> Только ты ведь знаешь, что это совсем не просто как кажется,
> и очень трудоёмко.

Видимо я этого не знал, поэтому мне легче... ;-)
На самом деле, вот это я делал гдето.... часа 3-3.5. Есть пара глюков, но как я уже сказал, это "некий шутер". Стрелялку тоже можно прикрутить без проблем...
Управление:
W,S,A,D - движение
CTRL - сидение
SHIFT - хождение
SPACE - прыгание

Линк - http://www.deadmeat.nightmail.ru/minishooter.rar
GLScene, который использовался - http://www.deadmeat.nightmail.ru/Source.rar

---
...Death Is Only The Begining...


 
DeadMeat ©   (2004-09-18 18:38) [9]

Кстати. Больше половины всего этого, есть в демках самого GLScene...

---
...Death Is Only The Begining...


 
Колбасьев ©   (2004-09-18 21:36) [10]

А exe нельзя, но без maps и model? А то у меня нет GLScene, а посмотреть хочеться! Да и ошибки открытия разные бывают, а так exe без проблем.


 
DeadMeat ©   (2004-09-18 22:16) [11]

Вот *.ЕХЕ
http://deadmeat.nightmail.ru/Project1.rar

Забыл добавить.
Управление мышью. А если кнопочку зажать, то можно камеру отдельно покрутить (GLScene-овский стандарт)

---
...Death Is Only The Begining...


 
Ктото   (2004-09-19 01:40) [12]


> kastik   (18.09.04 15:26) [7]
> 3) Не думаю что в Сэме уровни хранятся в обычных *.ini файлах.

1. Посмотри в Vice City файлы типа *.ide и *.ipl .
2. Можешь предложить лучший способ хранения - предложи.


> Это код не из той игры, где я читаю подобным способом уровни.
> Это просто пример чтения ini файла используя модуль TIniFiles.
> Писал на "бум".

Да, ладно, на "бум". Наверное из моей демки взял. :)


> DeadMeat ©   (18.09.04 18:37) [8]
>
> > [4] Ктото   (18.09.04 01:26)
>
>
> > Ну, преврати, раз проще простого. Да выложит тут исходник.
>
> > Только ты ведь знаешь, что это совсем не просто как кажется,
>
> > и очень трудоёмко.
>
> Видимо я этого не знал, поэтому мне легче... ;-)
> На самом деле, вот это я делал гдето.... часа 3-3.5. Есть
> пара глюков, но как я уже сказал, это "некий шутер". Стрелялку
> тоже можно прикрутить без проблем...
> Управление:
> W,S,A,D - движение
> CTRL - сидение
> SHIFT - хождение
> SPACE - прыгание

Поставил скачиваться. Кстати, есть ли какие компоненты специальные, чтобы настраивать управление ? А то самому лепить как-то лень.

Кстати, не знаешь чем лучше игры потрошить ? Сэма, например, или ГТА ?


 
Ктото   (2004-09-19 01:49) [13]


> DeadMeat ©   (18.09.04 22:16) [11]
> Вот *.ЕХЕ
> http://deadmeat.nightmail.ru/Project1.rar
> GLScene, который использовался -
> http://www.deadmeat.nightmail.ru/Source.rar

Файлы не скачиваются.

При компиляции проекта пишет, что не может найти файла animation.cfg .

Изучи стандарт стилевого оформления кода : http://delphi.vitpc.com/article/coderules.htm

Для сдвигания блоков по горизонтали используй клавиши Shift+Ctrl+I и  Shift+Ctrl+U


 
Ктото   (2004-09-19 02:10) [14]


> DeadMeat ©   (18.09.04 22:16) [11]

Поставил файл animation.cfg из GLScene"овской демки Q3Demo. Подошёл, но криво, анимация не соответствует. Выложи лучше оригинальный.

Как отекстуривать уровни ? Не одной единственной текстурой, а полноценно ?

И, кстати, вопрос на засыпку. Если это шутер, то где же стрельба ? :)


 
DeadMeat ©   (2004-09-19 09:26) [15]


> Файлы не скачиваются.

и

> При компиляции проекта пишет, что не может найти файла animation.cfg


Недопонял... В смысле если он не скачивается, то.... А при компиляции или при запуске?


> Изучи стандарт стилевого оформления кода : http://delphi.vitpc.com/article/coderules.htm

Нуу... Я ведь всегда писал только для себя. Вот в этом и есть моя проблема. Мало кто мой код понимает, хотя я сам в нем отлично ориентируюсь... Давно уже собирался переучиться, да все лень...

> Поставил файл animation.cfg из GLScene"овской демки Q3Demo.
> Подошёл, но криво, анимация не соответствует. Выложи лучше
> оригинальный.

Странно все это... Он там был. Но все равно выложу...


> Как отекстуривать уровни ? Не одной единственной текстурой,
> а полноценно ?

Я уровень не рисовал, а взял готовый. У него есть все текстуры и они правильно ложатся. Но я решил их не включать в пакет, чтобы уменьшить объем хоть както... Я и модели покромсал немного для этого... Но animation.cfg там точно был.


> И, кстати, вопрос на засыпку. Если это шутер, то где же
> стрельба ? :)

см [8] DeadMeat ©   (18.09.04 18:37), "Стрелялку тоже можно прикрутить без проблем..."
Делается это за пару тройку минут... Щас у меня инета мало осталось, поэтому смогу залить только завтра (или послезавтра)...

---
...Death Is Only The Begining...


 
DeadMeat ©   (2004-09-19 09:40) [16]

Граждане!!! Никто не знает, с чем у Winrar ассоциируется animation.cfg??
А то пару раз сделал архив, и он (файл этот) исчез как из папки, так и из архива!!!!! На третий все нормально. Шо за чушь?? В том архиве (который выложил) его действительно нет. И в моих папках тоже!! Пришлось лезть опять в кваку и перепысывать обратно этот файл. Создал архив. Дай думаю проверю. Смотрю - НЕТУ!!! Я еще раз, тоже самое. Я с кресла сполз!! На третий раз нормально.... Мож я с ума схожу?
Какбы там ни было, вот он отдельно
http://deadmeat.nightmail.ru/animation.cfg
Как уже сказал, потом докручу все остальное...

---
...Death Is Only The Begining...


 
Ктото   (2004-09-20 01:30) [17]

> DeadMeat ©

> Недопонял... В смысле если он не скачивается, то.... А при
> компиляции или при запуске?

Из трёх ссылок две перечисленные не скачиваются.


> Нуу... Я ведь всегда писал только для себя. Вот в этом и
> есть моя проблема.

Стандарт стилевого оформления родился, чтобы облегчить чтение кода. Когда все пишут в одном стиле, то чужой код воспринимается как свой собственный. Ненадо быть дикарём. Это же азбука. Просто изучи, да придерживайся.


> Я уровень не рисовал, а взял готовый. У него есть все текстуры
> и они правильно ложатся.

Уровень узнал. Как ложаться текстуры ? Они же по разным папка раскиданы. Или как отредактировать bsp-файл ? Можно ли его конвертировать в 3ds, которые можно редактировать в МилкШэйпе ?


 
Ктото   (2004-09-20 01:34) [18]

Про мышь.
Курсор лучше прятать. А позицию в которой удерживаем мышь лучше считывать при Ресайзе, а не в Кадансере. Потому, что это требует вызова функции, что притормаживает работу кадансера.

var
 isMouseFix : Boolean = False; // Мышь зафиксирована
 PosOfFixMouse : TPoint;        // Позиция на которой удерживаем мышь.

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if (Key = VK_F3) and (GLSceneViewer1.Camera = GLCamera1) then begin // Фиксируем/расфиксируем мышь кнопкой F3
   isMouseFix := not isMouseFix;
   ShowCursor(not isMouseFix);
   if isMouseFix then SetCursorPos(PosOfFixMouse.X, PosOfFixMouse.Y)
 end;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
 PosOfFixMouse := Point(Left +ClientWidth div 2, Top +ClientHeight div 2); // Точка фиксации мыши.
end;


 
DeFenix   (2004-09-20 11:09) [19]

Где можно скачать последнюю версию GlScene, чтобы эта демка работала. Пробовал скачать у DeadMeat-a, но файл по ходу голимый, скачиваеться то 200kb,то 800. Ссылочку кто нибудь дайте плз.


 
DeadMeat ©   (2004-09-20 19:50) [20]


> Из трёх ссылок две перечисленные не скачиваются.

Видимо nm моросит...


> Уровень узнал. Как ложаться текстуры ? Они же по разным
> папка раскиданы.

В нем указан относительный путь к каждой текстуре. Как и во всех моделях. Главное сами текстуры разместить правильно...., в смысле по папкам. А они изначально правильно лежат там все...


> Или как отредактировать bsp-файл ?

Любым редактором для кваки. QuArK например или Radiant...


> ли его конвертировать в 3ds, которые можно редактировать
> в МилкШэйпе ?

Оочень сомневаюсь. Дело в том, что это абсолютно разные вещи...


> Курсор лучше прятать.

Само собой. Но я его там оставил для проверки, а убрать просто забыл...


> Курсор лучше прятать. А позицию в которой удерживаем мышь
> лучше считывать при Ресайзе, а не в Кадансере. Потому, что
> это требует вызова функции, что притормаживает работу кадансера.

Ээмм... Не совсем догнал... Во первых зачем FormKeyDown и FormResize если они будут вызываться, только в соответствующие моменты? А мышь надо фиксировать постоянно... Или в OnMouseMove... Но лучше всего не использовать все эти обработчики, потому что они "не синхронизированы" с самим GLScene. Попробуй взять любую демку, где есть кручение камеры в OnMouseMove и сделай так, чтобы вся сцена жрала побольше ресурсов... Какуюнить карту большую или проекционные тени (GLShadowVolume)... Можно еще поставить SimpleInertia на объект... И теперь при этом, покрути камеру...


> Где можно скачать последнюю версию GlScene, чтобы эта демка
> работала. Пробовал скачать у DeadMeat-a, но файл по ходу
> голимый, скачиваеться то 200kb,то 800. Ссылочку кто нибудь
> дайте плз.

Видимо все же nm.ru
Попробуй с фатала, но может там оказаться и хуже... А вообще лучше сразу с CVS... Благо последний клиент, вроде через прокси может работать...
http://www.deadmeat.fatal.ru/GLScene/Source.rar

---
...Death Is Only The Begining...


 
DeFenix ©   (2004-09-20 20:59) [21]

А это-сработало! Кстати, где вы вообще берёте новые версии GlScene?!


 
DeadMeat ©   (2004-09-20 21:35) [22]


> А вообще лучше сразу с CVS... Благо последний клиент, вроде
> через прокси может работать...


---
...Death Is Only The Begining...


 
DeadMeat ©   (2004-09-20 21:38) [23]

http://delphimaster.net/view/9-1086063518/&web=1
Пост [120]

---
...Death Is Only The Begining...


 
Ктото   (2004-09-21 01:52) [24]


> DeadMeat ©   (20.09.04 19:50) [20]
> В нем указан относительный путь к каждой текстуре. Как и
> во всех моделях. Главное сами текстуры разместить правильно....,
> в смысле по папкам. А они изначально правильно лежат там
> все...

А если я нехочу создавать сорок папок и раскидывать по ним текстуры ? Как сделать, чтобы всё из одной папки грузидось ?


> Ээмм... Не совсем догнал... Во первых зачем FormKeyDown
> и FormResize если они будут вызываться, только в соответствующие
> моменты?

FormKeyDown чтобы отключать фиксацию мыши. Чтобы, например, изменить размер окна.

Когда ты делаешь :
 SetCursorPos(left +clientwidth div 2,top +clientheight div 2);
У тебя внутри скобок два вызова функций clientwidth и clientheight. Поставь брэйкпоинт на эту строку и посмотри сам в ассемблере Ctrl+Alt+C .
А если сделать так
 SetCursorPos(PosOfFixMouse.X, PosOfFixMouse.Y);
то вызовов функций внутри скобок небудет. Ибо вызов вынесен в ресайз, так как точка в которую надо каждый раз возвращать мышь, меняется только при изменении размеров формы.

Вообще в кадансере от всех лишних вызовов функций лучше уходить, потому, что они отжирают много времен.

-----------
Как по-твоему лучше всего сделать взрыв в смысле просчёта коллизий ? Просто перебирать координаты всех объектов и монстров ? Но если их слишком много ?
И как быть со взрывами за стеной ? Они тогда будут убивать также как и взрыв рядом.


 
DeadMeat ©   (2004-09-21 03:44) [25]


> А если я нехочу создавать сорок папок и раскидывать по ним
> текстуры ? Как сделать, чтобы всё из одной папки грузидось
> ?

Брать кваковский редактор и менять. Лучше не переделывать в другой формат, а поменять прямо в этом... Просто для кваки текстуры были общие, и поэтому их класиффицировали каждую в свою папку со своим названием "класса".


> У тебя внутри скобок два вызова функций clientwidth и clientheight

Ааа... Так вот про что ты говорил. Тогда да. Полностью согласен...


> Как по-твоему лучше всего сделать взрыв в смысле просчёта
> коллизий ?

Пока еще об этом не думал, но есть такая мысля (надо проверить).
При помощи RayCastIntersect (или кто там) получить координаты и нормаль в точке столкновения снаряда со сненой. Нормаль будет к стене. После этого считаем расстояние от точки взрыва до каждого монстра (VectorDistance). Даже если их много, то врядли перебор займет много времени. На крайний случай, можно использовать OctreeSphereSweepIntersect (кажись она).
Насчет стены.
Когда получим координаты и нормаль, то можно через PointIsInHalfSpace смотреть, кто где.

З.Ы. А давайте все соберемся (все кто с GLScene) и напишем чегонить. Кто графику, кто еще что... Мож чего и выйдед путного...? Я вот щас закончу с "приседанием" актера и выложу очередной вариант... Кстати, куда выкладывать? На fatal.ru или на nightmail.ru?

---
...Death Is Only The Begining...


 
Ктото   (2004-09-21 04:32) [26]


> DeadMeat ©   (21.09.04 03:44) [25]
> Кстати, куда выкладывать? На fatal.ru или на nightmail.ru?

У меня с найтмэйла нормально скачался. Один файл. Там раньше какие то глюки были. Вроде нельзя было называть файлы заглавными буквами, а то не скачивались. В остальном вроде ничего.

Насчёт стен - не очень понял. Расстояние от позишн взрыва, до позишн монстра определить можно. Но как проверить видимость ? Камеры то у нас нету и буфера тоже.


> А давайте все соберемся (все кто с GLScene) и напишем чегонить.
> Кто графику, кто еще что...

А что ещё-то ? :) Прежде чем писать игру, надо написать движок. Вернее понять как это делается. Накопить кусков кода, решить все эти проблемы с загрузками уровней, итемов, взрывами, стрельбой, монстрами и т. д. Будет движок - будет и игра.


 
DeadMeat ©   (2004-09-21 09:37) [27]


> У меня с найтмэйла нормально скачался. Один файл. Там раньше
> какие то глюки были. Вроде нельзя было называть файлы заглавными
> буквами, а то не скачивались. В остальном вроде ничего.

Странно... Раньше все нормально было... Ладно буду выкладывать на фатале и только маленькими буквами называть.


> А что ещё-то ? :)

А еще надо графику набить. Если со звуками все нормально (в нете можно кучу сэмплов найти бесплантых), то с модельками и картами придется повозиться... Ведь их (модельки) надо еще и анимировать. Это в начале можно использовать чужое, но потом придется всеравно свое...


> Расстояние от позишн взрыва, до позишн монстра определить
> можно. Но как проверить видимость ?

Видимость чего?

---
...Death Is Only The Begining...


 
DeFenix ©   (2004-09-21 16:44) [28]

Выложи minishhoter на fatal, а то там не скачиваеться!


 
DeFenix ©   (2004-09-21 16:45) [29]

Выложи minishhoter на fatal, а то на nightmail не скачиваеться!


 
DeadMeat ©   (2004-09-22 00:10) [30]

Залил http://deadmeat.fatal.ru/minishooter.rar
Гдето 1,27Mb
Там должно быть все...
Пока еще нет проверки на столкновение снарядов (они просто летают) и нет проверки на приседание... Времени не хватает. Чуть позже добью...


> Ктото

Я еще не проверял этот метод. Но так подумал, что могут возникнуть проблемы, если выстрел попадает в угол... Вообщем надо над этим поразмыслить... Можно конечно и ODE подключить, но это не целесообразно (ИМХО).

---
...Death Is Only The Begining...


 
Ктото   (2004-09-22 01:26) [31]


> DeadMeat ©   (21.09.04 09:37) [27]
> А еще надо графику набить. Если со звуками все нормально
> (в нете можно кучу сэмплов найти бесплантых), то с модельками
> и картами придется повозиться... Ведь их (модельки) надо
> еще и анимировать. Это в начале можно использовать чужое,
> но потом придется всеравно свое...

Без движка, этим заниматься рано. Первый этап - это дужиок. Чтобы был качественный геймплэй. Вот если его удасться создать, то второй этап будет - создание игровых ресурсов.


> Видимость чего?

1 Как определить видимость монстра от центра взрыва ?
2 Как это сделать быстро ?
Даже когда просто стреляешь, то определение объекта по которому стреляешь слегка тормозит. А если просчитывать видимости всех монстров от всех взрывов могут быть и сильные тормоза.


> Можно конечно и ODE подключить, но это не целесообразно
> (ИМХО).

Да. Лучше без неё. Слишком сложно и трудоёмко.


 
Ктото   (2004-09-22 05:33) [32]


> DeadMeat ©   (22.09.04 00:10) [30]

Пытаюсь сделать эффект, когда бы взрывная волна отбрасывала назад.
Делаю так :
var
 iPoint : TVector; // Центр взрыва
 Dist1  : Single;  // Расстояние до взрыва.
 BurstVector : TAffineVector; // Вектор взрывной волны.
...
begin
...
   // Задаём центр взрыва.
 iPoint := ... ;
   // Вычисляем расстояние до взрыва
 Dist1 := VectorDistance(iPoint, Player.AbsolutePosition);
   // Вычисляем вектор взрыва.
 BurstVector := NullVector;
 BurstVector[0] := (-iPoint[0] +Player.Position.X) *Dist1 *10;
 BurstVector[2] := (-iPoint[2] +Player.Position.Z) *Dist1 *10;
   // Добавляем вектор взрыва в качестве толкающей Плэера силы.
 TGLBDCEBody(Player.Behaviours.Behaviour[0]).AddForce(BurstVector);


И получается что Плэера после взрыва отбрасывает не назад, а куда попало. Сидел думал почему, оказалось, что потому, что AddForce добавляется с учётом Player.Direction. А вот как в нашем векторе взрыва учесть этот Player.Direction, я чего-то непойму. Может ты сообразишь ?


 
DeadMeat ©   (2004-09-22 22:08) [33]

Вариант на вскидку (правда извращенский как и все другие мои решения).
Держать на том же уровне вложения что и актер такой же дамми куб с присобаченным к нему ДЦЕ с такимиже параметрами что и у актера. Т.е. копия. При взрыве ставим его в теже координаты, что и актер, но с нужным нам дирекшином. Дирекшин вычисляем так - направляем его в сторону взрыва (что то типа, PointTo) и инвертируем. Теперь наш дамми куб стоит там где надо и смотрит туда, куда надо. Прикладываем к ему силу и в каденсере ровняем координаты актера с его координатами. Получаем то, что нужно.
НО! Есть одно но. Надо понять, когда перестать ровнять координаты. Выставлять время либо копать ДЦЕ на предмет свойства типа IsMoving. Если нет (а скорее так и есть), то добавить.
Вариант не проверенный, слишком сегодня на работе устал, так что буду смотреть только завтра (если получиться). Пока что добавил проверку на столкновение снарядов со стенами. Вроде работает...

Кстати. Давайте выкладывать у кого, что есть на эту тему. Но не выкладывать то, что есть уже у всех. Например я буду выкладывать только *.PAS отдельно. Т.к. все остальное можно скачать также отдельно. Просто траффик сэкономлю немного...

---
...Death Is Only The Begining...


 
Ктото   (2004-09-23 01:36) [34]


> DeadMeat ©   (22.09.04 22:08) [33]
> Держать на том же уровне вложения что и актер такой же дамми
> куб с присобаченным к нему ДЦЕ с такимиже параметрами что
> и у актера.

Слишком вычурно, и добавит лишних тормозов. Тут надо как-то поиграться с векторами, чтобы приложить силу в нужную сторону.

Можно выдернуть код из самой функции и использовать его. Только сама функция малопонятная :
// PointTo
//
procedure TGLBaseSceneObject.PointTo(const absolutePosition, upVector : TVector);
var
  absDir, absRight, absUp : TVector;
begin
  // first compute absolute attitude for pointing
  absDir:=VectorSubtract(absolutePosition, Self.AbsolutePosition);
  NormalizeVector(absDir);
    //: Calculates the cross product between vector 1 and 2
  absRight:=VectorCrossProduct(absDir, upVector);
  NormalizeVector(absRight);
  absUp:=VectorCrossProduct(absRight, absDir);
  // convert absolute to local and adjust object
  if Parent<>nil then begin
     FDirection.AsVector:=Parent.AbsoluteToLocal(absDir);
     FUp.AsVector:=Parent.AbsoluteToLocal(absUp);
  end else begin
     FDirection.AsVector:=absDir;
     FUp.AsVector:=absUp;
  end;
  TransformationChanged
end;

Что такое VectorCrossProduct ? Ты понимаешь, чего там делается, нет ? Я не очень.
В общем, так ничего и не получилось у меня.

-----------
В твоей демке, если загрузить другую карту от Квэйка, Плэйер не пролезает в низкие проходы. Сделай его поменьше ростом.

Как быть с дверьми и разбиваемыми стёклами/решётками на уровнях ? Их можно как-то через GLScene прятат/показывать/сдвигать или что-нибудь в этом роде ? Какие-нибудь свойства типа Visible или чего-нибудь подобного у них есть ?

Ещё в той демке, которую ты на конкурс посылал есть в юзез какой-то модуль OffSetAnim. Откуда он ? А то без него не компилируется.


 
Ктото   (2004-09-23 02:42) [35]

Придумал как уничтожать объекты в FreeForm. Правда проверил только для 3ds файлов. Но с остальными наверно что-то аналогичное :

var
 M1   : TMeshObject;
begin
 // Gate - это фриформ в которую загружен фай gate.3ds содержащий ворота.
 M1 := Gate.MeshObjects.FindMeshByName("Stvorka"); // Stvorka - група Stvorka со створкой ворот.
 if M1 <> nil then begin
   beep;
   M1.Destroy; // Удаляем створку.
   F1.BuildOctree;
   F1.StructureChanged;
 end else ShowMessage("Створку не нашли");
end;


Достаточно выстрелить в створку ворот, прикрыть её огнём и дымом взрыва, чтобы невидно было как она исчезает. И можно этим кодом её просто убрать.


 
DeadMeat ©   (2004-09-23 19:12) [36]


> Ещё в той демке, которую ты на конкурс посылал есть в юзез
> какой-то модуль OffSetAnim. Откуда он ? А то без него не
> компилируется.

http://www.deadmeat.fatal.ru/GLScene/Addins.rar

Насчет взрывной волны, попробую седня ченить замутить...

---
...Death Is Only The Begining...


 
Ктото   (2004-09-24 03:24) [37]


> DeadMeat ©   (23.09.04 19:12) [36]
> http://www.deadmeat.fatal.ru/GLScene/Addins.rar

Да. С этим работает. И взрывы намного быстрее получаются, чем c FireFx. И натуральнее как-то.
А кто-такой этот RaveniX, который её написал ? У него сайт какой-то ?


> Насчет взрывной волны, попробую седня ченить замутить...

Попробуй. Взрывная волна особенно полезна была в Сэме. Там когда себе под ноги стреляешь, можно было взлететь на какой нибудь забор.


 
DeadMeat ©   (2004-09-24 22:43) [38]

Хе-хе... А ларчик та просто открывался...
Я тут начал было напрягать всяких математиков, а все проще оказалось. Причем намного проще. Да и вроде должно работать:


force:=affinevectormake (actor.AbsoluteToLocal(vectormake (......)));
GetOrCreateDCECollision (actor).AddForce(force);


---
...Death Is Only The Begining...


 
Ктото   (2004-09-25 03:00) [39]


> DeadMeat ©   (24.09.04 22:43) [38]
> force:=affinevectormake (actor.AbsoluteToLocal(vectormake
> (......)));
> GetOrCreateDCECollision (actor).AddForce(force);

А что в скобках ?


 
Darth   (2004-09-25 03:05) [40]

//Будет движок - будет и игра.
движок сам по себе это дай Бог 10% от игры


 
Ктото   (2004-09-25 04:30) [41]


> Darth   (25.09.04 03:05) [40]
> //Будет движок - будет и игра.
> движок сам по себе это дай Бог 10% от игры

Только GLScene эти 10 процентов не может осилить уже многие годы.

-------------
Хочу немного поразмышлять о том каких типов объекты должны быть в игре. В смысле, что расставлять на игровой карте.

1. Неразрушаемые, непроходимые. Дома, мосты, и т. п.
2. Разрушаемые, непроходимые. Стёкла, ящики какие-нибудь, загораживающие проход, которые можно взорвать и куда-нибудь пройти.
3. Неразрушаемые, проходимые. Типа газет на земле в Вайс Сити, или травы, кустарников. Возможно их вообще не стоит расставлять, или лишь задавать области в которых они должны создаваться динамически.
4. Разрушаемые, проходимые. Предметы, которые можно брать. Оружие, патроны, аптечки, и т. п. Отличие от предыдущих в том, что они напрямую связаны с кодом. То есть, если через них проходишь, то они исчезают, а у тебя что-то появляется.
5. Монстры.

Какие будут уточнения, дополнения ?


 
DeadMeat ©   (2004-09-25 11:09) [42]


> А что в скобках ?

Как что?...
Вектор в направлении которого надо сдвинуть актера в глобальных координатах... Т.е. не зависит от текущего дирекшина этого актера... Надо влево - (1,0,0), надо вправо - (-1,0,0) и т.п. Куда бы он не смотрел, двигаться будет в нужном направлении... Волну я уже сделал, пару глюков подправил. Осталось сделать приседание...

---
...Death Is Only The Begining...


 
Ктото   (2004-09-26 01:29) [43]


> DeadMeat ©   (25.09.04 11:09) [42]
>
> > А что в скобках ?
>
> Как что?...
> Вектор в направлении которого надо сдвинуть актера в глобальных
> координатах... Т.е. не зависит от текущего дирекшина этого
> актера... Надо влево - (1,0,0), надо вправо - (-1,0,0) и
> т.п. Куда бы он не смотрел, двигаться будет в нужном направлении...

У меня глючит. В зависимости от того, с какой стороны от координаты 0, 0 он стоит и в какую сторону смотрит, иногда отскок происходит куда-то в сторону, в общем не туда. Поэтому и спрашиваю, что точно писать.

А если выстрел в пол, то он подлетает ?


 
Ктото   (2004-09-26 01:56) [44]

Немного помучился с камерой вьезжающей в препятствия. Пытался сделать её динамическим DCE-объектом. В результате камера падает вниз под действием гравитации. Как сделать, чтобы гравитация на камеру не действовала - не нашёл.

Можно использовать другой подход. Посчитать расстояние от камеры до ближайшего объекта. И если оно меньше, чем расстояние до TargetObject у камеры, то значит между ней и TargetObject"ом есть препятствие, и её надо придвинуть.

var
 rayStart, rayVector, iPoint, iNormal : TVector;
 BasePick : TGLBaseSceneObject;
 CrossHairPos, CrossHairPosInv : TPoint;

...

   // CrossHairPos и CrossHairPosInv - координаты точки экрана из которой смотрим, и её перевёрнутые координаты.
 CrossHairPos    := Point(GLSceneViewer1.ClientWidth div 2, GLSceneViewer1.ClientHeight div 2);
 CrossHairPosInv := Point(GLSceneViewer1.ClientWidth div 2, GLSceneViewer1.Height -(GLSceneViewer1.ClientHeight div 2));
   //  Берём объект с экрана по этим координатам.
 BasePick := GLSceneViewer1.Buffer.GetPickedObject(CrossHairPos.X, CrossHairPos.Y);
 if BasePick <> nil then begin
   SetVector(rayStart,  GLCamera1.AbsolutePosition);
   SetVector(rayVector, GLSceneViewer1.Buffer.ScreenToVector(AffineVectorMake(CrossHairPosInv.X, CrossHairPosInv.Y, 0)));
   NormalizeVector(rayVector);
   if BasePick.RayCastIntersect(rayStart, rayVector, @iPoint, @iNormal) then begin
     if VectorDistance(iPoint, Player.AbsolutePosition) < GLCamera1.DistanceToTarget then begin
         // Расстояние до ближайшего объекта меньше, чем до Плэйера. Значит перед камерой препятствие.
         GLCamera1.AdjustDistanceToTarget(Power(1.1, -3)) // Приближаем камеру.;
     end;
   end;
 end;


Это работает, но тормозит. Функция BasePick.RayCastIntersect может занимать до 300 миллисекунд. Как быть ?


 
DeadMeat ©   (2004-09-26 22:32) [45]

http://deadmeat.fatal.ru/minishooter_upd.rar
Волна от выстрелов... Невидимая правда, и взрывов пока нет (руки не доходят). Да и приседание пока не сделал...

А насчет RayCastIntersect... Дык используй его аналог - OctreeRayCastIntersect...

---
...Death Is Only The Begining...


 
Ктото   (2004-09-27 07:11) [46]


> А насчет RayCastIntersect... Дык используй его аналог -
> OctreeRayCastIntersect...

Да. Вроде стало быстрее. Но ещё попроверяю.

Глюк с взрывной волной - я понял почему был. Потому, что иногда камера оказывалась внутри стены, и выстрел попадал не перед Актёром, а за ним, в стену, внутри которой была камера, и поэтому отскок происходил не вперёд, а назад. :)


> Волна от выстрелов... Невидимая правда, и взрывов пока нет
> (руки не доходят).

Взрывы я сделал из FireFx.
Ставишь объект который надо задать им в Reference.
Делаешь Disabled, чтобы огонь не горел.
Далее FireFX.FireInit; Чтобы инициализировать взрыв,
Задаёшь FireFX.ParticleSize := 1 ( или 2 или 0.5 , чем меньше тем быстрее работает, но менее эффектно )
и
 if Random > 0.5 then FireFX.IsotropicExplosion(8, 10, 5)
                 else FireFX.RingExplosion(8, 10, 5, XVector, ZVector);

Два вида взрыва по рэндому. Можно потом будет для разных видов оружия разные взрывы сделать.

Проблема в том, что если часто стрелять, то второй выстрел попадает не в объект, а в разлетающиеся части от предыдущего выстрела. Как избежать - я не нашёл.

И как лучше сами FireFx делать я тоже пока не решил. Создавать каждый раз в рантайме - наверное долго. Или может создать несколько с самого начала, а потом их использовать по кругу ? В общем вопрос открытый.


 
Ктото   (2004-09-27 07:11) [47]


> А насчет RayCastIntersect... Дык используй его аналог -
> OctreeRayCastIntersect...

Да. Вроде стало быстрее. Но ещё попроверяю.

Глюк с взрывной волной - я понял почему был. Потому, что иногда камера оказывалась внутри стены, и выстрел попадал не перед Актёром, а за ним, в стену, внутри которой была камера, и поэтому отскок происходил не вперёд, а назад. :)


> Волна от выстрелов... Невидимая правда, и взрывов пока нет
> (руки не доходят).

Взрывы я сделал из FireFx.
Ставишь объект который надо задать им в Reference.
Делаешь Disabled, чтобы огонь не горел.
Далее FireFX.FireInit; Чтобы инициализировать взрыв,
Задаёшь FireFX.ParticleSize := 1 ( или 2 или 0.5 , чем меньше тем быстрее работает, но менее эффектно )
и
 if Random > 0.5 then FireFX.IsotropicExplosion(8, 10, 5)
                 else FireFX.RingExplosion(8, 10, 5, XVector, ZVector);

Два вида взрыва по рэндому. Можно потом будет для разных видов оружия разные взрывы сделать.

Проблема в том, что если часто стрелять, то второй выстрел попадает не в объект, а в разлетающиеся части от предыдущего выстрела. Как избежать - я не нашёл.

И как лучше сами FireFx делать я тоже пока не решил. Создавать каждый раз в рантайме - наверное долго. Или может создать несколько с самого начала, а потом их использовать по кругу ? В общем вопрос открытый.


 
DeadMeat ©   (2004-09-27 10:21) [48]


> Взрывы я сделал из FireFx.

Про FireFX знаю, но специально его не использую... Беспантовый он... ;)
Лучше уж PerlinPFX. Он чуть по симпатишнее. Либо как в моем паратрупере..


> Проблема в том, что если часто стрелять, то второй выстрел
> попадает не в объект, а в разлетающиеся части от предыдущего
> выстрела. Как избежать - я не нашёл.

Странно... Надо будет глянуть.

---
...Death Is Only The Begining...


 
DeFenix ©   (2004-09-27 17:26) [49]

А почему карта покрыта ТАКОЙ текстурой?!


 
DeadMeat ©   (2004-09-27 22:03) [50]

Я ж говорил... Чтобы объем всей демки чуть уменьшить... В смысле размер архива... А именно эту, я выбрал потомучто она придает некий вид виртуальности всего происходящего... Мне нравится...

---
...Death Is Only The Begining...


 
Ктото   (2004-09-28 04:02) [51]


> DeadMeat ©   (27.09.04 10:21) [48]

Проблемы с вьездом камеры в препятствия продолжаются. Дело в том, что плоскости видны и просчитываются на проходимость только с одной стороны. Поэтому функция GLSceneViewer1.Buffer.GetPickedObject(CrossHairPos.X, CrossHairPos.Y); с обратной стороны, то есть изнутри, препятствия не видит, и камера не может определить, что оказалась внутри него. Как же быть ?

Не знаешь, как прикрепить к руке smd-модели ружьё ? А то там в демках примеры только для квэйковских моделей, а они много места занимают, по сравнению с smd.

> Про FireFX знаю, но специально его не использую... Беспантовый
> он... ;)
> Лучше уж PerlinPFX. Он чуть по симпатишнее. Либо как в моем
> паратрупере..

Кстати, я там так до конца и не понял, как это делается. Пытался сохранить текстуры, после загрузки и оказалось, что они аж 15 мегабайт занимают. Слишком ресурсоёмко.


 
Колбасьев ©   (2004-09-28 19:47) [52]

Где можно это чудо скачать посмотреть? Но не исходники, ибо всего этого (ну или многого из необходимого для компиляции) у меня нет.


 
DeadMeat ©   (2004-09-28 22:09) [53]


> Где можно это чудо скачать посмотреть? Но не исходники,
> ибо всего этого (ну или многого из необходимого для компиляции)
> у меня нет.

Буду отдельно *.EXE выкладывать...


> Не знаешь, как прикрепить к руке smd-модели ружьё ?

Надо поприкалываться. Пока не смотрел в эту сторону... С *.SMD вообще то проблем много. Сам Эрик не советует его использовать. С ним мороки много...


> Кстати, я там так до конца и не понял, как это делается.
> Пытался сохранить текстуры, после загрузки и оказалось,
> что они аж 15 мегабайт занимают. Слишком ресурсоёмко.

Эээ... Недопонял. Какие текстуры? Ты про чего вообще?

---
...Death Is Only The Begining...


 
Ктото   (2004-09-29 01:18) [54]


> DeadMeat ©   (28.09.04 22:09) [53]
> Надо поприкалываться. Пока не смотрел в эту сторону... С
> *.SMD вообще то проблем много. Сам Эрик не советует его
> использовать. С ним мороки много...

А где Эрик не советует его использовать ?
Без SMD никуда. Как например делать поворот башни/дула танка ? Можно конечно извратитьяс и без SMD, но с SMD это всего пара строчек.


> Эээ... Недопонял. Какие текстуры? Ты про чего вообще?

Текстуры взрыва в твоей демке, которая для конкурса. Если GLMaterialLibrary2 сохранить на диск.


 
DeadMeat ©   (2004-09-29 17:38) [55]

Без SMD никуда. Как например делать поворот башни/дула танка ?
Ну я не правильно выразился. Он не советует использовать *.SMD от халфлайфа. Они там странные. Некоторые со сдвигом в анимациях...

Текстуры взрыва в твоей демке, которая для конкурса. Если GLMaterialLibrary2 сохранить на диск.
Ну дык... Их же там несколько. Сама текстура лежит отдельно (на сколько я помню) и довольно большая. Пришлось сделать несколько текстур, каждая для своего взрыва. Я примерно прикинул, скока взрывов может быть одновременно на экране и сделал столько же текстур. Кажись так было. Щас точно не вспомню. Делалось это по двум причинам:
1) TOffSetAnimation изменяет саму текстуру, а соответственно два взрыва, ссылающихся на нее одну, будут выглядеть одинаково.
2) Создавать в рантайме текстуры (в смысле добавлять их в MaterilLibrary) есть очень плохо и тормознуто. Поэтому они не создаются и не удаляются из памяти, а просто показываются в нужный момент времени.


 
miek   (2004-09-30 18:24) [56]

Я одного не понимаю - почему демка ТАК тормозит?


 
DeadMeat ©   (2004-09-30 18:57) [57]

А скока ФПС?
Попробуй отдельно только карту загрузить и полетать в ней. В своем проекте. Может чего намутили с настройками?


 
miek   (2004-09-30 23:48) [58]

FPS 1-4, на P4-2500, карта встроенная IntelBrookdale.
Карту загружать пока не пробовал, но сцены с таким количеством полигонов делал, скорость была выше.


 
DeadMeat ©   (2004-10-01 01:08) [59]

Интересно...
А ты сразу *.EXE запускал или компилил?
Вроде и карта та не так много ест, да и вычислений там таких серьезных нет...

У меня был похожий прикол. Скачал одну демку, запустил готовый *.ЕХЕ - дает около 2000 фпс. Моя офигеть. Скомпилил - 800 фпс. ХЗ в чем было дело...

---
...Death Is Only The Begining...


 
miek   (2004-10-01 08:17) [60]

И запускал и компилировал - результат один.


 
Ктото   (2004-10-02 06:59) [61]


> DeadMeat ©

Я наконец-то доделал свой редактор до более менее приличного уровня. И сделал демку с минимальным геймплэйем. Расстрел врагов, сбор оружия, аптечек.
http://dcegame.narod.ru/dcegame.html

Очень раздражает, что Плэйер переодически цепляется и затыкается за землю и объеты в игре. Приходится подпрыгивать, чтобы идти дальше. Причём это по-моему глюк в самой DCE. Не знаешь как это обойти ?

Похоже тут эта тема никого, кроме нас двоих не интересует ... Может на каких других форумах есть народ более интересующийся 7


 
DeadMeat ©   (2004-10-02 10:21) [62]

Вообщем особо разбираться не стал, но:
1) Сам *.EXE вылетает по invalid value, а потом по, stack overflow.
2) Скомпиленный *.EXE работает также.
3) Куча юнитов, которых у меня нет, пришлось вручную их всех убирать. Видимо они их седьмой делфи, а у меня шестая.

Посему посмотреть так и не удалось...

---
...Death Is Only The Begining...


 
Кто-то   (2004-10-03 01:51) [63]


> DeadMeat ©   (02.10.04 10:21) [62]
> Вообщем особо разбираться не стал, но:
> 1) Сам *.EXE вылетает по invalid value, а потом по, stack
> overflow.
> 2) Скомпиленный *.EXE работает также.

А на какой строке вылетает ?
Если запускать пошагово F8 F8 F8.


> 3) Куча юнитов, которых у меня нет, пришлось вручную их
> всех убирать. Видимо они их седьмой делфи, а у меня шестая.

Да. В uses есть немного лишнего. Поправлю.
Дельфи седьмая.
Какая Виндос, кстати ? У меня МЕ.

-------
Теперь думаю, как сделать стрельбу врагам.
Для плэйера мы вычисляем точку попадания через GLSceneViewer1.Buffer, а для врагов то нету своего вьюера. Да и приделывать к каждому монстру по вьюеру - глупо. Как же тогда быть ?


 
Кто-то   (2004-10-03 02:08) [64]


> DeadMeat ©

Посмотрел. Возможно это глюк из-за пути к папке "files", в которой лежат ресурсы. Сейчас поправлю и перезакачаю на тоже место. Если нет, то скажи в каком там месте глючит ?


 
Кто-то   (2004-10-06 01:20) [65]


> DeadMeat ©  

Как дела то ?

Я понял как привязывать оружие к руке в Милкшэйпе. Грузишь smd-модель Фримана. Или кого хочешь. Грузишь на неё оружие, и подгоняешь оружие под кисть руки. Далее, выделяешь оружие и ассоциируешь с тем joint"ом кисти, к которому хочешь его привязать. Далее удаляешь все группы которые от smd"шной модели, оставляя только группу оружия. Таким образом остаётся только скилет и оружие. Сохраняешь это в файл.

А дальше в Дельфи грузишь сначала модель, а потом AddDataFromFile и добавляешь сохранённый скилет с оружием. Вот и всё. Таким образом оружие привязывается к руке навсегда. И все движения выполняются вместе с ним.

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


 
DeadMeat ©   (2004-10-06 03:12) [66]

Да фигово дела... Пока ничем эти не занимался. Все времени нет. Работа, чтоб ее на лево... ;)
А ты свой редактор обновил. Уже можно глядеть? Ща помню, что там ошибка была в каком-то LoadMap чтоли... Точно не вспомню.

Насчет оружия. Это все конечно замечательно. Я в принципе так и грузил оружие для вида от первого лица в paratrooper-е на конкурс. Оно там состояло из нескольких частей. Учитывая offset, который в них зашит они все становились на свои места. Вот только есть один нюанс. Ведь если модели разной высоты, то этот прикол не пройдет... Надо искать нечто вроде tag-ов в них. Мест, куда крепятся разные прибамбасы. Там точно такие должны быть...
Хотя я еще не проверял. Может при AddDataFromFile оно само так и делает?. Наврядли конечно, но всеже... Может в модуле по SMD есть ченить такое...
Кстати, скоро будет поддержка форматов от дума 3 и халфлайфа 2.

---
...Death Is Only The Begining...


 
Кто-то   (2004-10-06 06:10) [67]


> DeadMeat ©   (06.10.04 03:12) [66]
> А ты свой редактор обновил. Уже можно глядеть? Ща помню,
> что там ошибка была в каком-то LoadMap чтоли... Точно не
> вспомню.

Обновил. Что нашёл, то поправил. Но может чего ещё будет глючить ? Мало ли. Какое-то непонятное отличие файловых систем МЕ и ХР. То, что на одной работает, а на другой нет.


> Вот только есть один нюанс. Ведь если модели разной высоты,
> то этот прикол не пройдет...

В МилкШэйпе это делается буквально за пару минут. Если делать, как я выше описал. Да и моделей разной высоты в принципе не так уж и много. Смотря какая игра в общем.

Больше проблем думается с анимациями. Как сделать удушение руками или верёвкой, как в Хитмане ? Или как сделать ношение подноса. Или в Хитман Контрактс, там где пати на скотобойне - там очень много всяких анимаций. Танцы всякие, и прочее. Зато как классно выглядит всё !
Потом как делать разную одежду на теле ? Если надеть скажем плащ, то это же мало просто текстуру поменять, он же ещё и другую форму имеет.
Руками всё это делать не хочется, да думаю и врядли хорошо получится. А где взять не знаю.


 
Megabyte-ceercop ©   (2004-10-06 06:52) [68]

Запустил EXE.
Сперва три раза сообщил о недопустимом значении, потом раз десять о переполнении стека, а потом не дожидаясь ответа на предыдущие диалоги пошёл штабелями сообщать об отсутствии .PAS файла...
А так ничего :))


 
DeadMeat ©   (2004-10-06 10:34) [69]


> В МилкШэйпе это делается буквально за пару минут

Это та делается, но если юзер захочет добавить свою модель в игру? Вообщем этот метод подходит только если игра не подразумевает добавление скинов, моделей и т.п.
А по поводу одежды, то придется (ИМХО) делать разные модели. В смысле не модели актера, а модели одежды, которые будут на него одеваться... Можно конечно и модели актеров разные сделать. В Jedi Knight:Jedi Academy например, былм именнр разные модели тела, головы, ног.
Анимация - это вообще дело не благодарное. Хотя в милкшейпе есть небольшой тутор по этому делу. Но всеже лучше либо найти готовое, либо заказать...


> А где взять не знаю.

А об это я говорил еще в [27]. Чувствую на этом все и запнется...

---
...Death Is Only The Begining...


 
Кто--то   (2004-10-07 03:26) [70]


> Megabyte-ceercop ©   (06.10.04 06:52) [68]
> Запустил EXE.

А если запустить исходник пошагово, то где именно выдаёт ошибки ?
Если хочешь, чтоб исправили, надо указывать точно.


> DeadMeat ©   (06.10.04 10:34) [69]
> Это та делается, но если юзер захочет добавить свою модель
> в игру?

Проблема слишком далёкая.


> А по поводу одежды, то придется (ИМХО) делать разные модели.
> В смысле не модели актера, а модели одежды, которые будут
> на него одеваться... Можно конечно и модели актеров разные
> сделать. В Jedi Knight:Jedi Academy например, былм именнр
> разные модели тела, головы, ног.

Я тоже к этому склоняюсь. Чтоб поотрывать всем имеющимся моделям головы и лепить одну, нужную. Только вот разная комплекция будет выдавать.


> Анимация - это вообще дело не благодарное. Хотя в милкшейпе
> есть небольшой тутор по этому делу.

А какие ещё есть редакторы для анимирования моделей кроме Милкшэйпа ? А то уж больно он левый и убогий в смысле анимирования.

------
Попробовал грузить сразу всю анимацию к модели, которая есть.
Сто с лишним smd-файлов. Комп подвисает где-то секунд на пять. Не знаешь какого-нибдуь более быстрого способа загрузки ? Или может как-нибудь можно грузить mdl-файлы напрямую ?

Можно ли в smd, поотдельности управлять анимацией ног и рук ? Чтобы там скажем руки стреляли ни на что не переключаясь независимо от того бегут ноги, прыгают, стоят или что ещё ?


 
DeadMeat ©   (2004-10-07 23:42) [71]


> А какие ещё есть редакторы для анимирования моделей кроме
> Милкшэйпа ?

Есть плагин для 3D Max-а, для экспорта анимации в *.SMD


> Попробовал грузить сразу всю анимацию к модели, которая
> есть.

А на$#@ всю грузить? В крайнем случае, можно все в *.PAK запаковать и брать оттуда... Должно быть чуть побыстрее. Да и какая разница скока времени это занимает, ведь все равно при запуске один раз делать... Лиж бы не час уходил...


> Можно ли в smd, поотдельности управлять анимацией ног и
> рук ?

Можно... Точно знаю, что можно. И наверняка можно через GLAnimationController (или как там его). Вот только у меня не вышло...

---
...Death Is Only The Begining...


 
Кто--то   (2004-10-08 01:55) [72]


> DeadMeat ©   (07.10.04 23:42) [71]
> Да и какая разница скока времени это занимает, ведь все
> равно при запуске один раз делать

Это себя один раз. А монстры ? А разные персонажи в игре ?
Можно, конечно, по спартански, загрузить из анимаций только бег да стрельбу, но это дурной подход.
А есть ещё какие-нибудь форматы скелетной анимации ? Потому, что похоже тормозит парсинг текста в smd-шных файлах. Они же текстовые. Надо попробовать какой-ниубудь не текстовый формат.


> Есть плагин для 3D Max-а, для экспорта анимации в *.SMD

Я имел в виду бесплатный и желательно опенсорц. Сами то авторы ХалфЛайфа в чём анимацию делали ? Наверняка есть какой-то ещё редактор, получше.


 
Кто---то   (2004-10-16 02:35) [73]


> DeadMeat ©   (07.10.04 23:42) [71]

Только сейчас обнаружил, что AnimatedSprite есть в самой GLScene. Правда появился там недавно. И нет демок иллюстрирующих работу. Но всё интуитивнопонятно. Почти не тормозит. Фрэймрэйт не опускается ниже 200. Если интересно - могу простенькую демку выложить. В общем рекомендую для взрывов.
Только вот где бы взять этих взрывов побольше ? Да покачественнее.


 
Skyway   (2004-10-24 04:49) [74]

можно сделать в здсмаксе... попробуй скачать phoenix плагин. Это конечно не совсем то, но может пригодиться.


 
Fill   (2004-11-12 19:56) [75]

Не знаю как запускается GLScene Помогите!


 
Fill   (2004-11-12 20:02) [76]

Не знаю как запускается GLScene Помогите!


 
miek ©   (2004-11-12 22:30) [77]

Внимание! Ставьте у камеры NearPlane=1, а не 0.001! На карте с 16-битным Z-буфером идут жуткие глюки! И отключайте стенсиль-буфер - от него тормоза.


 
MsShtaer   (2004-11-12 23:49) [78]

Последнее заявление - бред. Никогда не видил тормозов от стенсиль-буфера. И кромо того  http://delphi.vitpc.com/article/coderules.htm
, неясно почему именно так, и кем это принято. Мне кажется, что структура бестолкова.


 
miek ©   (2004-11-13 09:04) [79]

>Никогда не видил тормозов от стенсиль-буфера

Я тестирую на встроенной карте Intel Brookdale. Она не такая уж тормозная, но включенный стенсиль сажает ее до 2-3 FPS даже на пустой сцене.


 
FUNKy   (2004-12-13 14:01) [80]

Порвите за офф но вопрос национальной важности - есть glplane на нем надо размещать обьекты на маусдаун . Но каким макаром узнать opengl координаты под мышкой ? Точнее как при клике на glplane поставить некий обьект в место клика . Демки коллизий смотрел не работает как там . Пока обхожусь математикой но координаты получаются не точные .



Страницы: 1 2 вся ветка

Форум: "Игры";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.76 MB
Время: 0.178 c
3-1108026505
Brain Force
2005-02-10 12:08
2005.03.13
Получение результатов выполнения запроса в список


1-1109574679
mmms
2005-02-28 10:11
2005.03.13
Как бы зациклить "Tab" на одной панели, не переходить на другие


11-1092467454
Dmitry
2004-08-14 11:10
2005.03.13
Не работают хинты в KOL


3-1107944179
a-tester
2005-02-09 13:16
2005.03.13
Хранимая процедура не выполняется из программы


3-1108067059
Коля
2005-02-10 23:24
2005.03.13
Загрузка bmp в поле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский