器520的一个或多个针对性马达或针对性致动器 (例如,如图5中所示的马达L和R)缩放触发器触觉效果。触发器引擎506还可存储一个 或多个触觉效果定义,例如触发器触觉效果定义。在替换实施例中,触发器引擎506可驻留 在外围固件510内而不是设备500内。
[0038] 设备500还包括空间化引擎507 (在图5中标识为"空间化引擎")。空间化引擎 507可接收触觉数据,例如触发器触觉效果定义,并且可基于空间化数据来修改触觉数据。 空间化数据可包括指示触觉效果(例如触发器触觉效果)的期望方向和/或流动的数据。 在某些实施例中,空间化引擎507可从游戏输入管理代码501接收包括方向和/或流动的 空间化数据。另外,空间化数据还可包括位于控制器520上的用户的一只手或多只手的一 个或多个位置。在某些实施例中,空间化引擎507可从控制器520接收包括一个或多个手 部位置的空间化数据。另外,在某些实施例中,空间化引擎507可接收由游戏输入管理代码 501传达的包括用户的角色在游戏应用内的位置的空间化数据。
[0039] 根据该实施例,空间化引擎507可修改触觉数据,以便对于控制器520的一个或多 个轰鸣马达或轰鸣致动器(例如,如图5中所示的轰鸣马达L和R)缩放触觉效果,例如触 发器触觉效果,并且也对于控制器520的一个或多个针对性马达或针对性致动器(例如,如 图5中所示的马达L和R)缩放触觉效果。换言之,空间化引擎507可修改被发送到每个马 达或致动器的触觉数据,从而修改在每个马达或致动器处体验到的触觉效果,以便表达整 体触觉效果的方向和流动的感觉。例如,为了强调在马达或致动器处体验到的触觉效果,空 间化引擎507可缩放触觉效果的一个或多个部分。例如,空间化引擎507可缩放被发送到 马达或致动器的使得触觉效果被体验到的触觉数据,从而使得触觉效果更为明显(例如, 增大的幅度、持续时间,等等)。此外,空间化引擎507可缩放被发送到其他马达或致动器 的触觉数据,使得在这些马达或致动器处体验到的其他触觉效果不那么明显(例如,减小 的幅度、持续时间,等等)。在某些实施例中,空间化引擎507可实时地修改触觉数据。另 外,在某些实施例中,空间化引擎507在输入与马达或致动器输出之间可具有非线性关系, 以便夸大整体触发器触觉效果。在替换实施例中,空间化引擎507可驻留在外围固件510 内而不是设备500内。
[0040] 设备500还包括编码器508。编码器508把从直接重放/交越505、触发器引擎 506和/或空间化引擎507接收的触觉数据编码成某种格式。在一个实施例中,该格式可以 是HES格式。编码器508还将经编码的触觉数据发送到外围固件510。
[0041] 外围固件510包括解码器和交越511。解码器和交越511从编码器508接收经编 码的触觉数据并且对经编码的触觉数据解码。在某些实施例中,解码器和交越511计算一 种可编程的交越以便对经编码的触觉数据解码。在这些实施例的一些中,解码器和交越511 实时地计算可编程的交越。外围固件510还包括触发器控制512。触发器控制512是用于 控制器520的一个或多个针对性马达或针对性致动器(例如,如图5中所示的马达L和R) 的低级别控制API。触发器控制512可从设备500接收触发器指令,可将触发器指令转换成 用于控制器520的指定的针对性马达或针对性致动器的低级别触发器指令,并且可将低级 别触发器指令发送到控制器520的指定的针对性马达或针对性致动器。低级别触发器指令 可使得指定的针对性马达或针对性致动器在控制器520的特定触发器处产生触发器触觉 效果。
[0042] 外围固件510还包括触发器数据513。触发器数据513如前所述是包括一个或多 个参数一一例如指示控制器520的一个或多个触发器(例如,如图5中所示的触发器L和 R)的位置和/或范围的一个或多个参数一一的数据。触发器数据513可由外围固件510从 控制器520接收。外围固件510还可存储触发器数据513,并且还可将触发器数据513发 送到设备500。外围固件510还包括其他游戏手柄功能514,这些功能是控制器520的可由 外围固件510来管理的功能。这种功能可包括诸如有线/无线通信、输入报告、协议实现、 功率管理等等之类的功能。外围固件510还包括轰鸣控制515。轰鸣控制515是用于控制 器520的一个或多个轰鸣马达或轰鸣致动器(例如,如图5中所示的轰鸣马达L和R)的低 级别控制API。轰鸣控制515可从设备500接收轰鸣指令,可将轰鸣指令转换成用于控制 器520的指定的轰鸣马达或轰鸣致动器的低级别轰鸣指令,并且可将低级别触发器指令发 送到控制器520的指定的轰鸣马达或轰鸣致动器。
[0043] 控制器520包括触发器L和R。控制器520还包括齿轮箱L和R以及马达L和R。 马达L和齿轮箱L可操作地耦合到控制器520内的触发器L。类似地,马达R和齿轮箱R可 操作地耦合到控制器520内的触发器R。当马达L接收到触发器指令时,马达L和齿轮箱L 共同使得触发器触觉效果在触发器L处被体验到。类似地,当马达R接收到触发器指令时, 马达R和齿轮箱R共同使得触发器触觉效果在触发器R处被体验到。根据该实施例,外围 固件510利用驱动电子装置530向控制器520的马达L和R发送触发器指令。控制器520 还包括电位计L和R。电位计L可检测触发器L的位置和/或范围,并且还可将检测到的触 发器L的位置和/或范围作为触发器数据发送到外围固件510。类似地,电位计R可检测触 发器R的位置和/或范围,并且还可将检测到的触发器R的位置和/或范围作为触发器数 据发送到外围固件510。在一个实施例中,电位计L和R可以各自被另一种类型的传感器所 替代,例如霍尔效应传感器。控制器520还包括轰鸣马达L和R。当轰鸣马达L接收到轰 鸣指令时,轰鸣马达L使得沿着控制器520的左侧主体体验到触觉效果。类似地,当轰鸣马 达R接收到轰鸣指令时,轰鸣马达R使得沿着控制器520的右侧主体体验到触觉效果。根 据该实施例,外围固件510利用轰鸣驱动电子装置530向控制器520的轰鸣马达L和R发 送轰鸣指令。
[0044] 在替换实施例中,一个或多个针对性马达或者针对性致动器可以可操作地耦合到 控制器520的一个或多个用户输入元件(例如,一个或多个数字按钮、一个或多个模拟按 钮、一个或多个减震器、一个或多个方向手柄、一个或多个模拟或数字摇杆、一个或多个驱 动轮、一个或多个滑块)。根据该替换实施例,外围固件510可向一个或多个针对性马达或 针对性致动器发送指令,使得一个或多个针对性马达或针对性致动器产生在控制器520的 一个或多个用户输入元件处体验到的触觉效果。
[0045] 在一个实施例中,如前所述,在触觉效果正在诸如控制器或游戏手柄之类的外围 设备的用户输入元件处被播放或者在外围设备处以其他方式被播放的同时,系统(例如图 1的系统10)可接收关于外围设备的用户输入元件的用户输入数据,其中触觉效果是基于 原始触发器触觉效果定义的。作为具体示例,在触发器触觉效果正在外围设备的触发器处 被播放的同时,系统可接收关于控制器的触发器的触发器数据。系统可确定当触觉效果定 义是基于接收到的用户输入数据来创作的时,触觉效果将不会像原本打算那样被体验到。 例如,具有轻频率(例如,200赫兹("Hz"))的振动触感触觉效果在施加到触发器时通常将 会在触发器上产生小振动。然而,如果用户将触发器一直往里拉,和/或如果用户紧握着触 发器,则振动触感触觉效果很有可能不会被用户感受到,除非修改振动触感触觉效果以增 大幅度和频率。作为另一示例,如果用户正牵拉着触发器,在触发器上产生对用户的手指的 推力的动觉触觉效果将有可能不被用户感受到,除非修改动觉触觉效果以增大幅度(即, 强度)或频率。
[0046] 系统还可以程序化地修改触觉效果定义,以使得即使考虑到接收的用户输入数 据,经修改的触觉效果也与原本打算的原始触觉效果相似或相同。换言之,系统可以程序化 地修改触觉效果定义以针对由接收到的用户输入数据表示的用户与用户输入元件的交互 所引起的原始触觉效果的减弱。通过程序化地修改触觉效果定义,系统可以程序化地修改 触觉效果定义内包括的触觉数据的一个或多个参数。这种参数包括:幅度(或强度)参数; 频率参数;方向性参数;发动参数;衰退参数;或者持续时间参数。或者,通过程序化地修改 触觉效果定义,系统可生成单独的触觉效果定义,并将该单独的触觉效果定义发送到单独 的马达或致动器,以便在生成原始触觉效果的同时生成单独的触觉效果,其中该单独触觉 效果补充原始触觉效果。对触觉效果定义的程序化修改可根据系统的修改算法来实现。系 统还将触觉指令和经修改的触觉效果定义发送到外围设备内的致动器或马达。致动器或马 达可进一步基于经修改的触觉效果定义来输出经修改的触觉效果。
[0047] 在一个实施例中,触觉指令可以是触发器指令,并且经修改的触觉效果定义可以 是经修改的触发器触觉效果定义。另外,触发器指令和经修改的触发器触觉效果定义可 被发送到与触发器可操作地耦合的触发器致动器或马达。作为示例,触发器触觉效果定义 可以定义由可操作地耦合到触发器的针对性致动器或马达施加到触发器的具有指定幅度 (或强度)的双向推/拉力。另外,电位计、霍尔传感器或者其他类型的传感器可确定用户 是在拉还是推触发器。系统可以程序化地确定,当用户正在牵拉触发器时,可操作地耦合到 触发器的针对性致动器或马达需要向触发器施加多大的推力来针对用户对触发器的牵拉 进行补偿。系统可以程序化地修改触发器触觉效果定义,以使得针对性致动器或马达施加 充分的推力来针对用户对触发器的牵拉进行补偿。系统可以通过修改触发器触觉效果定义 的以下参数中的至少一个来程序化地修改触发器触觉效果定义:幅度(即,强度)参数;频 率参数;持续时间参数;方向性参数;发动参数;或者衰退参数。在替换实施例中,系统可生 成定义触觉效果的触觉效果定义,使得在外围设备内、但没有可操作地耦合到触发器的一 个或多个一般致动器或马达可生成定义的触觉效果,该定义的触觉效果对由可操作地耦合 到触发器的针对性致动器或马达施加的双向推/拉力进行补偿。在另一替换实施例中,由 一个或多个一般致动器或马达生成的触觉效果可替代由可操作地耦合到触发器的针对性 致动器或马达施加的双向推/拉力。
[0048] 如前所述,用户输入元件可以例如是数字按钮、模拟按钮、减震器、方向手柄、模拟 或数字摇杆、驱动轮、滑块或者触发器。另外,用户输入数据可以例如是用户输入元件的位 置、用户输入元件的闭合速率、或者施加到用户输入元件的力。在一个实施例中,用户输入 数据还可包括从用户输入元件的位置、用户输入元件的闭合速率或者施加到用户输入元件 的力得出的数据。当用户输入元件是触发器时,用户输入数据可以是触发器数据,其中触发 器数据可以例如是触发器的位置、触发器的闭合速率或者施加到触发器的力。诸如触发器 数据之类的用户输入数据可由可操作地耦合到诸如触发器之类的用户输入元件的电位计、 霍尔传感器或者其他类型的传感器生成。
[0049] 在一个实施例中,外围设备可检测运动,例如用户输入元件的运动,其中该运动是 多轴运动(即,跨外围设备的两个或更多个轴的运动)。在此实施例中,运动数据可被生成 并发送到系统,其中系统可接收运动数据。系统还可考虑到接收到的运动数据来程序化地 修改触觉效果定义。例如,系统可修改触觉效果定义以在多轴运动期间暂停触觉效果。作为 另一示例,系统可修改触觉效果定义以在向上运动转到向下运动时减小触觉效果的频率。
[0050] 图6根据本发明的实施例示出了原始触发器触觉效果定义600,其可