录音/制作/创作 吉他 扩声技术 视频技术 作品展示 生活 信息 更多... | 音频应用专卖店

[游戏] 这次我亲自上阵WIIREMOTE IR 帧数和延迟演示

( 14 )
 
[收藏]

3599
#1 08-10-18 00:28

这次我亲自上阵WIIREMOTE IR 帧数和延迟演示

呵呵..........................


画面中的幻影不是我的显卡不好,是手机的拍摄帧数不够造成的.

809
#2 08-10-18 00:43
我正准备做帽子呢

3599
#3 08-10-18 00:44
2楼的兄弟玩什么游戏的?

809
#4 08-10-18 23:48
正玩lfs呢,刚玩,为了体验,零件都弄好了,明天开始弄帽子,只能freetrack了.

这东西太强大了,里面还有虚拟手柄的,弄好了简直就可以当山寨Wii了.

什么游戏都可以玩!

809
#5 08-10-18 23:51
顺便请教下,在lfs里怎么设啊,我现在只能模成鼠标,然后在lfs里弄成鼠标控制视角,但这样不能前后啊,我看有视频可以前后的!

3599
#6 08-10-19 00:32
赠你一套编码,先进游戏然后按小键盘的5,如果觉得角度不够按小键盘的+,反之是 - :


/*
This was Modified based on "PipoXYZ's 2Dof, 2Leds, Flight- and RaceScript."

Modifications:
1. "smooth()" was added;
2. var.Angle is initialized by 1200 instead of 200;
3. Beep when Pitch over 90 degree (at the edge of pitch in LockON)
4. Changed keys for sensitive and centerView

Keys:
NumPad- = Less Sensitive
NumPad+ = More Sensitive
NumPad5 = Set CenterView
Joystick2.button4 pressed = set var.Angle to 3000

Compatible with these games:
http://www.naturalpoint.com/trac ... nced-games-all.html
Emulates Yaw/Pitch

Setup:
Place your Wiimote near your monitor facing your head.
Wear two IR-leds on your head facing the Wiimote.
The leds can be attached to glasses, headphones, caps or something else.
*/

if starting then
   wait 200 ms
   PIE.FrameRate = 100Hz
   if Wiimote.dot2vis = true then
         var.XOffset = (Wiimote.Dot1x + Wiimote.Dot2x) / 2
         var.YOffset = (Wiimote.Dot1y + Wiimote.Dot2y) / 2
   else
      var.XOffset = Wiimote.Dot1x
      var.YOffset = Wiimote.Dot1y
   endif
   var.Angle = 1200
endif
//Sensitivity
if pressed(NumPadMinus) and var.Angle < 1200 then
   var.Angle = var.Angle + 50
   say (var.Angle)
else
   var.Angle = var.Angle
endif
if pressed(NumPadPlus) and var.Angle > 50 then
   var.Angle = var.Angle - 50
   say (var.Angle)
else
   var.Angle = var.Angle
endif
if Joystick2.button4 <> true and var.Angle > 1200 then
   var.Angle = 1200
endif
if Joystick2.button4 then //if Joystick1.button14 then
  var.Angle = 3000
endif
//Maprange
var.MinIRX = var.XOffset - var.Angle
var.MaxIRX = var.XOffset + var.Angle
var.MinIRY = var.YOffset - var.Angle
var.MaxIRY = var.YOffset + var.Angle
//Center View
if pressed(NumPad5) then
   if Wiimote.dot2vis = true then
      var.XOffset = (Wiimote.Dot1x + Wiimote.Dot2x) / 2
      var.YOffset = (Wiimote.Dot1y + Wiimote.Dot2y) / 2
   else
      var.XOffset = Wiimote.Dot1x - var.TempX
      var.YOffset = Wiimote.Dot1y - var.TempY
   endif
   say "居中"
endif
//Mapset
if Wiimote.dot2vis = true then
   var.TempDot2x = Wiimote.Dot2x
   var.TempDot1x = Wiimote.Dot1x
   var.TempDot2y = Wiimote.Dot2y
   var.TempDot1y = Wiimote.Dot1y
   var.X = (Wiimote.Dot1x + Wiimote.Dot2x) / 2
   var.Y = (Wiimote.Dot1y + Wiimote.Dot2y) / 2
   if var.TempDot1x < var.TempDot2x then
      var.TempX = (Wiimote.Dot2x - Wiimote.Dot1x) / 2
   else
      var.TempX = (Wiimote.Dot1x - Wiimote.Dot2x) / 2
   endif
   if var.TempDot1y < var.TempDot2y then
      var.TempY = (Wiimote.Dot2y - Wiimote.Dot1y) / 2
   else
      var.TempY = (Wiimote.Dot1y - Wiimote.Dot2y) / 2
   endif
else
   if var.TempDot1x < var.TempDot2x then
      var.X =  Wiimote.Dot1x + var.TempX
   else
      var.X =  Wiimote.Dot1x - var.TempX
   endif
   if var.TempDot1y < var.TempDot2y then
      var.Y =  Wiimote.Dot1y + var.TempY
   else
      var.Y =  Wiimote.Dot1y - var.TempY
   endif
endif
//smoothing
var.TrackIRYawOld = var.FakeTrackIRYaw
var.TrackIRPitchOld = var.FakeTrackIRPitch
var.FakeTrackIRYaw = ensureMapRange(var.X, var.MaxIRX, var.MinIRX , -360, 360)
var.FakeTrackIRPitch = ensureMapRange(var.Y, var.MinIRY, var.MaxIRY , -360, 360)
var.DiffX = max(var.TrackIRYawOld,var.FakeTrackIRYaw) - min(var.TrackIRYawOld,var.FakeTrackIRYaw)
if var.DiffX < 10 then
   FakeTrackIR.Yaw = smooth(var.FakeTrackIRYaw,30)
   //FakeTrackIR.Yaw = smooth(smooth(var.FakeTrackIRYaw,30),30)
  //FakeTrackIR.Yaw = kalman(smooth(var.FakeTrackIRYaw,30),0.4,0.04)
  //FakeTrackIR.Yaw = smooth(kalman(var.FakeTrackIRYaw,0.4,0.03),30)
endif
var.DiffY = max(var.TrackIRPitchOld,var.FakeTrackIRPitch) - min(var.TrackIRPitchOld,var.FakeTrackIRPitch)
if var.DiffY < 10 then
   FakeTrackIR.Pitch = 1.5 * smooth(var.FakeTrackIRPitch,30)
   //FakeTrackIR.Pitch = smooth(smooth(var.FakeTrackIRPitch,30),30)
  //FakeTrackIR.Pitch = kalman(smooth(var.FakeTrackIRPitch,30),0.4,0.04)
  //FakeTrackIR.Pitch = smooth(kalman(var.FakeTrackIRPitch,0.4,0.03),30)
endif

809
#7 08-10-19 01:08
看不懂啊,在lfs里怎么设置啊?

809
#8 08-10-19 02:40
会了,跟本不用设,游戏自动就识别了,呵呵!

3599
#9 08-10-19 13:29
对啊............凡是支持Track IR的游戏你都可以用,都是自动识别的..........
不过,LFS最新版的好像对后窗视角做了限定,以前可以看180度的.现在只能看大概90-120度.

3599
#10 08-10-19 14:30

回复 derryken 的帖子

顺便请教下,在lfs里怎么设啊,我现在只能模成鼠标,然后在lfs里弄成鼠标控制视角,但这样 ...

看前后?你说的是6DOF的游戏,LFS好像不是6DOF的吧?它是2DOF的.............6DOF要编6DOF的代码.

809
#11 08-10-19 17:49
制作完成,四灯的,可以直接夹在帽子上,用的usb供电,哈哈!

试玩半天了,挺好用,我用的是摄像头加freetrack2.1,很爽啊.

LFS里可以前后左右随便动,想看哪看哪,哈哈!
就是我的开车水平太臭了,还鼠标呢,现在勾的我直想买个方向盘.

[pp=single_ubb,700,525,10039aq1d64f]sid=55166&surl=http://www.audiobar.net/&url=http://p.qihoo.com/pic/10039aq1d64f&rurl=http://yp.qihoo.com/pic/1602437q121fe.jpg&rurl_w=1152&rurl_h=864[/pp]

[pp=single_ubb,700,525,1302523q1dec7]sid=55166&surl=http://www.audiobar.net/&url=http://p.qihoo.com/pic/1302523q1dec7&rurl=http://yp.qihoo.com/pic/1f01d1eqf932.jpg&rurl_w=1152&rurl_h=864[/pp]

3599
#12 08-10-19 19:38
freetrack2.2已经完全支持wiiremote...............今天我刚拿到软件!!!!
.LFS对头瞄系统的精度和帧数要求不高,所以用freetrack2.1就可了,你试试IL2,就明白freetrack2.1的延迟的巨大差异,还丢帧!

freetrack2.2还是不错的,我测试了一下午结论是:
感觉不如GlovePIE省资源,其次帧数不如代码高,再次流畅度不如GlovePIE...........
个人认为,2DOF用GlovePIE比较好,6DOF的游戏freetrack表现的不错!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

3599
#13 08-10-19 20:01
呵呵.............你这帽子的布线好复杂...........哈哈

809
#14 08-10-19 20:47
哈哈,一个衣架掰的,每个灯串了个1K的电阻,这是我手头最小的了,,四个灯并联,出到usb头,主要是方便!

嘿嘿!

3599
#15 08-10-19 20:51
LED串联4个不用电阻也可以吧................
我三灯的设计是这样,其中中间的灯是两盏并在一起的,用两个的时候把中间那个用不透明的胶布封住,用的时候在打开.........呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

搜索