Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Задача на смещение капсулы. Unreal engine 4

Задача на смещение капсулы. Unreal engine 4

Страницы: 1 2 Следующая »
Alex.LПостоялецwww5 дек. 201721:37#0
Парни,помогите разобраться )

В ходе изучения UE4, возникла задача изменить capsule halfheight* до значения ее радиуса (мы сжимаем капсулу и превращаем ее в сферу) и одновременно смещать capsule component по оси Z так, что бы нижняя точка полусферы всегда оставалась касательной к "земле".
Допустим мы имеем capsule component с параметрами:
halfheight - 35
radius - 15

* размер капсулы от самой нижней, до самой высокой точки ее точки.

Масштабирование капсулы происходит относительно ее центра, соответственно уменьшив ее высоту до значения 15, мы получим сферу.
Теперь сакраментальный вопрос: на сколько единиц нам нужно задать смещение центра капсулы для выполнения поставленного условия - она должна всегда стоять на земле.

Снимок222 | Задача на смещение капсулы. Unreal engine 4

Правка: 6 дек. 2017 0:42

std::cinУчастникwww6 дек. 20170:28#1
А какая исходная задача?
Alex.LПостоялецwww6 дек. 20170:48#2
std::cin, извиняюсь, забыл все условия описать. Отредактировал первый пост.
Вот задача: задача изменить capsule halfheight* до значения ее радиуса (мы сжимаем капсулу и превращаем ее в сферу) и одновременно смещать capsule component по оси Z так, что бы нижняя точка полусферы всегда оставалась касательной к "земле".
std::cinУчастникwww6 дек. 20170:49#3
Alex.L ты делаешь приседание?
Alex.LПостоялецwww6 дек. 20170:54#4
std::cin, да, это в конечном итоге это для анимации приседания персонажа.
cNoNimУчастникwww6 дек. 20171:01#5
Alex.L
прям матан... какой то...
тока суслик может знать ответ на этот вопрос
тру приседание, это поджимание ног, а не опускание на землю )

Правка: 6 дек. 2017 1:02

Alex.LПостоялецwww6 дек. 20171:23#6
cNoNim, бросьте, никакого матана и суслика не нужно. Вот еще картинка. Высоту принимаем за А, радиус за B, а искомую величину на которую понадобится сдвинуть сферу, которую получим сжав капсулу - за Х.
Получается Х= (А - (B*2))/2. Согласны?
Возвращаемся к реальным значениям с верхних фигур на картинке:
(35 - (7.5*2))/2 = 10. Правильно ведь?

Снимок333 | Задача на смещение капсулы. Unreal engine 4

Правка: 6 дек. 2017 1:24

MrShoorУчастникwww6 дек. 20173:14#7
Alex.L
Я бы начал с того, что задумался, почему параметр называется halfheight (что дословно можно перевести как половинавысоты), а у тебя на рисунках показана не половина, а целая высота капсулы.
Alex.LПостоялецwww6 дек. 20173:33#8
MrShoor, я понимаю что значит halfheight. На картинках у нвидии правильно указано как размеры капсулы понимать?
http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/g… peCapsule.png
MrShoorУчастникwww15 дек. 201723:02#9
Alex.L
> На картинках у нвидии правильно указано как размеры капсулы понимать?
Не знаю. Зависит от UE, как он это трактует. Возьми да проверь, делов то.
key0Постоялецwww18 дек. 201720:55#10
Вообщем не вникал , но если надо сделать капсулу горизониальную, например для животного, чтобы вектора смотрели как надо, надо править исходники ( добавить в энум еще один тип и по аналогии с оьычной капсулрй менять везде гле .Z на .X
Alex.LПостоялецwww19 дек. 20171:17#11
key0, ну вот у меня есть подозрения что capsule component вообще как-то странно работает. Как я не пытался трактовать halfheight, у меня упорно не сходились цифры из простой математики, которую я на картинках выше показывал с теми значениями которые мне по факту пришлось задавать для смешения капсулы.

В общем есть у анрила какие-то странные косяки и недоработки.

std::cinУчастникwww19 дек. 20171:46#12
Alex.L габариты физ-тел менять в реальном времени нельзя. Проще из двух капсул сделать
Sh.Tac.Постоялецwww19 дек. 20172:39#13
Alex.L
> которые мне по факту пришлось задавать для смешения капсулы
а какие пришлось задавать? может она поскейлена у тебя?

https://docs.unrealengine.com/latest/INT/BlueprintAPI/Components/… leHalfHeight/

> изменить capsule halfheight* до значения ее радиуса
до нуля не пробовал? : )

Правка: 19 дек. 2017 2:41

Alex.LПостоялецwww19 дек. 20172:40#14
std::cin, на сколько я помню, ноды crouch/un crouch в character actor именно это и делают. Но там, вроде, дискретно размер капсулы меняется.
А вообще не знаю, спорить не буду, т.к. я в конечном итоге из pawn класса персонажа делал и физику вводить не стал. 
Страницы: 1 2 Следующая »

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр