在上一篇文章中,小编为您详细介绍了关于《游戏UI设计的3条重要原则》相关知识。本篇中小编将再为您讲解标题【玩坏 MV】制作音游的思路过程(2)。
|
相关阅读: 【玩坏 MV】制作音游的思路过程(1) 事件 ID(分页式) 我们想要做的音游经过多次试错,修改方案,最终终于敲定使用 “触发条件:并行处理(获取指定位置的信息)” 的形式进行制作。可喜可贺可喜可贺!让我们来看看现在的画面布置是怎么样的吧。(为了使画面简洁,我把我原本地图上表示区域的指示牌删掉了)
示意图 音符:就是音符(note); 音符驱动器:告诉每一个音符怎么运动,是要快还是慢;是要直直走还是上蹿下跳(左右横跳)。最好是一列音符放一个,(相当是一个小节?),专门只控制这一列的音符(编辑器里也不会写太多,太难找),方便制作者调整。一列音符运动完就换下一个音符驱动器; 音游启动器:玩家走到上面按下 确定键 开始音游。同时换新的事件页并行处理,玩家移动路线等待,以此来阻止玩家在音游中移动影响音游; 音符位置读取器:其实应该叫做音符 ID 读取器,它能时时读取 miss_previous,prefect,miss_after 上的事件 ID,以此来了解当前应该对哪一个音符(事件)进行判断; miss_previous:判定点前一格。如果玩家过早(也就是在这里)按下了互动键,则判定当前的音符失败; prefect:判定点。如果玩家在这里按下互动键,则判定当前的音符成功,加一分; miss_after:判定点后一格。如果玩家过了 prefect(判定点)还没按下互动键(也就是到达了 miss_after),则直接判定当前的音符失败(也就是说,miss_previous 和 prefect 都需要检查玩家是否有按下互动键,但是到了 miss_after 就不用了) (其实我原本打算是读取事件 ID 的任务一起交给 音游启动器,但是发现如果 音游启动器 一边担负着限制玩家移动的任务,一边又要读取事件 ID,会导致游戏比较严重的掉帧,所以最后将 音符位置读取器 单独分了出来)
第一个音符是单击音,后四个是长按音。在音符移动过程中,可以随意调整速度以及上下位置来提高音游难度。其中红色为 “未判定”,绿色为 “成功”,蓝色为 “失败”。 之后我又发现,无论在 音游启动器 里让玩家等待多少帧,玩家都有一定几率可以移动。所以最后我干脆取消了 “让玩家等待来限制玩家移动” 的方式,改为 “音游开始的时候玩家四方都出现与玩家相同优先级不可穿透的事件(阻拦器)” 以此来限制玩家移动。
老方案
修改示意图 接下来让我们详细地看看具体是怎么设定的吧。 为了使我的记录更加清晰,我打算从变量和开关开始下手,简化掉其中一些我比较累赘的思考历程。
变量 音游阶段:你需要告诉游戏开始了,然后现在进行到那一个阶段,这个阶段指的不是小到针对每一个音符,而是用来控制 音符驱动器,告诉游戏现在应该开启哪一个 音符驱动器 了。最后游戏结束了,也是通过这个变量来告诉游戏。总之我们的思路就是:将小的细节的东西(音符),交给一个比较大的东西(音符驱动器)来控制,最后我们只要统一管理这个比较大的东西就可以掌控全局了。有一个分级的概念; 音游得分:只要有一个音符判定为成功就加一分,失败则分数不变,最后可以用来看成功了几个音符; miss_previous:判定点前一格上是否有音符(事件),有就读取其事件 ID,没有则为 0; prefect:判定点上是否有音符(事件),有就读取其事件 ID,没有则为 0; miss_after:判定点后一格上是否有音符(事件),有就读取其事件 ID,没有则为 0; combo:当前连击数; MAX combo:最大连击数;
开关 长按失败:音游里有一些连起来的音符需要你整个过程长按互动键,一旦你中间松开了互动键,前面已经成功的音符不会受到影响,但是长按音中当前的音和后续的音都会直接判定为失败; combo:是否连击失败; 校准(一个回合):校准用的音符是否从右到左走完了一个回合。后两个开关会在后续文章详细解释; 开始校准:是否开始校准; 这些变量和开关其实是和我们游戏进程的思路紧密相关的,现在我们来看看我们的游戏进程思路:
游戏进程示意图
了解完游戏进程(至少有个设计思路),我们就可以对我们的事件进行编写了。 音游启动器 用于启动音游
其实 音游启动器 只有第一个事件页有干事情,后面都在摸鱼。原本打算让它限制玩家移动,可惜它干不了这活…… 注意,最后一页的 出现条件 里的变量 音游阶段 >=2,是因为我测试的时候,只做了(column=)1 列音符,所以最后要表明这个音游结束了就得是变量 音游阶段 = column+1(==2)(音符列数加一) 音符位置读取器 用于读取经过判定点前中后的事件 ID
当一个读取点上的事件多于一个的时候,它只会告诉你 ID 比较大的那个。 最后一页结束的出现条件跟 音游启动器 一样,都使变量 音游阶段 = 音符列数 +1。 阻拦器 它们其实没啥工作的实质性内容,单纯只是为了阻碍玩家的移动,避免影响音游。它们的出现时候的出现条件以及消失时候的出现条件都和 音符位置读取器 一样。 音符驱动器 驱动音符运动
排号,等到变量 音游阶段 到了自己负责的序号的时候,就驱动音符运动;等自己的负责序号过了之后,就暂停工作;它的第一页里的 设置移动路线 部分就是按照你想要的意思移动每一个音符的移动路线。 注意,最好不要在移动路线里的左下角选项那里给 等待完成 打勾,否则后面的音符都得等前面的音符运动完才可以动。但是有一个特例,那就是最后一列的 音符驱动器 控制的最后一个音符,这个音符就必须加上 等待完成,否则音游会在最后一列音符开始运动的时候结束。因为其实 音符驱动器 告知音符怎么运动都是一瞬间的事情,只要前面其他音符没有 等待完成,后面的音符都是可以和前面的音符几乎是同时获得指令运动。音符获得运动指令之后就不需要 音符驱动器 了。 另外,音符驱动器 需要操控音符达到的位置可以参考这个:(这里的是否分页,指的是音符事件内,判定音符是否操作成功的指令是否在同一个事件页内)
驱动所到达的最终位置示意图
为什么不同形式(分页式 / 一页式)的 音符 需要 音符驱动器 驱动到的最后位置不一样呢? 这是因为,事件之前接收的 移动路线,一旦在这个事件更换事件页就会立马失效。在分页式的情况下,它到达 miss_previous 就需要从第一页换到第二个事件页,这时候之前哪怕 音符驱动器 给它下再多的 移动路线 命令都没有用,只要之后再没有后续新的 移动路线 指令,它就会停下来(不只是影响到自身的移动,甚至会影响到后续其他音符的判定)。 而一页式的情况中,它在判定点前中后都不换页,直到到 miss_after 后才换页到最后两页显示成功与否图像,所以 音符驱动器 必须驱动它达到的最后位置就是 miss_after。 当然,你在 音符驱动器 里可以写非常长的 移动路线 甚至是超过所需的内容,只要你到达了我上面所说的两种情况分别所需达到的点就行,只是后面的内容都不会应用。所以这里我说的就是最精简的模式。 如果这部分你单纯看这里的文字看不懂,可以看接下来 音符 部分的具体表现,再来结合这段文字(最好有实际操作测试),可能更能明白这里的理论。 音符 最后出场的就是压轴的 音符,它们分别有 单击音、长按音序列。长按音序列 包括 长按音·伯(开头第一个)、长按音·仲(中间部分)、长按音·季(最后一个)。 强烈建议其他所有事件都建完了,最后再来建 音符,以达到它们的事件 ID 都是连续的目的 另外,建议在一个新的地图把每四种 音符 的模板都设定好了,然后再直接复制进你制作音游的那个地图,可以极大地提高效率。 所以最好的制作方案,就是你一开始就在选择音乐 / 制作音乐的时候就选好所有节拍点(音符),并确定它们的类型。否则因为事件 ID 的连续性,后期要改可能比较麻烦。(但其实这并不是死规定,不一定要完全连续,只是后面的音符的事件 ID 一定要比前面的大就行,连续只是为了容易读以及好看) 单击音
单击音(分页式)的第一页
单击音(分页式)第二页
单击音(分页式)第三页
单击音(分页式)第四页
单击音(分页式)第五页
单击音(分页式)第六页
长按音·伯
长按音·伯(分页式)第一页
长按音·伯(分页式)第二页
长按音·伯(分页式)第三页
长按音·伯(分页式)第四页
长按音·伯(分页式)第五页
长按音·伯(分页式)第六页
长按音·仲
长按音·仲(分页式)第一页
长按音·仲(分页式)第二页
长按音·仲(分页式)第三页
长按音·仲(分页式)第四页
长按音·仲(分页式)第五页
长按音·仲(分页式)第五页 所有失败 / 成功页都很接近,不再赘述。 长按音·季
长按音·季(分页式)第一页
长按音·季(分页式)第二页
长按音·季(分页式)第三页
长按音·季(分页式)第四页
长按音·季(分页式)第五页
长按音·季(分页式)第六页 完成了上述内容,一个既有 单击音 又有 长按音 音游的基础设定就完成了,你就可以依照前面的模板完成一个完整的音游。另外要注意的是,经过反复测试,本方案目前的所有判定点在实际操作中都会往前半格,这并不是什么大的问题,你只要在制作以及绘制 miss_previous、prefect、miss_after 的图块时,将它们往前移动半格就行。
实际判定点所处位置 思考时曾经尝试的老方案 一开始的思考方向是给所有有分歧条件判断开关 长按失败 里都加了关闭开关 长按失败。
老方案 可发现不在关闭开关 长按失败 前面加比较短的等待的话,如果 长按音序列 比较长,后续几个 长按音 都会因为太快关掉开关 长按失败,没能接收到这个开关关闭过的消息,导致它们还是依旧可以继续进行判定,所以我才在前面加了等待一帧。
只要保持着长按,后续的音符会错误地判断为成功 后来我才意识到 长按音·仲 完全不需要关闭开关 长按失败 啊,完全可以交给最为最后一个的 长按音·季 来关闭,所以有了现在的你们刚刚看到的在 spoilerblock 之外的方案。 事件 ID(一页式) 正如前面在 事件 ID(分页式)里所说的一样,一页式和分页式的主要差别在 音符 的事件里,它的判定方法是否有合为一页。 其它不一样的就是,音符驱动器 控制 音符 最远路线的差别:
这一小节是 事件 ID(一页式),就让我们看看如何把所有判定方法合为一页吧。 P.S. 前面说了那么多,图里也有注释,我就不额外在这里打注解了。另外这里只展示 单击音 的第一页,二三页就是常规的空白结算页(失败 / 成功)。因为其他的都和 事件 ID(分页式)的差不多,所以都不再展示。剩余其他的 音符 道理也差不多,根据 事件 ID(分页式)里对应的内容,再结合 单击音(一页式)就可以做出来了。 单击音
单击音(一页式)事件编辑器 未完待续…… 最后一章将介绍 音符消失、Combo、 校准、音游刷新重置所有音符 等内容。 来源:indienova 原文:https://indienova.com/indie-game-development/making-music-game-rmmv-2/ |
编后语:关于《【玩坏 MV】制作音游的思路过程(2)》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《UE4中的主要材料和光线跟踪》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器