欢迎光临散文网 会员登陆 & 注册

【Re:PhiEdit / RPE】 曲线轨迹教程 ·【四】父线

2023-08-31 13:30 作者:Cyb_IF0x508cca  | 我要投稿


这里就用到了父线!

这一篇教程,我愿称之为RPE群友最喜欢的一集。

父线的出现给谱师们提供了极大的便利,其可以极大幅度减少谱师的工作量,而且操作简便易上手。

本篇教程将较为全面地介绍父线,也就是说,这篇教程的内容将不局限于曲线轨迹。

让我们开始吧!

【父线功能与其原理】

父线功能的位置其实是比较隐蔽的,如下图,点击“...”进入扩展菜单。

再点一下就可以回到主菜单了
这个就是父线功能了

如图,在这里填入一个数 a ,表示这根线以 a 号线为父线。不要填超界了哦!

父线的本质是换系,也就是让子线的坐标原点屏幕正中心的 (0,0) 变为父线的判定线锚点,同时让子线的 x、y 轴变为父线本身与垂直于父线且经过父线锚点的直线。父线的作用仅对 movex 和 movey 生效不对 rotate 起作用,所以写切线的角度时仍然需要用到生成曲线轨迹这一功能。(逃不过上一篇滴!)

以 -30 度扫线特效为例:

10 11 12 13 均以 9 为父线

9号线的位置信息:movex 0 | movey 0 | rotate -30.0

以 10 为例,可以看到绑定父线后其不需要修改 movex 事件,省去了大多数计算过程

父线的操作在这里可以形象地理解为:让子线的坐标轴绕原点(父线锚点位于初始坐标系的原点上,因此这里说谁都行)逆时针旋转了 30 度,如下面的两张图。

未绑定父线的判定线使用的坐标系
以 9 为父线的判定线使用的坐标系

所以,子线在制谱器中的定位方式就由自己的 movex 与 movey,变成了父线的 movex、movey(决定子线使用的坐标系(在这里我们称为新坐标系原点关于初始坐标系的位置)rotate(决定新坐标系x、y轴的朝向),和子线的 movey(子线到新坐标系原点的距离为什么没有子线的 movex 呢?马上我就来解释!)

注意,父线是永久绑定的行为,你不能希望它在谱面的前半段绑定,后半段又将其解除。你只能使其在全谱范围内绑定或不绑定。如果你的表演线不够用了,那就新建吧!

【父线的实际用途】

最直接的用途有两个,第一个非沿初始坐标轴方向的扫线已经在上面提到过了,而第二个就是用来顶替曲线轨迹,更加快捷简便地生成圆和螺旋线一类的轨迹。

例如,我们现在需要一个以 (0,-280) 为圆心,半径为 600 的一段圆弧,效果如下图。(采用生成曲线轨迹功能实现,使用的是 RPE 1.2.1,因此没有角度方程一栏)

X:600*cos(2/3*Pi*$t$+Pi/6)    Y:600*sin(2/3*Pi*$t$+Pi/6)-280

可以看到,若我们使用生成曲线轨迹功能,我们需要写出两个较为繁琐的参数方程,且如果我们需要大量使用这类特效,偏不巧每次的方程还不一样,那么使用生成曲线轨迹会相当麻烦。但是,现在我们可以使用父线功能来实现一样的效果。

操作如下:

一、将该判定线(14)绑定一条父线,此处以 22 为父线。

二、初始化 14 的 movey 为 600,alpha 为 225;22 的 movex 为 0,movey 为 -280。

三、在 22 在 242:0/1 到 244:0/1 期间执行一个线性变化(缓动类型为 1)的 rotate 事件,角度变化为 -30 到 30。如果你需要让 14 沿轨迹切线方向运动,那么就让 14 也在 242:0/1 到 244:0/1 期间执行一个线性变化(缓动类型为 1)的 rotate 事件,角度变化为 -30 到 30。

效果如图:

是不是简单多了?

螺旋线的实现类似。例如,我们现在需要一个以 (0,-280) 为中心,初始半径为 600 、以 out quad 缓动缩小至 200 的螺旋线,效果如下图,同样采用生成曲线轨迹功能生成。

X:600*(1-(2/3*$t$))*cos(2/3*Pi*(1-$t$)+Pi/6)    Y:600*(1-(2/3*$t$))*sin(2/3*Pi*$t$+Pi/6)-280

这方程看着就头疼!但是现在我们有父线了!

一、将该判定线(14)绑定一条父线,此处以 22 为父线。

二、初始化 14 的 movey 为 600,alpha 为 225;22 的 movex 为 0,movey 为 -280。

三、让 22 在 242:0/1 到 244:0/1 期间执行一个线性变化(缓动类型为 1)的 rotate 事件,角度变化为 -30 到 90。让 14 在 242:0/1 到 244:0/1 期间执行一个线性变化(缓动类型为 1)的 movey 事件,值的变化为 600 到 200。

如果你需要让 14 沿轨迹切线方向运动,那么就让 14 也在 242:0/1 到 244:0/1 期间执行一个线性变化(缓动类型为 1)的 rotate 事件,角度变化为 -30 到 120。

此处曲线轨迹仅用作展示预览轨迹,实际仍然使用的是父线!

由于叠加运动的存在,螺旋线的切线需要计算,并不是按圆轨迹的切线写的。上述方法中描述的切线写法仅为近似结果。计算方法参见上一篇教程!

最后我来解释一下子线 movex 不起决定性作用的原因。

其实只是因为在二维平面内,描述平面上的一个点有两种方法,第一种是我们熟知的笛卡尔坐标系(直角坐标系和斜坐标系的统称,更常用的是平面直角坐标系),另一种则是相对陌生的极坐标系。笛卡尔坐标系采用 (x,y) 的方式描述一个点相对原点的位置,其中 x 与 y 均描述的是某点与原点沿轴的距离关系,这样可以确保任意不重合的点具有不同的坐标,也即每个点都有唯一确定的坐标;而极坐标系采用 (ρ,θ) 的方式描述一个点相对原点的位置,其中 ρ 是描述某点到原点的欧式距离,θ 则描述的是某点与 +x 轴的夹角大小。这样同样可以确保任意不重合的点具有不同的坐标,即每个点也都有唯一确定的坐标。常规写法下我们使用的是直角坐标系,而使用父线则更像极坐标系的写法。由于极坐标系只需要一个参量表示欧式距离,movey 就可以做到这一点,即使是在原基础上使用了子线 movex,其效果也可以被只使用父线 movex/y 和 rotate 与子线 movey 和 rotate 顶替,而且表达一般还更加简洁

这就是我们只要子线 movey 的原因啦!

说了这么多,感受到父线的便捷了吗?快去试试吧!


本教程中的动图与图片均为我使用 Re:PhiEdit 制作。

【Re:PhiEdit / RPE】 曲线轨迹教程 ·【四】父线的评论 (共 条)

分享到微博请遵守国家法律