Plus le joystick est gros, plus le déplacement est exagéré. Il faut que je revois comment tout ça est calculé...

1619914580_screenshot_20210502-021404.jpg

D'un côté la gestion du virtual joystick dans VGButtonModel.Definitions :

float dmax = CurrentModel.VirtualButtonSize * 0.05;
dx = clamp(dx, -dmax, dmax);
dy = clamp(dy, -dmax, dmax);

float angle = atan2(dy, dx);
CurrentModel.VirtualJoystickMoveX = abs(dx) * cos(angle);
CurrentModel.VirtualJoystickMoveY = abs(dy) * sin(angle);

VirtualButtonTransform.Translate.X = CurrentModel.VirtualJoystickMoveX;
VirtualButtonTransform.Translate.Y = CurrentModel.VirtualJoystickMoveY;

Et effectivement, un chiffre en dur ne prenant pas en compte la taille du bouton de l'autre côté dans SetupVirtualGamepadState.OnUpdate et PlayerShip.OnUpdate :

Axis[0,0] = VGJoy.VirtualJoystickMoveX * 6.67;
Axis[1,0] = VGJoy.VirtualJoystickMoveY * 6.67;

La taille du bouton est gérée par :

CreateVirtualGamepad() ...
VGJoy.VirtualButtonSize = 3 + VGAdjust.Z;

et

VGButtonModel.OnUpdate ... <= pas terrible, à déplacer sur initialisation 
VirtualButtonSizeTransform.scale = CurrentModel.VirtualButtonSize;
Axis[0,0] = VGJoy.VirtualJoystickMoveX / VGJoy.VirtualButtonSize / 0.05;
Axis[1,0] = VGJoy.VirtualJoystickMoveY / VGJoy.VirtualButtonSize / 0.05;

Hop. Corrigé pour la prochaine version cool