cytus自制吧 关注:646贴子:2,855
  • 18回复贴,共1

【技术向】Cytus音符动画详解

只看楼主收藏回复

转自 Cytunity吧:http://tieba.baidu.com/p/4358765261
彩P镇楼

—————— 前言 ——————
今天楼主来解释一下 Cytus音符动画的工作原理,让那些 乱78糟的素材图片 变成精美绝伦的音符动画。


1楼2016-02-18 17:20回复
    ~~继续~~
    HoldNote,需要按住的音符,也就是面条。解剖图~~

    上图中蓝色名字的器官 与 TapNote 大同小异,不赘述。
    —— Body:HoldNote 的主体,HoldNote 可以靠尾巴的朝向分辨性别,所以Body是雌雄同体的。注意,为了体现它无需准时按住的特点,雷亚在设计时 没有让它有 Scale 变化,就连正式出现之前都没有改变 Scale。
    —— Tail:音符的尾巴,表示需要按压的时间。出现时 Alpha 从 0 增长到 1,Scale 从 0 增长到 需要的长度。Tail 在音符被击打后 Scale 不变,Alpha 从 1 降到 0;

    —— HoldingFlower:音符被按住时,Body 处的动画效果。循环播放,循环的方式大概是 0 1 2 3 4 5 4 3 4 5 4 3 .....先顺序播放,然后PingPong循环,帧动画;

    —— HoldFlower:面条按压结束后,Body处的帧动画。注意,这里不是ColorPerfect,而是特有的大黑圈;

    —— Follower:面条尾巴被扫(ri)时,跟着扫描线移动的黑色物体。刚出现时 Scale 瞬间从0增加到1,Y轴位置始终与扫描线相同;

    —— FollowLight:音符被扫时,从上述Follower处发出的亮光。材质、Shader、滤镜与HighLight同为Additive,Tint 颜色为 ( r = 0.433, g = 0.433, b = 0.433, a = 1)。 循环方式为完全Pingpong循环 0 1 2 3 2 1 0 1 2 3....。位置与Follower完全相同, Scale 为 ( x = 2, y = 2.6 );



    4楼2016-02-18 17:21
    回复
      LinkNote && LinkHead,锁链音符 和 锁链头。
      先说明一下Cytunity处理锁链的常识。
      如下图:锁链音符由 head 和多个 note 组成,注意:Head并不是真正意义上的音符,它更像是一个纯粹的动画效果,它本身没有位置、时间等音符该有的信息,而是记录首节点的位置、时间、下一个节点等信息。
      总之:LinkHead 只是特效而已,LinkNote才是真正的音符,第一个Note只是被Head挡住了,它并不是不存在的。

      如下图:LinkNote的Tail属于后面的音符,第一个音符的 Tail 的Scale为 0 。


      5楼2016-02-18 17:21
      回复
        LinkHead,锁链头。
        依旧先解剖。

        —— Body:锁链头的主体,雌雄同体,Scale方案与 TapNote 的 Body 一样(Group模式会随着节奏跳动),
        Rotation(朝向角度)不会变化;
        —— Arrow:锁链头的箭头。箭头会被 NoteBefore 遮挡,方向始终指向下一个 LinkNote。
        锁链滑动过程中,箭头会有微量的闪烁动画(帧动画实现),PingPong循环(0 1 2 3 2 1 0 1 2 3 ...)。
        注意:锁链结束后,箭头有爆炸动画效果(帧动画),不要忽视这个效果。如下图。播放这个爆炸效果时,应同时旋转Arrow的角度,让它一边旋转一边爆炸;

        —— Follower:类似面条的Follower,锁链的Follower的Rotation也会改变,而且刚出现时Scale从0快速增长到1,锁链爆炸时立刻消失;

        —— FollowLight:音符滑动时的亮光,类似面条的Light。位置与Follower相同,属于PingPong循环的帧动画。滤镜 材质 Shader 是 additive,Tint颜色:(r = 0.73, g = 0.73, b = 0.73, a = 1) 。
        注意:锁链爆炸后,亮光也会跟着旋转,Alpha始终不变,一小段时间后突然消失。

        —— Ring:与TapNote的Ring相同,只是LinkHead没有Flower,所以Ring会重叠在最后一个LinkNote的Flower上。


        6楼2016-02-18 17:21
        回复
          LinkNote,锁链的节点。
          先解剖~~

          —— Body:LinkNote的主体,注意这货有个Sprite帧动画 来实现加亮效果(如下图),Scale 永远是 1,Alpha 正常变化;

          —— Tail:LinkNote的尾巴,Scale 根据前一个LinkNote的位置而变化,一端恰好位于Body的中心,另一端恰好位于前一个LinkNote的Body的中心。当 LinkHead 在上面滑动时,Scale(长度)会发生变化,确保 LinkHead 之前不会出现 Tail(如图);


          7楼2016-02-18 17:22
          回复
            四种音符需要考虑的所有器官:


            8楼2016-02-18 17:22
            回复
              本楼将提供 较复杂的动画数据 以方便开发者们二次创作,一切数据均基于楼上的种种说法,有必要复习的请先复习一下。
              ---------- 格式说明 --------
              [ 器官名(比如Body、BlackCircle、Flower) ]
              [ 类型(比如透明度、尺寸 或 图片内容)]
              [ 应用于音符的那个状态(比如 none、Perfect、Holding) ]
              [ 横轴代表的时间类型(比如 LifeTime、PageTime) ]
              ---------- TapNote ---------(本楼都是TapNote)
              【图片下载】请看本楼回复


              9楼2016-02-18 17:22
              收起回复
                ---------- HoldNote ---------
                【图片下载】请看本楼回复


                10楼2016-02-18 17:22
                收起回复
                  ---------- LinkHead && LinkNote---------
                  【图片下载】请看本楼回复
                  ------- LinkHead-------

                  ------- LinkNote-------


                  11楼2016-02-18 17:23
                  收起回复
                    ------- 完 工 -----


                    12楼2016-02-18 17:23
                    回复
                      哇顶顶顶


                      来自Android客户端13楼2016-02-18 21:12
                      回复
                        lz顺便求进展


                        来自Android客户端14楼2016-02-18 21:15
                        收起回复
                          加油!


                          IP属地:德国来自Android客户端15楼2016-02-19 19:40
                          回复