level 7
圣灵战士
楼主
几周前出差时突发奇想,发现有一个比较简单的办法可以实现让人偶发声的功能。回家后用了一个通宵做了一个简单的DEMO,发现确实可行。
--------------------------------------
概述
基础功能:让人偶对外力作出声音反馈。
进阶功能:识别不同的施力方式,进而作出更细致的声音反馈。
--------------------------------------
首先是程序方面。因为我不是程序员,所以只能用RPGMAKER XP(一种业余的RPG游戏制作工具)做了一个程序,但这样也更简单,基本上人人都能做。
思路:
根据力度的大小决定每一次刺激的伤害值,人偶受伤后根据剩余的HP决定需要发声的大类。比如HP大于70%时是普通的叫喊,30~69%则是哀嚎,29%以下则是虚弱的呻吟等。
然后根据施力的方式决定采用大类中的哪一个分类的声音。比如击打胸部是剧烈吐气的声音,而击打腹部则是另一种。
人偶的HP会随时间缓慢恢复,因此一个被你打到半死的人偶可能过一段时间就会重返健康状态。
实现方式:
用按键来代表施力。比如按下X键是头部,Y键是腹部等……把所有可能出现的情况都用按键进行定义。
接下来是建立声音库。你有多少种施力方式和体力类型,就需要施力方式*体力类型个库,这样就可以保证每一种施力都有合适的声音与之对应。但为了效果,最好每个库里都有5种以上的声音,每次随机在库里选择一个声音播出。
然后是做一个声音缓存,用来记录人偶最后几次的发声。当人偶下次发声时,如果随机挑选的结果是缓存里存在的,那就重新随机,直到选出一个缓存中没有的声音出来。这样可以避免短时间内人偶频繁发出相同的声音。
之后就是设定体力以及各种施力方式的伤害值,以及体力的恢复速度。
以上,程序部分算是完成了。
-----------------------------------------------------------
接下来是硬件部分。需要用到很多无线的压力感应器。
一个简单的办法是把传感器固定在人偶的衣服上,这样就可以避免对人偶进行改造。每一个传感器都和一个键位对应,当传感器受到压力时,程序等同于按下了一个按键,并获得一个压力值。根据键位可以判断施力的位置,压力值则可以判断力量的强弱。
这里需要注意的一点,因为很可能多个传感器都会感受到压力。所以为了避免出现大合唱的滑稽场面,需要给按键设置一个优先级,在一个按键生效的时候,无视其他优先级更低的按键。
如此一来,当施力发生时,电脑就会播出声音。但声音从远方的电脑发出会很奇怪,而且很扰民,所以接下来你需要一个无线耳机。声音通过耳机传到你的耳朵,这样刚刚的问题就解决了。
---------------------------------------------------------
进阶扩展。
现在人偶会根据施力发声了,但这还不够好,因为她还无法识别是谁在用什么方式施力。
因此还需要一套传感器,但它不是给人偶,而是放在你的身上,这样一来就可以知道你是用什么部位触碰了人偶的什么部位,并用了多大的力。
---------------------------------------------------------
总结:
这些东西实现起来几乎没有难度,在没有任何帮助的前提下,我已经实现了根据力度不同进行反馈的功能,传感器用的是肢解过的XBOX360手柄的零件。如果有更好的传感器,以上所有设想(进阶扩展部分)都可以实现。
2014年05月16日 10点05分
1
--------------------------------------
概述
基础功能:让人偶对外力作出声音反馈。
进阶功能:识别不同的施力方式,进而作出更细致的声音反馈。
--------------------------------------
首先是程序方面。因为我不是程序员,所以只能用RPGMAKER XP(一种业余的RPG游戏制作工具)做了一个程序,但这样也更简单,基本上人人都能做。
思路:
根据力度的大小决定每一次刺激的伤害值,人偶受伤后根据剩余的HP决定需要发声的大类。比如HP大于70%时是普通的叫喊,30~69%则是哀嚎,29%以下则是虚弱的呻吟等。
然后根据施力的方式决定采用大类中的哪一个分类的声音。比如击打胸部是剧烈吐气的声音,而击打腹部则是另一种。
人偶的HP会随时间缓慢恢复,因此一个被你打到半死的人偶可能过一段时间就会重返健康状态。
实现方式:
用按键来代表施力。比如按下X键是头部,Y键是腹部等……把所有可能出现的情况都用按键进行定义。
接下来是建立声音库。你有多少种施力方式和体力类型,就需要施力方式*体力类型个库,这样就可以保证每一种施力都有合适的声音与之对应。但为了效果,最好每个库里都有5种以上的声音,每次随机在库里选择一个声音播出。
然后是做一个声音缓存,用来记录人偶最后几次的发声。当人偶下次发声时,如果随机挑选的结果是缓存里存在的,那就重新随机,直到选出一个缓存中没有的声音出来。这样可以避免短时间内人偶频繁发出相同的声音。
之后就是设定体力以及各种施力方式的伤害值,以及体力的恢复速度。
以上,程序部分算是完成了。
-----------------------------------------------------------
接下来是硬件部分。需要用到很多无线的压力感应器。
一个简单的办法是把传感器固定在人偶的衣服上,这样就可以避免对人偶进行改造。每一个传感器都和一个键位对应,当传感器受到压力时,程序等同于按下了一个按键,并获得一个压力值。根据键位可以判断施力的位置,压力值则可以判断力量的强弱。
这里需要注意的一点,因为很可能多个传感器都会感受到压力。所以为了避免出现大合唱的滑稽场面,需要给按键设置一个优先级,在一个按键生效的时候,无视其他优先级更低的按键。
如此一来,当施力发生时,电脑就会播出声音。但声音从远方的电脑发出会很奇怪,而且很扰民,所以接下来你需要一个无线耳机。声音通过耳机传到你的耳朵,这样刚刚的问题就解决了。
---------------------------------------------------------
进阶扩展。
现在人偶会根据施力发声了,但这还不够好,因为她还无法识别是谁在用什么方式施力。
因此还需要一套传感器,但它不是给人偶,而是放在你的身上,这样一来就可以知道你是用什么部位触碰了人偶的什么部位,并用了多大的力。
---------------------------------------------------------
总结:
这些东西实现起来几乎没有难度,在没有任何帮助的前提下,我已经实现了根据力度不同进行反馈的功能,传感器用的是肢解过的XBOX360手柄的零件。如果有更好的传感器,以上所有设想(进阶扩展部分)都可以实现。