拿弓
当弓在左手模型的碰撞之内,可以按左手柄 Trigger 拿起,直接按右手柄 Trigger 可以凭空取一支箭在手里,右手拿不了弓,左手也拿不了箭。

射箭
箭的射出方向为箭羽到箭头,轨迹为抛物线,力度与弓被拉开的程度成正比。

箭不会穿过任何碰撞,除非是标记过可以被穿过的物体,比如左手模型和弓。其实这个距离和力度的话是会穿过地面的,之所以看着像没穿,是因为在它穿了之后强行让箭定在了表现(图形学第一定律,看起来像真的,那就是真的)

力度太大了,所以可能看不到拖尾效果,但仔细看能看到呈抛物线轨迹在往下落。

得分
射中靶子的话,会有语音播报得了几分,与旁边黑色的数字显示的分数保持一致,上面的大屏幕会有绿色的 X 闪烁,代表你射中的位置,当拿起下一支箭的时候,绿色闪烁的标记会变成白色。
射中靶子之外的地方,语音会播报 “脱靶”,分数会显示为零,在当前赛道射到其他靶子上也是算脱靶。

传送
6 个 赛道,6 个传送点,拿起弓之后按住 Right 箭,就可以召唤出蓝色贝赛尔曲线,并在目的地出现粒子传送效果,松开 Trigger 键就可以传送到目标传送点。

解除附着
当箭搭在弓上时两个其实是一体的,箭的位置也不再跟右手柄的实际位置在一起了,但当右手柄跟箭的位置离得很远时,箭就会接触和弓的绑定关系,重新回到右手柄上去。(那个蓝色的边框是 Pico 自带的安全边界)

细节
比如拿到弓和箭的时候手柄的震动,还有逐渐拉开弓的时候一段一段渐强的震动,这些动图物体体现出来,还有声音等。
后续
因为完全按照现实逻辑射箭比较硬核,所以后面稍微改简单了一点,但是又太简单了,所以又加了检测在射出前 1s 的手柄抖动值,如果抖的很厉害的话会估计附加一个偏移,强行增加难度,具体做法可以看以下文章:
VR 射击馆(一)箭的轨迹、传送
VR 射击馆(二)射箭逻辑、后处理
VR 射击馆(三)抓取物体、拓展编辑器、Debug
网友评论