Я делаю игру в 3D-игры в кости и дошел до одной проблемы: я не могу обернуться, поэтому я обращаюсь к вам за помощью.
В сцене / мире (используя threejs с cannonjs) У меня есть самолет и один кубик, который я кидаю на самолет (скриншоты здесь перед броском http://prntscr.com/l9rat5, результат http://prntscr.com/l9rdeb). Все работает нормально, пока я не хочу бросить какое-то конкретное значение нанапример, умрите как 1.
Поскольку я использую загруженные модели вместо текстурных изображений для граней куба, я не могу справиться с этим, просто изменив грани куба в течение трех секунд (так как у модели их сотни)Поэтому я надеялся, что смогу достичь этого, каким-то образом изменив начальный кватернион тела (своего рода предварительно повернув его), чтобы матрица упала на определенную сторону. Сетка матрицы просто следует за положением тела и кватернионом.
У меня есть следующие вопросы:
Возможно ли это вообще сделать? Может быть, когда я изменю предварительный бросок кватерниона, это всегда приведет к другому окончательному кватерниону, который я не могу определить?нельзя ли делать с кватернионами какие-либо подсказки?
Если это возможно, как мне определить, на какой кватернион мне нужно умножить исходный, чтобы получить желаемое значение результата 1?У меня есть окончательный кватернион, и я знаю, какие значения находятся на каждом лице из эмулированного броска, поэтому я пытался играть с обратным кватернионом, но безуспешно.
Если я просто поверну исходное тело так, чтобы грань 1 повернулась крезультат лица (например, 6) это работает в некоторых случаях (я бросаю 1, когда эмулируемый результат был 6), но когда бросок становится более сложным (больше вращений), это не работает, конечно, так как я не рассчитываю на все возможныеповороты.
Если не ясно, что я имею в виду, дайте мне знать, пожалуйста.
Большое спасибо m