开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[闲聊] 我睡得好饱啊

 发表于 2026-5-21 06:58:32 来自手机|显示全部楼层|阅读模式 IP:0

今天是 2026 年 5 月 21 日。写下这段文字的时间是早上 6:32。昨天我只睡了 7 个半小时,其实每天差不多都这点时间睡觉,但是不一样的是,今天早上起来,我一点困倦的感觉都没有。这被我称为“饱和睡眠”。

这种饱和睡眠的发生概率很小,我只遇到过三四次。有时候即使只睡 7 个小时,第二天早上起来我还是精神饱满;而有时就算睡了 10 小时,第二天我还是处于混沌与清醒的交界处,无法自拔。


前天上学的时候,我突然冒出来一个关于相机动画的绝妙转场主意。我现在想了想,可能是来源于元素动画的一期幕后杂谈式的节目,那里面不仅有卖营火的烟的村民,还有可以把草地看成水池跳进去的村民。我受到了后者的启发。

如果我们让玩家的相机“跳进地面”,然后瞬间让它在别处出来,那么效果应该会不错。为了增加“跳跃感”,我决定让相机的滚转轴(可以让画面左右倾斜,或者上下颠倒的轴)在摔进地面的同时倾斜 90 度。这样,就好像相机意外摔进了地里,而瞬间从其他地方被反弹回来。

他们很久之前提供的 camera.playAnimation() API 正好可以做到我想要的。它是目前唯一一个接受 Z 轴参数的 API,可以让相机倾斜 90 度。它还支持猫条样条(Catmull-Rom Spline),也支持缓动函数的缓动,做出来效果不会很差。

于是说干就干。流程很简单,创建两个样条,一个是相机摔进地面的,另一个是相机弹回空中的。我起初创建了一个猫条样条,但是后来发现它至少需要 3 个控制点,对于我们只有两个控制点的情形来说,这要求还是太高了。于是我转到了线性样条(Linear Spline),它只需要 2 个控制点。

……真的只需要 2 个吗?

很遗憾,由于一些神秘的原因,线性样条实际上需要 3 个控制点,而猫条样条需要 4 个。我只好取第一个控制点,给它一个非常微小的偏移,才能达到控制点的数量要求。而且如果不给它偏移,如果存在两个相邻且相同的控制点,那么根据我的经验,应该就无法创建样条,也无法播放相机动画了,不知道为什么。

创建完样条,接下来就是配置相机的运行情况。有两方面,一方面管理相机在样条上运动的进度条,另一方面管理相机的旋转。两个关键帧,时间相差必须大于 0.05 秒,我们知道那是 1 tick 的时长。一开始,我想当然地以为可以等于,但是就算等于 0.05 秒也不行,必须大于。我把它设置成 0.051 秒,反而可以了。

最后还有最难的一关,无论怎么播放相机动画,相机就是不动!我研究了半天,传参一点问题也没有,调试了好久都没什么头绪。于是我打开了之前做的相机缓动动画的代码,最后发现,应用相机动画之前,要先将相机设为 minecraft:free

最后很简单了,调整一下代码的时序,两个样条动画之间留出 1 tick 缓冲时间,这个效果很快做完了。



苦力怕论坛,感谢有您~
 发表于 2026-5-21 17:28:35|显示全部楼层 IP:重庆
不错,又占了一个沙发!
2#2026-5-21 17:28:35回复收起回复
苦力怕论坛,感谢有您~
回复支持

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

| 由 木韩网络 提供支持 | GMT+8, 2026-6-24 11:09

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4