Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

!header_login!

只需一步,立刻登录

查看: 2471|回复: 24

[教程] 【CBL】[2b] 第三人称控制器

[复制链接]
发表于 2017-1-22 20:13:27 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

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

x
本帖最后由 贰逼 于 2017-1-23 13:34 编辑

第三人称游戏都有一个由引擎控制的第三人称控制器,那么这在Minecraft中能否实现?
只能说达到一半。

        第三人称控制器(Third Person Controller)是角色控制器的一种,较比第一人称控制器可以反映更多信息包括角色的建模/动画/行为,以及更加多样的操作模式。第三人称控制器最近的一个例子就是Minecraft中的F5视角,即第三人称视角。
        当然比起像Minecraft这种可以直接依赖实时演算的第三人称控制器,这篇帖子里所讲的是对于目前Minecraft原版来说依靠命令方块力所能及的控制器。具体来讲,就是没有进行三维旋转的功能。原因很简单,一是无法使用相关函数,二是穷举即使精度为5°的三维旋转也特别消耗资源。
        总体来说,Minecraft原版最大限度可以还原一款2.5D游戏
        所以这篇帖子讨论的第三人称控制器是基于玩家视角不动,但是能通过自身操作操作非关联自身的实体角色(什么叫关联自身其实很明白,就是利用execute指令对玩家的原始坐标相对操作。例如你可以使用/execute @p ~ ~ ~ tp @e[tag=Character] ~ ~-5 ~制作一个最简单的关联自身的控制器)
一个gif展示:(15.7M,耐心加载)


评分

参与人数 24人气 +39 金粒 +439 贡献 +4 收起 理由
卅个屮 + 3 + 50 F**KING COOL
brooke1999 + 2 MCBBS有你更精彩~
鸡蛋Gay_eggg + 2 大触我们做朋友吧!
舞政 + 1 + 3 MCBBS有你更精彩~
深海の守望 + 1 + 10 楼主你太帅了~
Zero_Exact + 3 + 30 + 1 MCBBS有你更精彩~
Iloveme + 1 + 15 我喜欢
_Benson_ + 4 + 50 MCBBS有你更精彩~
nike951847 + 1 + 10 很棒的作品!
zc2202 + 1 很棒的作品!
LBL_CB + 1 很棒的作品!
乙烯_中国 + 2 + 33 + 3 MCBBS有你更精彩~
pca006132 + 2 + 35 差点忘了
囧涮锅 + 20 66666
林扬骐 + 2 + 23 可以的
chyx + 2 + 50 很棒的作品!
雷鸣·翾鹗 + 1 + 20 第三人称游戏指日可待√
FHC红石 + 3 还不错
ruhuasiyu + 1 厉害了
8784 + 1 MCBBS有你更精彩~

查看全部评分

回复

使用道具 举报

头像被屏蔽
发表于 2017-1-22 21:47:54 | 显示全部楼层
本帖最后由 langyo 于 2017-2-8 17:00 编辑

我之前自己在草稿纸上写出的其中一个构想差不多就是这样子的,能够实现在玩家的第一视角下实现第三视角观看模型,并提供实时反馈。以下全部是自己理解+伪修改建议。
1.事件监听
这里你讲的onMouse等等,特别像Java中的监听器,或者是Windows中的API回调窗口消息事件,用途就是将动作部分的代码和玩家按键部分代码架桥,当玩家有动作,就能够触发动作部分代码。
具体的实现,比如WASD和Space,都是基于玩家位置判断的,检测到玩家到了哪个方向,就执行动作部分,然后把玩家位置复位。
如果还需要更多的按键检测,比如鼠标左键/右键Shift/Ctrl,F键。其实stats指令也给了我们很多的途径,虽然基本没什么卵用。
2.摄像机位移
其实就是根据移动事件,先决定被观看实体的位置,然后再计算摄像机(也就是玩家)的位置和方向,穷举大法万岁。
3.防止抖屏
用减速靴子的方法的确很好,不仅能够正常移动,而且还不会由于移动太快导致CBM反应不过来,出现不断抖着屏幕被TP来TP去的现象。类似的方法,减速状态效果,甚至是在地上放水/岩浆/灵魂沙/冰/蓝冰作为缓速带都是好办法。
4.优化玩家体验
这里我还可以补充一点点东西。CB对角度有穷举的限制,由于角度分辨率导致的性能影响也是与玩家主机配置成反比的。所以,我们可以加入设置角度分辨率,以适应不同的等级配置。低配机就用10°会比较流畅,像乙烯那种配置的用3°吧…这种东西还可以加入进地图GUI的,比如用地图+鼠标事件,可以自如调整各种设置,只要你把GUI的各个玩家视角角度都算好就一切正常。(怎么算?极坐标转换。)
5.环境音效
这个可能已经超出本贴范围了,但既然是要在地图里实现五毛效果,我们就能做绝点,把它做成两元效果。好的小游戏地图,它除了图像上的精美,音乐做到身临其境也是必须得,所以就扯到了音效。
首先是怎么加入额外音乐
然后,注意了,有时候角色的音效是不仅仅光播放就可以的。你不仅要学会开车,你还要学会刹车,否则遇到玩家突然按暂停停不下来就尴尬了。
最后是对于环境音效的配置。我们可以依照角度穷举大法,如法炮制一堆的盔甲架围在玩家附近,角度密度不用太严格,因为就算隔个30°没多少人能听出来明显的声音位置变化。然后,我们必须把控制角色的位置计算并映射到这些盔甲架上,当移动到哪里时就可以粗略变换一下,把玩家为中心求得控制角色的极坐标的角度弄来,取个范围值并让负责对应范围的盔甲架执行playsound即可。
stopplaysound可以沿用事件触发的方法,在玩家点开GUI时就触发控制事件,把粒子效果停了、把声音关了、把状态效果重置了、刷新区块等等……

其实,当你的主机性能足够好时,你可以带的起3D而不是2.5D,只不过这种地图得看情况应用了。我觉得,服务器体验小游戏是最好的选择,一群玩家都以这种方式游戏,互相再控制着自己的小人,甚至LOL开黑,感觉很酷啊。

大概就是这样,没想到我居然写了有半小时这样。

评分

参与人数 3人气 +4 金粒 +50 收起 理由
姜潮2小狗 + 2 + 35 这波无敌
林扬骐 + 1 + 15 也可以的吧
brooke1999 + 1 我好想看到了我的身影233

查看全部评分

回复

使用道具 举报

发表于 2017-1-22 22:12:58 | 显示全部楼层
灵感来自A day to remember吧,其实我也去看过,然后模仿了一套控制系统来。
回复

使用道具 举报

发表于 2017-1-23 08:30:25 | 显示全部楼层
牛牛牛,虽然我不用
回复

使用道具 举报

 楼主| 发表于 2017-1-23 13:19:44 | 显示全部楼层
langyo 发表于 2017-1-22 21:47
我之前自己在草稿纸上写出的其中一个构想差不多就是这样子的,能够实现在玩家的第一视角下实现第三视角观看 ...

打谁脸

评分

参与人数 1人气 +1 收起 理由
langyo + 1 打我,如果你精华

查看全部评分

回复

使用道具 举报

头像被屏蔽
发表于 2017-1-23 15:53:37 | 显示全部楼层
我这是故意说给某人听的,他认为你这个能精
以及,你删了我也能看见,论坛不提倡口吐脏字

评分

参与人数 2人气 +2 收起 理由
龙腾猫跃 + 1 啪啪啪
brooke1999 + 1 打脸了

查看全部评分

回复

使用道具 举报

发表于 2017-1-23 17:27:58 | 显示全部楼层
本帖最后由 林扬骐 于 2017-1-23 17:49 编辑

(看到第二节的回复):其实潜行键1.9就有个判据是检测潜行总时间的了嗯(看到第三节的回复):位置和视角两段tp可以合为一段
回复

使用道具 举报

 楼主| 发表于 2017-1-23 17:37:05 | 显示全部楼层
langyo 发表于 2017-1-23 15:53
我这是故意说给某人听的,他认为你这个能精
以及,你删了我也能看见,论坛不提倡口吐脏字
...

诚信撕逼

评分

参与人数 2人气 +1 金粒 +1 收起 理由
langyo + 1 撕啥撕,都快过年了还扯
林扬骐 + 1 喂啊,和谐啊

查看全部评分

回复

使用道具 举报

发表于 2017-1-23 17:51:24 | 显示全部楼层
优化到倒是挺有意思的
其他还是可以想到的
回复

使用道具 举报

发表于 2017-1-23 18:13:39 来自手机 | 显示全部楼层
然而 现在有潜行时间这个判据了
不用在使用那个黑科技了



按e打开物品栏可以被打开物品栏次数这个成就检测 然后放一个地狱门迅速关掉gui

评分

参与人数 1人气 +1 收起 理由
林扬骐 + 1 可以

查看全部评分

回复

使用道具 举报

头像被屏蔽
发表于 2017-1-23 18:48:26 | 显示全部楼层
chyx 发表于 2017-1-23 18:13
然而 现在有潜行时间这个判据了
不用在使用那个黑科技了

有个小问题,放地狱门之后,玩家是否会立即被传送进地狱?如果不是,需要在多长时间内把地狱门消除,才能保证不传送?

评分

参与人数 1人气 +2 收起 理由
chyx + 2 创造才瞬间传送呢 且应让时间尽量短 毕竟有.

查看全部评分

回复

使用道具 举报

发表于 2017-1-23 23:52:54 | 显示全部楼层
以前看过一个吃豆人的也是用的这种方法,不过视角还是一抖一抖的,减速优化这个挺不错的。
再来我之前也有个第三人称的脑洞,不过方法用的是直接teleport,控制的人物跟随玩家移动,然后玩家是在船上控制方向的,这样可以解决视角固定不动的问题但相应的很多按键监听不到,以及三维旋转依旧不能实现,不知道这个脑洞对改进有没有帮助w
顺便再唠叨一句,渲染距离不够那个问题大概可以通过检测人物离玩家距离,过远了直接把玩家丢过去解决√
回复

使用道具 举报

发表于 2017-1-26 18:44:11 | 显示全部楼层
用积分榜检测跳会不会更快
回复

使用道具 举报

头像被屏蔽
发表于 2017-1-29 12:02:01 | 显示全部楼层
那个在动图里的图标亮了。
回复

使用道具 举报

头像被屏蔽
发表于 2017-1-29 15:24:13 | 显示全部楼层
本帖最后由 langyo 于 2017-1-29 19:01 编辑

啊,我的脸好疼啊
我以反讽的方式成功让乙烯给了你精华

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 手机版本

GMT+8, 2017-7-21 20:43 , Processed in 0.218767 second(s), 10 queries , Memcache On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。

© 2010-2017 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

快速回复 返回顶部 返回列表