Minecraft Forums
Need to set the yaw and pitch of the player from server-side [SOLVED]
I am teleporting a player to a location and I need to set the yaw and pitch of the player as they arrive.
Currently I am using
I have tried other fuctions that would seem to work but do nothing. I suspect sending some kind of packet to the client is needed but I don’t really have a clue what or how to do this.
1 = 0
If you are just using setPositionAndUpdate, the angles should not change once you set them; however, you need to set the values on the client for the player’s view to render accordingly.
I’ve personally used rotationYaw/Pitch on the client side to change the player’s view, so I know it works.
That is good to know.
So far this mod is server side only. So the cleints do not need to have it to use it on a server. I am very much hoping to keep it that way if possible.
I have thought about having it client side as well. My mod works great teleporting them as needed without the yaw and pitch. So this is one of the very last things I want to get fixed. I still am hoping for some code to just tell the client what yaw and pitch.
I seem to recall reading something about someone setting the coordinates and yaw and pitch then sending a packet. something about a look12 packet or similar name. The packet was sent to the client to update it.
Does anyone know about this sort of thing? Im still trying to set the yaw and pitch of the player with server-side mod code.
Yeah, teleport doesn’t have that feature in 1.6.4
Anyways, I suggest that you update to 1.7.2. It will be a pain in the butt, but it does have the yaw and pitch teleportation that you need. I suggest that you do so. If you know what the main changes were between 1.6.4 and 1.7.2 it shouldn’t be too hard to figure out.
1 = 0
I seem to recall reading something about someone setting the coordinates and yaw and pitch then sending a packet. something about a look12 packet or similar name. The packet was sent to the client to update it.
Does anyone know about this sort of thing? Im still trying to set the yaw and pitch of the player with server-side mod code.
I bet you could find the right packet if you opened up the net.minecraft.network.packet package
Here’s something interesting I found while messing around, though, that will probably do what you need:
I found code on the net like this
Minecraft mc = Minecraft.getMinecraft();
mc.getSendQueue().addToSendQueue(new Packet12PlayerLook(yaw, pitch, onGround));
The red part it cannot resolve.
This was exciting and terrible.
In single player your code works very well!
import java.io.File;
import java.util.List;
I was concerned about using EntityPlayerMP in single player mode but it seems to work.
Команды m_pitch и m_yaw
19 May 2016 в 19:15
19 May 2016 в 19:15 #1
m_pitch «0.022» //Вертикальная чуствительность мыши, градусов на 1 тик мыши.
m_yaw «0.022» //Горизонтальная чуствительность мыши, градусов на 1 тик мыши.
19 May 2016 в 19:16 #2
19 May 2016 в 19:17 #3
у меня в мме все ок робит
помню еще давно сильно зарофлил-скинул в общий чат как то так- «m_yaw 999 in console to win»
и один чувак во вражеской тиме реально ввел,и не знал прошлое значение 😀
бегал раундов 6 с такой сенсой,потом ток вернул обратно))0
19 May 2016 в 19:18 #4
нет нет,в мме у меня тож такое робит,частенько сейчас на респе прописываю m_yaw побольше,и фанюсь во все стороны
19 May 2016 в 19:29 #5
Значение m_pitch зафиксировано на дефолтном и не может быть изменено, ни в мм, ни где-либо еще.
Настраиваем RTX в Minecraft
Итак, Minecraft RTX вроде бы как официально вышел из беты почти 2 месяца назад. Но у пользователей до сих пор возникают проблемы с тем, чтобы активировать эту технологию NVIDIA в данной игре.
При этом сама Microsoft ничего не делает для того, чтобы владельцы версии игры из Windows Store могли просто зайти в игру, нажать пару галок и увидеть заветную трассировку на своём экране. Путь к графону оказался гораздо более тернист, чем хотелось бы
Что ж, придется обмазываться сторонними решениями. Зря что ли мы RTX карты покупали по тройной цене у перекупов, не так ли? Да и сам бесполезный Bedrock Edition многими покупался исключительно ради этой фичи.
Начнем с того, что без танцев с бубнами RTX доступен только на предзатовленных корпорацией Дженсена Хуанга специальных демонстрационных картах.
Раньше они были доступны в демо-версии игры, которая активировалась через Xbox Insider. Сейчас как обстоят дела с доступом на эти карты я не знаю. И знать уже не хочу.
Вне этих демок RTX включить можно только если поставить соответствующий resource pack. Этим мы и займемся.
Итак, на данный момент у нас есть как минимум два более-менее полнофункциональных ресурсных пака с поддержкой RTX.
И вот примерно так он выглядит.
Так же по ссылкам ниже можно скачать два ресурсных пака от нвидии с HD-текстурами. Однако в этих паках нет emessive составляющей у материалов. Проще говоря, блоки лавы и редстоуна в этих паках не светятся. А еще нет нормал маппинга и бампа.
Выглядит оно как-то так.
Данный пак делался с прицелом на ванильные, классические текстуры майнкрафта и потому смотрится, пожалуй, лучше всех остальных.
По большому счёту это всё. Теперь вы можете любоваться полноценной трассировкой в реальном времени с оригинальным дизайном блоков.
Но есть ряд важных аспектов. Ими мы сейчас как раз и займемся.
Начнём с того, как в игре работает освещение с точки зрения геймплея и функциональности. Вот как выглядит наша тестовая сцена в оригинале, без RTX и прочих шейдеров (в потолке дырка, без неё непроглядная тьма)
А вот немного модифицированный вариант.
Как мы это сделали? Сейчас мы займемся своего рода моддингом. Идём на нашем компе по следующему адресу:
Для этого расчехляем наш купленный на торрентах за кровные 0 рублей фотошоп. Если вы не являетесь поклонником продукции Adobe, то можете заюзать GIMP или Krita.
По умолчанию параметр G: (зеленый цвет) стоит в значении 0. Я выставил значение 2 и просто залил полученным цветом всё изображение.
Благодаря этому текстура нашего камня по умолчанию слегка светится и вы даже в самой анальной темноте не сможете потеряться.
В принципе можно выставить значение и свыше 2, но желательно не больше 5.
А ещё было бы здорово, если бы Microsoft или NVIDIA сделали некий глобальный параметр, который всем материалам добавлял чутка emissive. Однако эта технология явно не столько для удовольствия людей делалась, сколько ради маркетинга. И об удовлетворении подобных прихотей они наверняка даже не подумали ни разу.
Вариант от NVIDIA имеет нормал маппинг. Это такая фиолетовая текстурка, которая как бэ поворачивает пиксели и создаёт эффект игры света на поверхности, тем самым имитируя объем. И потому этот пак может давать более интересные результаты с технической точки зрения. Однако его нужно перерисовать под ваниллу чуть менее, чем полностью. Этим я даже не пытался заниматься.
Данный эффект можно убрать или снизить, обработав текстуры с припиской normal. Тут для примера я взял текстуру песка (sand_normal) и залил ее черным цветом. И получилось это.
yaw pitch roll
дак камера смотрит по z, которая поворачивается вместе со всей системой. Ты же не одну ось крутишь, они взаимосвязаны.
olegf
>Вот где я и что не понимаю?
Я сам не понимаю что ты хочешь сказать. В Quake, например, плоскость XY горизонтальная. Ось Z вверх. При рендеринге в момент установки камеры делается поворот на 90 градусов (модельная матрица домножается на матрицу поворота) и получается стандартная система OpenGL.
А в бан за такой базар не хочешь?
Spartan
olegf думал что камера смотрит вниз. Хотя в OpenGL при нулевых углах она смотрит вперед
«вниз» и «вперед» это лишние термины. В GL проектирование задается такими формулами, что относительно мировых координат камера (если ее вообще не трогать) будет смотреть в отрицательном направлении Z, а плоскость проекции будет XY. То есть оризонтальная плоскость получается XZ. Однако в играх (вот в quake ты говоришь) горизонтальной является XY. Как это несоответствие обходят, вот этого я и не понял.
>При рендеринге в момент установки камеры делается поворот на 90 градусов (модельная матрица домножается на матрицу поворота)
Поворот вокруг оси X? Было б круто посмотреть на сами функции.
Com_Memset (&tr.or, 0, sizeof(tr.or));
tr.or.axis[0][0] = 1;
tr.or.axis[1][1] = 1;
tr.or.axis[2][2] = 1;
VectorCopy (tr.viewParms.or.origin, tr.or.viewOrigin);
// transform by the camera placement
VectorCopy( tr.viewParms.or.origin, origin );
viewerMatrix[3] = 0;
viewerMatrix[7] = 0;
viewerMatrix[11] = 0;
viewerMatrix[15] = 1;




