Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 24.10.2015, 09:49   #1
Colossus
Разработчик
 
Аватар для Colossus
 
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений
(для 92 пользователей)
Player Movement

Доброго времени суток, уважаемые Булчане!

Начал один небольшой проект. Он немного похож вот на это. ( по геймплею ) http://www.youtube.com/watch?v=5P24yC9dGuY только полностью в 3D с небольшой перспективой. Так вот, вопрос состоит в том, как правильно сделать преодоление препятствий, и броски, а так же контратакующие движения. Если учитывать, что каждый персонаж привязан к физической капсуле.
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb

Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)

Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
(Offline)
 
Ответить с цитированием
Старый 24.10.2015, 12:11   #2
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Player Movement

Сообщение от Colossus Посмотреть сообщение
Доброго времени суток, уважаемые Булчане!

Начал один небольшой проект. Он немного похож вот на это. ( по геймплею ) http://www.youtube.com/watch?v=5P24yC9dGuY только полностью в 3D с небольшой перспективой. Так вот, вопрос состоит в том, как правильно сделать преодоление препятствий, и броски, а так же контратакующие движения. Если учитывать, что каждый персонаж привязан к физической капсуле.
Только проигрывать анимацию в нужном месте. А дальше тупо получать координаты на последнем кадре и ставить модельку на них. Капсулы на это время отключать нафиг.
(Offline)
 
Ответить с цитированием
Старый 24.10.2015, 14:04   #3
Colossus
Разработчик
 
Аватар для Colossus
 
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений
(для 92 пользователей)
Ответ: Player Movement

Я стесняюсь спросить, а как получить последний кадр анимации? ))
Командой AnimTime() или AnimLeight?)
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb

Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)

Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Старый 24.10.2015, 16:32   #4
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Player Movement

Сообщение от Colossus Посмотреть сообщение
Я стесняюсь спросить, а как получить последний кадр анимации? ))
Командой AnimTime() или AnimLeight?)
AnimTime() — текущий кадр анимации.
AnimLength() — общее количество кадров, соответственно покажет конечный кадр.

По теме, можно попробовать односторонние коллизии.
Зависит как будет анимация, если она из этой капсулы выходит то коллизии не будет. То есть коллизии только для того, что бы в друг друга и в стены не входили персонажи. Наблюдение за видео-играми показало что такое сплошь и рядом.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Arton за это полезное сообщение:
Colossus (24.10.2015), Gector (24.10.2015), St_AnGer (24.10.2015)
Старый 24.10.2015, 21:19   #5
Colossus
Разработчик
 
Аватар для Colossus
 
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений
(для 92 пользователей)
Ответ: Player Movement

А что если физическое тело на время анимации превращать в кинетическое?
Кстати, Arton, да и другие булчане... Подскажите, какими способами можно создать взаимодействие персонажей(скажем , броски, или что то типа того) ?
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb

Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)

Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
(Offline)
 
Ответить с цитированием
Старый 24.10.2015, 23:38   #6
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Player Movement

Сообщение от Colossus Посмотреть сообщение
А что если физическое тело на время анимации превращать в кинетическое?
Не понял? Если чистый блиц, то коллизия не будет повторять контуры анимированного персонажа (подразумевается костная анимация).
Я бы рекомендовал движок BlitzBullet.

Сообщение от Colossus Посмотреть сообщение
Кстати, Arton, да и другие булчане... Подскажите, какими способами можно создать взаимодействие персонажей(скажем , броски, или что то типа того) ?
Типа нанесения ударов, хватания за грудки с последующем швырянием?
Понятие не имею, теория о меня:
Нужны точки в активных местах персонажа (модельки), оружие, предметах.
Например точка в кулаке, идёт анимация удара, проверка где находится кулак (его точка), внутри врага, наносим урон и так далее.

Что бы один персонаж взял и швырнул другого, можно пойти другим путём. Заранее сделать эту анимацию. То есть игрок подводит своего персонажа на расстояние взаимодействия с врагом, оба персонажа могут скрыться на время и проигрывается анимация как гг хватает и кидает врага, анимация скрывается, вновь персонаж игрока, враг превращается в регдолл (или анимация полёта с перемещением модели).
Такой способ очень часто применяется, но проблема сделать автоматическую доводку персонажей до нужного расстояния, иначе часто можно наблюдать: нажал удар за спиной, твой персонаж «телепортнулся» на врага и убивает его, при этом оба стоят не там где надо.

С оружием совмещение написанного выше:
У персонажа есть готовая анимация сражения кулаками, с ножом, мечом, палкой и т. д.
Но в самой анимации на месте где должно быть оружие, отдельная кость (или точка (или точка с костью, зависит от того что нужно)), которой собственно персонаж и машет, а дальше на эту «болванку» можно закреплять разные модели оружие. получаестя анимация на определённый тип оружия. Оружие имеет активные точки, или имеет коллизию и идёт проверка, задевает «палка» врага, или нет.

Короче суть такова: анимация делается для определённого типа предметов, если персонаж взял кирпич, то ту же анимацию можно применить и для схожего по внешним и физическим характеристикам предмета, например камень.
А сам предмет закрепляется в точке, можно сделать «кирпич» дочернем объектом, но лучше всего «держать» его в координатах точки (руки), 3 координаты и 3 угла.

P. S. Надеюсь понятно написал
(Offline)
 
Ответить с цитированием
Старый 25.10.2015, 00:32   #7
Colossus
Разработчик
 
Аватар для Colossus
 
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений
(для 92 пользователей)
Ответ: Player Movement

Уважаемый Arton, большое спасибо за развернутый и оперативный ответ.
В принципе, я тоже изначально так думал, как ты и описал, но не был до конца уверен в правильности хода моих мыслей, теперь убедился, что вариант не плохой. Но, подумать конечно придётся ) Я использую связку Xors3d+PhysX, думаю можно что то реализовать из того, что тобой описано. Еще раз спасибо.
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb

Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)

Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
(Offline)
 
Ответить с цитированием
Старый 25.10.2015, 09:33   #8
Colossus
Разработчик
 
Аватар для Colossus
 
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений
(для 92 пользователей)
Ответ: Player Movement

И вот какая идея появилась) чтобы не было телепортации в момент анимации взаимодействия игрока и противника, и игроку и противнику надо спереди и сзади на уровне стоп припарентить по триггеру, в тех местах, где должен стоять противник в момент броска например)
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb

Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)

Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
(Offline)
 
Ответить с цитированием
Старый 25.10.2015, 11:58   #9
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений
(для 2,209 пользователей)
Ответ: Player Movement

Сообщение от Colossus Посмотреть сообщение
И вот какая идея появилась) чтобы не было телепортации в момент анимации взаимодействия игрока и противника, и игроку и противнику надо спереди и сзади на уровне стоп припарентить по триггеру, в тех местах, где должен стоять противник в момент броска например)
Можно сделать условие чтобы захват или бросок был на определённом расстоянии/высоте. Однако от рывков анимации это не избавляет. Нужно сделать transition между текущим состоянием и захватом. Не всегда будет естесственно выглядеть, но это лучше чем рывки.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Colossus (25.10.2015)
Старый 25.10.2015, 12:14   #10
Colossus
Разработчик
 
Аватар для Colossus
 
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений
(для 92 пользователей)
Ответ: Player Movement

Вполне реальное предложение)

И еще. Что если в разных местах уровня, сделать триггеры, при контакте с которыми, игрок выполняет определенное действие ( например карабкается, повисает, и все такое ) ?
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb

Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)

Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop

Последний раз редактировалось Colossus, 25.10.2015 в 18:17.
(Offline)
 
Ответить с цитированием
Старый 26.10.2015, 11:15   #11
jfkkk
Знающий
 
Регистрация: 24.07.2006
Сообщений: 261
Написано 476 полезных сообщений
(для 1,238 пользователей)
Ответ: Player Movement

Сообщение от Arton Посмотреть сообщение
С оружием совмещение написанного выше:
У персонажа есть готовая анимация сражения кулаками, с ножом, мечом, палкой и т. д.Но в самой анимации на месте где должно быть оружие, отдельная кость (или точка (или точка с костью, зависит от того что нужно)), которой собственно персонаж и машет, а дальше на эту «болванку» можно закреплять разные модели оружие. получаестя анимация на определённый тип оружия.
Тут есть один нюанс: если применить анимацию полностью к модели, которая воспринимается движком как сцена с дочерними объектами, то морфинг анимаций между различными секвенциями для костей и мешей, прикреплённых к костям при помощи модификатора Skin, будет происходит с разными скоростями. Вследствие чего оружие, приаттаченное к кости будет двигаться быстрее, чем меш персонажа. Поэтому придётся либо прикреплять оружие при помощи Skin, либо искать в движке функцией xFindChild меш персонажа и анимировать его одновременно с анимацией целой модели.

Также серьёзной проблемой станет имитация инверсной кинематики в движке. Так как модель привязана к пивоту или капсуле, то при проигрывании анимации атак и прочего(которые в большинстве случаев изготавливаются при помощи инверсной кинематики) модель будет отбегать от пивота или капсулы на изрядное расстояние. Если для прямолинейного движения (типа бега) это не является существенной проблемой, так как можно в анимации убрать все передвижения модели по осям X и Z и передвигать родителя модели, то в случаях анимаций, в которых на разных фазах модель передвигается с разной скоростью по разным осям это решение не подойдёт, потому как моделька персонажа будет просто неестественно сучит ногами по земле, в то время как в действительности ступни персонажа должны являться источником этой инверсной кинематики и плотно стоять на земле не проскальзывая.
В этом прожекте я передвигал пивот по осям X и Z, к которому привязана модель на те значения, которые брал из 3ds Maxa, в зависимости от проигрываемого кадра, а в движок импортировал анимации без перемещения модели по осям X и Z. Тогда это решение показалось оптимальным.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо jfkkk за это полезное сообщение:
Arton (26.10.2015), Colossus (26.10.2015), St_AnGer (26.10.2015)
Старый 26.10.2015, 16:04   #12
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Player Movement

Сообщение от Colossus Посмотреть сообщение
Что если в разных местах уровня, сделать триггеры, при контакте с которыми, игрок выполняет определенное действие ( например карабкается, повисает, и все такое ) ?
Знаешь, ТАК и делают.
На уровни раскидывают триггеры для ботов, где перелезть, где лифт и т. д.
Это часть их «интеллекта».
По другому и смысла нет делать т. к. тогда надо действительно делать ИИ. И само игровое пространство очень-очень интерактивным.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Arton за это полезное сообщение:
Артем Валерьевич (09.11.2015), Colossus (26.10.2015)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 21:45.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com