Вопрос ViewModel | Как изменять позицию только одной руки?

Начинающий
Статус
Оффлайн
Регистрация
30 Июл 2023
Сообщения
52
Реакции[?]
0
Поинты[?]
1K
Салам привет хеллоу всем кароче сделал за пару сек такой код но за фордж я ваще не ага так что подскажите
как изменять позицию только ведущей руки, то есть правой, ну и если можно то проверку есть ли в этой руке предмет или нет
Код:
    @SubscribeEvent
    public void onRender(RenderHandEvent event)
        float posX = (float) X.getValueFloat();
        float posY = (float) Y.getValueFloat();
        float posZ = (float) Z.getValueFloat();

        glTranslated(posX, posY, posZ);
    }
спасибо всем тем кто поможет

p.s X.getValueFloat(); это у меня настройки функции если что да спасибо
 
Пользователь
Статус
Оффлайн
Регистрация
22 Авг 2022
Сообщения
295
Реакции[?]
44
Поинты[?]
34K
Салам привет хеллоу всем кароче сделал за пару сек такой код но за фордж я ваще не ага так что подскажите
как изменять позицию только ведущей руки, то есть правой, ну и если можно то проверку есть ли в этой руке предмет или нет
Код:
    @SubscribeEvent
    public void onRender(RenderHandEvent event)
        float posX = (float) X.getValueFloat();
        float posY = (float) Y.getValueFloat();
        float posZ = (float) Z.getValueFloat();

        glTranslated(posX, posY, posZ);
    }
спасибо всем тем кто поможет

p.s X.getValueFloat(); это у меня настройки функции если что да спасибо
1723497270507.png
Код:
if (event.getHand() == Hand.MAIN_HAND)
    // translate
 
Пользователь
Статус
Оффлайн
Регистрация
22 Авг 2022
Сообщения
295
Реакции[?]
44
Поинты[?]
34K
1723499727709.png
Java:
float leftX = 0.2f, leftY = 0.0f, leftZ = 0.0f;
        float rightX = 0.0f, rightY = 0.3f, rightZ = 0.0f;

        if (event.getHand() == Hand.MAIN_HAND) {
            event.getMatrixStack().translate(leftX, leftY, leftZ);
        } else {
            event.getMatrixStack().translate(-leftX, -leftY, -leftZ);
            event.getMatrixStack().translate(rightX, rightY, rightZ);
        }
ну если без миксинов то вот как вариант
 
Начинающий
Статус
Оффлайн
Регистрация
30 Июл 2023
Сообщения
52
Реакции[?]
0
Поинты[?]
1K
Посмотреть вложение 283275
Java:
float leftX = 0.2f, leftY = 0.0f, leftZ = 0.0f;
        float rightX = 0.0f, rightY = 0.3f, rightZ = 0.0f;

        if (event.getHand() == Hand.MAIN_HAND) {
            event.getMatrixStack().translate(leftX, leftY, leftZ);
        } else {
            event.getMatrixStack().translate(-leftX, -leftY, -leftZ);
            event.getMatrixStack().translate(rightX, rightY, rightZ);
        }
ну если без миксинов то вот как вариант
у меня каким то хуем все равно изменяются обе руки:


 
Начинающий
Статус
Оффлайн
Регистрация
30 Май 2024
Сообщения
52
Реакции[?]
0
Поинты[?]
0
у меня каким то хуем все равно изменяются обе руки:


ты немного не так сделал вот тебе фулл код

Java:
public class ViewModel extends Module {
    public static NumberSetting X = new NumberSetting("posX",-2,2,0,1);
    public static NumberSetting Y = new NumberSetting("posY",-2,2,0,1);
    public static NumberSetting Z = new NumberSetting("posZ",-2,2,0,1);
    public static NumberSetting X2 = new NumberSetting("posX2",-2,2,0,1);
    public static NumberSetting Y2 = new NumberSetting("posY2",-2,2,0,1);
    public static NumberSetting Z2 = new NumberSetting("posZ2",-2,2,0,1);
    public ViewModel(){
        super("ViewModel",0, Category.RENDER," ");
        addSetting(X);
        addSetting(Y);
        addSetting(Z);
        addSetting(X2);
        addSetting(Y2);
        addSetting(Z2);
    }


    @SubscribeEvent
    public void onRender(final RenderHandEvent event) {
        if (event.getHand() == Hand.MAIN_HAND) {
            event.getMatrixStack().translate(X.getValueFloat(), Y.getValueFloat(), Z.getValueFloat());
        } else {
            event.getMatrixStack().translate(-X.getValueFloat(), -Y.getValueFloat(), -Z.getValueFloat());
            event.getMatrixStack().translate(X2.getValueFloat(), Y2.getValueFloat(), Z2.getValueFloat());
        }
    }

}
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
1 Ноя 2023
Сообщения
55
Реакции[?]
3
Поинты[?]
1K
А разве рендер рук одновременно в одном методе ибо это не работало бы, но тогда зачем возвращать сдвиг матрицы в начальное положение если после вызова рендера другой руки она бы обновилась ? Или я чёт не так понял ?
 
Пользователь
Статус
Оффлайн
Регистрация
22 Авг 2022
Сообщения
295
Реакции[?]
44
Поинты[?]
34K
Начинающий
Статус
Оффлайн
Регистрация
30 Июл 2023
Сообщения
52
Реакции[?]
0
Поинты[?]
1K
ты немного не так сделал вот тебе фулл код

Java:
public class ViewModel extends Module {
    public static NumberSetting X = new NumberSetting("posX",-2,2,0,1);
    public static NumberSetting Y = new NumberSetting("posY",-2,2,0,1);
    public static NumberSetting Z = new NumberSetting("posZ",-2,2,0,1);
    public static NumberSetting X2 = new NumberSetting("posX2",-2,2,0,1);
    public static NumberSetting Y2 = new NumberSetting("posY2",-2,2,0,1);
    public static NumberSetting Z2 = new NumberSetting("posZ2",-2,2,0,1);
    public ViewModel(){
        super("ViewModel",0, Category.RENDER," ");
        addSetting(X);
        addSetting(Y);
        addSetting(Z);
        addSetting(X2);
        addSetting(Y2);
        addSetting(Z2);
    }


    @SubscribeEvent
    public void onRender(final RenderHandEvent event) {
        if (event.getHand() == Hand.MAIN_HAND) {
            event.getMatrixStack().translate(X.getValueFloat(), Y.getValueFloat(), Z.getValueFloat());
        } else {
            event.getMatrixStack().translate(-X.getValueFloat(), -Y.getValueFloat(), -Z.getValueFloat());
            event.getMatrixStack().translate(X2.getValueFloat(), Y2.getValueFloat(), Z2.getValueFloat());
        }
    }

}
работает спасиба
 
Сверху Снизу