09 轨道移动可大有学问

介绍“隐藏轨道”和“移动轨道”两个功能

轨道的显示与隐藏

轨道在关卡进行的过程中是可以随时调整其显示和隐藏状态的,这个功能可在紫色版块的隐藏轨道中找到。

打开后有三个设置项:

轨道:要显示/隐藏的是哪条轨道。注意一次只能选择一个,所以如果需要大批量地显示和隐藏只能一点点加入事件了。

动作:四个选项(显示/隐藏/仅显示角色/仅显示轨道),显示和隐藏比较好理解;仅显示角色的意思是没有中间的横线和右边的心脏;仅显示轨道的意思是没有左边的人物图。

如果你想要不显示心脏,最简单的办法是使用移动轨道事件将心脏移到屏幕外。如果想要隐藏所有轨道的心脏,也可以通过调用自定义方法 invisibleHeart = true 来实现,参考第28节

过渡方式:顺滑(有烟雾特效);即刻(瞬间显示/隐藏);全动画(仅限“动作”中选择“显示”,有完整的出场及轨道延伸动画)。

轨道的移动

想要让轨道移动位置,变大变小,以及旋转,都要依靠紫色的版块中的移动轨道事件:

里面可以设置的项目很多,是这样的:

位置,大小,角度,轴点这四个选项都可以按下这些字所在的位置来激活和关闭。关闭则表示不产生变化。

轨道:选择需要操作的轨道。

目标:可以选择移动整个轨道;移动角色与轨道的相对位置;移动心脏与轨道的相对位置。

自定义位置:选择关闭时无需输入坐标,游戏会为房间内所有非自定义位置的轨道平均分配位置。所有轨道默认均处于自定义位置关闭的状态。

位置:将轨道移动到填写的位置,默认参考的是轨道人物的中心点坐标,x为横坐标,y为纵坐标(左下角坐标:0%, 0%;右上角坐标:100%, 100%),左侧的红十字准星选择后可直接点击视窗选择位置。点击右方的%按钮可以改为输入像素值(左下角坐标:0, 0;右上角坐标:352, 198)。如果填写的值小于0%或者大于100%轨道会移动到屏幕之外,但是是可行的。

大小:轨道的大小,分为x(轨道宽度,即横向)和y(轨道高度,即纵向)两个变量,单位必须为百分比(%)而不能是像素,这点需要注意(初始大小为x: 100%, y: 100%)。注意,这两个值都是可以填写负数的,例如x: -100%即为水平镜像翻转,y: -100%即为垂直镜像翻转。

角度:即旋转的角度(一周360°),正数为顺时针转动,负数为逆时针转动。计算规则为与(初始位置)的夹角,而非与当前位置的夹角。打个比方第一次旋转了90°,第二次还想再旋转90°的话就应该填写180°,第二次想旋转回原始位置的话就应该填写

轴点:有关轴点的详细理解见下文。

动画时长:执行动画的时长,单位为节拍。如果此处填写0则是瞬间完成移动。填写负数则视为0

缓速:动画的速度变化,可自行尝试。这东西在很多需要持续一段时间的特效里都会存在,里面会有很多模式,只要把握以下原则就能快速明白了:In代表由慢至快,Out代表由快至慢,InOut代表由慢至快再变慢。后面不同的形式也就是快慢速的细微差距,可以根据自己的需要慢慢尝试。

如果你想直观地看看各种移动方式的速度区别,可以看看这里

轴点

轴点影响的是轨道位置的判断和旋转的方式,仅有一个变量,0%为轨道的左端角色的中心位置,100%为轨道的右端心脏的中心位置;默认不开启则为轨道左侧角色的正中心。

轴点对于轨道位置基准的影响:你在位置中填写的坐标即为轴点将要移动至的坐标。如果轴点为默认值,则轨道位置按轨道人物的正中心计算。如果轴点设置为0%,则填写的坐标为角色的中心位置将要移动至的坐标;如果轴点设置为100%,则填写的坐标为心脏的中心位置将要移动至的坐标。

由此观之,即使轨道位置坐标不变化,但轴点改变了的话,轨道在画面中的实际位置还是会变化。

轴点对于轨道大小的影响:没有。

轴点对于轨道旋转效果的影响:轨道旋转时的旋转中心即为轴点的位置。如果轴点为默认值,则绕轨道角色的中心位置旋转。如果轴点设置为0%,则绕轨道角色的中心位置旋转;如果轴点设置为100%,则绕轨道心脏的中心位置旋转。

当轨道已被旋转后就不要轻易改变轴点,改变轴点后先前的旋转效果都会跟着被牵连,这时运动就会变成异常复杂。例如将轴点设置为0%并旋转90°,轨道就会绕角色顺时针旋转90度,然后再把轴点改为100%,轨道就会变化成绕心脏顺时针旋转90度的样子。

既然后续轴点的改变能影响到先前的旋转和缩放的参考位置,这个时候就需要额外添加一个轨道移动来做补偿,以消除改变轴点之后轨道产生的移动,具体的补偿方式需要你在实际应用中慢慢琢磨。如果你能试着复原下面这个四方运动,那相信你已经完全理解轴点的概念了。建议先自己在编辑器里捣鼓一会,实在不会可以点击下方箭头展开轨道移动内容。

对应移动轨道内容
    1小节8拍    移动轨道{
        位置:(100px,30px);
        大小:(50%,50%);
        时长:0节拍;}
    2小节1拍    移动轨道{
        角度:90°;
        时长:1节拍;
        缓速:Linear;}
    2小节2拍    移动轨道{
        角度:180°;
        时长:1节拍;
        缓速:Linear;}
    2小节2拍    移动轨道{
        位置:(100px,170px);
        轴点:100%
        时长:0节拍;}
    2小节3拍    移动轨道{
        角度:270°;
        时长:1节拍;
        缓速:Linear;}
    2小节3拍    移动轨道{
        位置:(241px,170px);
        轴点:0%
        时长:0节拍;}
    2小节4拍    移动轨道{
        角度:360°;
        时长:1节拍;
        缓速:Linear;}
    2小节4拍    移动轨道{
        位置:(241px,30px);
        轴点:100%
        时长:0节拍;}
    
轴点不断地在吾夜犹明和心脏之间交换

移动轨道的技巧

这一版块我们介绍一个轨道移动的组合方式,不用把这几个例子作为教科书来看待,这只是为了引导每一个作者开拓自己的脑洞。轨道移动的方式是多种多样的。

1、画弧线:x和y坐标可以单独设置,如果只想移动x轴,那么可以把y轴空着不填,这个时候再添加一个只移动y轴而把x轴空着不填的移动,它们之间就是互相独立的,允许有不同的时长和缓速方式。

9小节1节拍    移动轨道{
    位置:(--,55%);
    时长:0.5节拍;
    缓速:OutSine;}
9小节1.5节拍  移动轨道{
    位置:(--,50%);
    时长:0.5节拍;
    缓速:InSine;}
9小节1节拍    移动轨道{
    位置:(15%,--);
    时长:1节拍;
    缓速:Linear;}
%% 希望你们能看得懂这种伪代码-_-!!

这套动作的特点在于y轴上OutSineInSine的交替,配合线性的x轴就形成了正弦曲线轨迹。

如果删掉x轴移动,那么就会变成原地弹跳。

如果缩短时长,那么跳跃就会变得更加动感,可以从按下空格的时间点开始设置一套这样的移动,就变成随着按拍小跳一下。3-1的末尾就出现了这样的小跳。

如果延长时长,那么跳跃就会变得更加顺滑,像是2-3N博美犬一样随着节奏上下舞动。

2、横向翻转:把x坐标设置为-100%轨道就横向翻转过来了,这样的设置其实总的来说会给读谱增加一些难度,尤其是正反轨道同时存在的情况下。因为在玩顺了官方谱的情况下我们实际上已经形成一些惯性思维了,从左到右的心跳能够更快地识别,但是从右到左会相对来说慢一些。

3、多轨道:像画画奖励关那样,有时会需要一个角色多条轨道,甚至一个角色既有二拍子又有七拍子,这是怎么做到的呢?

其实原理也不复杂,一条轨道正常显示,另一条轨道在隐藏角色中选择“仅显示轨道”或是设置轨道角色时选择×;然后把两个轨道的坐标设置得相同即可。如果想要更为动感,可加入旋转等动画以增添风味。

5、移动轨道到其他房间:当移动轨道的距离超过852.2727%或者是3000px之后,轨道就会被强制移动到相邻的房间去。这种方法可以让轨道超出每个房间最多四条的限制,但是有小概率发生一些问题,非必要情况下最好不要做这种骚操作。

6、移动角色和心脏:角色和心脏的移动是以他们在轨道中的位置为原点来移动的,比如填写x: 0, y: 20px则角色或者心脏向上移动20个像素。你可以使用这个功能把整个轨道挪到屏幕外面去,再以此为原点把心脏挪回来,就可以做到在屏幕内只显示心脏。

演示关卡

版面已经占的有些多了,更多的轨道移动脑洞我们留在演示关卡中间。

编辑器提示 凹兔 凹兔 凹兔