[闲聊] 尝试用Minecraft还原osu谱面

楼主: HScarlet (HScarlet)   2022-04-30 17:02:38
大家好,由于朋友最近常常传给我他玩麦块的截图
让我也跟着打开了几个月没碰的麦块,趁这次机会再试一次用麦块还原osu的谱面XD
大致的原理(详细的放在下方):
分析osu谱面的各项资讯,然后在麦块中用计分板控制时间将粒子呈现出来
PS. 因为大量的粒子造成的游戏卡顿,有些画面无法完全与曲谱对齐
影片连结:
https://www.youtube.com/watch?v=opGX9EbRk18
游戏版本:Minecraft 1.12.2
模组:Replay Mod (录影)、 Color Block (修改粒子参数)
光影:BSL_v7.1
下面说明一下制作的过程:
1. 模组、光影的部分:
Replay Mod:
可以将游戏内的画面进行回放,调整各种视角、路径,再将画面输出成影片。录制Replay
的时候也不需要开启光影及材质包,输出影片之前再装上即可,这样可以大幅减少直接用
软件录制造成的卡顿,也可以录制第三人称的视角。有不少麦块的缩时摄影都是透过类似
的模组来录制的。
Color Block:
这个模组可以修改粒子的颜色(RGBA)、亮度、寿命(存在时间)、速度等等,制作起来会比
原版麦块内的particle指令有更大的操作空间。
BSL_v7.1:
大部分光影默认光的颜色会稍微偏黄,BSL可以在游戏内直接调整光线的RGB数值,调整为
白光后才不会影响Color Block呈现的粒子颜色。
2.
麦块外的准备(需要程式来分析、计算相关数据):
分析osu游戏内的三个档案,.osu .osb .rep,并将相对应的时间与物件对上,后续会需
要用这些数据来把粒子穷举到麦块内。
osu档案:
记录著谱面的基本资讯,例如:谱面物件的座标、时间点、种类等。
由于谱面内定义一条直线、曲线只会用到2个~数个点来记录。
因此必须先计算出这些所组成的直线、曲线,再向外计算出轮廓。
最后把计算出的座标转换成粒子指令后写入mcfunction档案内备用。
下面举了几个例子(有些是以前做的):
https://i.imgur.com/BujlqiO.png
https://i.imgur.com/XPpT45P.png
https://i.imgur.com/TSrPkM4.png
https://i.imgur.com/2V0fWxr.png
osb档案:
用于osu游戏内的storyboard,也就是上面影片中跑来跑去的歌词。
osb档案内会定义每一张歌词图片的移动、透明度、缩放大小、旋转角度随时间的变化。
https://i.imgur.com/YVlcPLc.png
利用歌词的图片配合osb提供的参数就能计算出个时间点的粒子位置。
只要时间差够小,回放起来就好像会动一样了。
由于每一次更新字幕位置都要在麦块内召唤上千至上万个粒子,再加上更新时间短。
这也是造成卡顿的主要元凶XD
https://i.imgur.com/Giic4pD.gif
rep档案:
纪录玩家游玩该谱面在各时间点的光标位置、键盘的操作以及是否长按等。
影片中的黄色光标轨迹、右方按键显示的资讯就是从这里得到。
其他:
游戏内的combo、分数计算,公式在官方wiki有提到,我是用excel算出各时间点的分数。
麦块内只要在对应时间召唤出对应的数字就好。
https://i.imgur.com/fgaGBQJ.png
3.麦块内的制作:
麦块内的时间单位最小为一个游戏刻(0.05秒),这样的时间精度不足以还原音游的谱面。
所以制作的时候先放慢了5倍,成品录制完成后才加速回来。
上方影片的前18秒就是实际在麦块内运行的速度。
这里需要做的就是将上一步准备好的数据转换成粒子指令存到mcfunction内,再利用计分
板来控制这些function执行的时间。
预览检查的时候如果发现错误,就回到数据分析那一步检查是不是有参数搞错了,有时因
为一个座标打错找一小时是很容易的orz,确认无误后就可以编辑replay输出成品了。
4.后制:
直接丢到剪辑软件加速500% (X)
因为大量粒子造成的游戏卡顿,有些片段的1个游戏刻会卡到超过真实的0.05秒。
所以这些地方需要在后制的时候手动调整加速的倍率来对应到真实的时间轴。
这也是为什么影片中有些地方看起来对的不是很准的原因。
之后可能要靠减少粒子或者再进一步放慢制作倍率来减少卡顿(好啦 下次一定QQ)
心得:
这是我第三次尝试在麦块内还原osu的谱面,前两次制作的时候也遇到了不少困难。
第一次制作的时候,光理解如何分析谱面、计算数据就占去了大半的时间。
那时候光标跟物件是一起出现的,被观众说是制作谱面的光标QQ,后来的制作有修正。
第二次制作的时候,新增了背景的歌词字幕,然后把部分的数据计算给程式化了。
当时的难点在于如何减少大量粒子造成的卡顿,前后大概花了一个多月。
这次制作就顺利多了,大概花一星期完工o(^▽^)o
之后有空的话也有想研究如何还原maimai,不过音乐好像会吃版权砲
不过要做也要等毕业后看有没有空了(X)
PS. 感谢大家耐心看到这里, 第一次在西洽发文, 小发一下
今天23:00以前 推或箭头的 税前30p抽20个
作者: EdgeFlame (微积分炎ψ(._. )>)   2022-04-30 17:03:00
作者: NPttnoob (难道阿扁臭了吗)   2022-04-30 17:03:00
作者: et310   2022-04-30 17:04:00
跟我玩的麦块还有osu怎么不太一样...
作者: s12108478 (anthonysu)   2022-04-30 17:07:00
作者: doramon888 (贝尔汪)   2022-04-30 17:07:00
推倒!
作者: webberfun (烧掉灵魂的人)   2022-04-30 17:08:00
靠 好猛 我的麦块只有豆腐屋
作者: bg2305z (沛宝)   2022-04-30 17:15:00
!?????
作者: chinnez (棱靘)   2022-04-30 17:18:00
完全看不出麦块的样子了 ,弄成这样有意义吗
作者: sdtgfsrt (很会)   2022-04-30 17:19:00
作者: jelly22 (果冻水母鱼)   2022-04-30 17:20:00
推 麦块是自由的 意义是自己决定的
作者: inte629l   2022-04-30 17:35:00
推 也太猛XD
作者: Taichun318 (淡蓝色的双鱼)   2022-04-30 17:38:00
作者: Davinais (水灵流喵)   2022-04-30 17:45:00
推,原来是用粒子效果来重现 replay,不过比较想看到之前麦块版 deemo 一样是可以玩的
作者: ericayou (vorka era)   2022-04-30 17:46:00
...收起tnt大砲
作者: stradic15728   2022-04-30 17:48:00
作者: jeremy7986 (影子-shadow★)   2022-04-30 17:51:00
麦块!?!?
作者: twttntrg (小林南桃twttntrg)   2022-04-30 17:56:00
推 好强
作者: greattower (一剑定江湖)   2022-04-30 17:56:00
爱恶,太鬼了吧
作者: zxcasd848 (墨竹)   2022-04-30 18:39:00
东方!呜 不过有点太闪了眼睛有点累
作者: d92100 (OK)   2022-04-30 18:42:00
太强了吧
作者: zxcasd848 (墨竹)   2022-04-30 18:43:00
翻了一下频道还有红石音乐 太赞了吧
作者: sake790620 (Aya)   2022-04-30 18:46:00
你是鬼吧
作者: joe61008 (筋肉盖饭)   2022-04-30 18:50:00
好猛
作者: GaoLinHua   2022-04-30 19:05:00
麦块?

Links booklink

Contact Us: admin [ a t ] ucptt.com