#1
|
|||
|
|||
XBOX 360 wireless controller vibration feedback
In Vizard 5 is there a way to make the vibration feedback work on the XBOX 360 wireless controller. I checked in VizConnect and I don't see any way to control the vibration feedback. I also looked through the documentation and I see <joy>.hasForceFeedback() and <joy>.setForce(vector). When I print <joy>.hasForceFeedback() I get FALSE. But I used another program on my Windows 7 computer to test the vibration feedback on the left side and right side of the controller and it works fine.
Thank you John |
#2
|
|||
|
|||
Hi John,
Unfortunately, since Vizard accessing data from any DirectInput compatible gamepad and joystick device. Which also means that for the Xbox360 controller, it will need to have the force feedback function provided by DirectInput but currently it seems not. The reason why you got the vibration feedback works on another program is that it is actually using XInput instead of DirectInput. Here is some information for your reference. http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx So maybe a logitech rumblepad might be a better choice for you if you want a force feedback fuction that works with Vizard. Best Regards, Kevin |
#3
|
|||
|
|||
Hi John,
Here is a work around for having the vibration working in Vizard via the Python ctypes library. Please be aware about the XInput versions which you have and change the line accordingly when loading the Xinput.dll. For example, if the XInput versions is 9.1.0 then it will become Code:
ctypes.windll.xinput9_1_0 http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx Hope this helps. Best, Kevin Code:
import ctypes # Define necessary structures class XINPUT_VIBRATION(ctypes.Structure): _fields_ = [("wLeftMotorSpeed", ctypes.c_ushort), ("wRightMotorSpeed", ctypes.c_ushort)] xinput = ctypes.windll.xinput1_4 # Load Xinput.dll # Set up function argument types and return type XInputSetState = xinput.XInputSetState XInputSetState.argtypes = [ctypes.c_uint, ctypes.POINTER(XINPUT_VIBRATION)] XInputSetState.restype = ctypes.c_uint # The helper function with 3 input arguments: # controller id ( 0 for the first controller ) # left motor vibration scaled from 0 (off) to 1.0 (full on) # right motor vibration (also 0 - 1.0) def set_vibration(controller, left_motor, right_motor): vibration = XINPUT_VIBRATION(int(left_motor * 65535), int(right_motor * 65535)) XInputSetState(controller, ctypes.byref(vibration)) ## Example usage import time set_vibration(0, 0.5, 0.5) time.sleep(1) set_vibration(0, 0, 0) |
#4
|
|||
|
|||
Thank you for the info. I will try out what you provided.
Since you mentioned Logitech, do you know if Logitech F710 Wireless Gamepad would work without needing to make the changes you mentioned for the XBox 360 Wireless controller? thank you John |
#5
|
|||
|
|||
Seems positive though we don't have it to confirm at our end.
But according to their web page, it seems for having the rumble effect will just require a software installation when using DirectInput mode which they already provide at this page. http://www.logitech.com/en-us/suppor...-f710?crid=411 Hope this still helps. Best, Kevin |
#6
|
|||
|
|||
Thank you for information and your help. I was able to get the code you provided working with my XBox 360 controller. very helpful.
Thank you John |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
XBOX One Wireless Controller | JB_HP_Viz | Vizard | 1 | 07-08-2014 06:45 AM |
Rumble on Xbox 360 controller on PC | pcatalano | Vizard | 1 | 03-11-2012 05:36 PM |
Wii Kama Wireless controller ??? | djdesmangles | Vizard | 2 | 02-11-2009 06:58 PM |