---
url: /project/xw/index.md
description: QQ炫舞手游传统曲谱自制制作原理介绍
---
\==本篇文章通过讲解qq炫舞手游传统模式的一些参数，使得传统自制歌曲脱离官方编辑器成为可能=={.tip}

在线试用： [点击在线试用](https://piemoe.com/x5-project/create)

如有问题或建议，欢迎联系 [QQ群:215091959](https://qm.qq.com/q/pKiFc2Ldle)

::: center

## 制作预览

:::

先来随着制作预览一下效果

:::: steps

1. 主页
   ::: window img no-padding
   ![主页](/images/xw/index.webp)
   :::
2. 上传歌曲并编辑
   ::: window img no-padding
   ![编辑](/images/xw/edit.webp)
   :::
3. 按键微调
   ::: window img no-padding
   ![按键微调](/images/xw/key-edit.webp)
   :::
4. 完成制作
   ::: window img no-padding
   ![complete.png](/images/xw/complete.webp)
   :::
   ::::

完成制作，自动生成二维码，总计用时，30s

::: center

## 原理

:::

::: center

### CT自制公式

:::

> \[!NOTE]
> 注：只针对炫舞手游官方编辑器

首先了解一些参数

`ET` ：代表歌曲进入时间 `EnterTime（Adjust）`

以下参数以`300bpm`举例：

节拍：`300bpm`固定一个节拍为 `3200ms` ，设为`X`
关卡小节： ==一个节拍为4个关卡小节== ， ==每个关卡小节 `800ms`== ，设为`Y` ：设为`Z`关卡小节数
全歌时长为公式为：

```
ET + 关卡时间 - 提前显示小节数 
= ET + (关卡小节数 * 节拍时间) - 提前显示小节数
= ET + ( Z * X ) - Y
= ET + ( Z * X ) - Z/4
= 歌曲时长ms
```

因此， `300bpm` 歌曲计算公式为

```
ET + ( Z * 4 * Y ) - 800 = ET + ( Z * 3200 ) - 800 = 歌曲时长ms
```

若已知一首歌曲时长为 `3:12.940` ，则毫秒数为 `192940` ==（ 3 \* 60 \* 1000 + 12940 ）==

套用公式

```
ET + ( Z * 4 * Y ) - 800 = ET + ( Z * 3200 ) - 800 = 192940
```

故 ET 计算方式

```
ET = （ 192940 + 800 ) / 800 
商为Z，即关卡小节数为：242  
余数乘4即ET，为： 0.175 * 4 = 140
因此 ET为140
```

ET调节方式

```
关卡小节数Z = 242 - m
ET = 140 + 800m
即
ET： 140 + 800 * 2 = 1740 
则关卡小节数Z为: 242 - 2 = 240
```

注： 理论上 ，ET为整数较好，所以需要微调ET，但要兼顾歌曲整体时长

::: center

### 最终计算方法

:::

```
关卡小节数 = ( 歌曲时长毫秒数 + Y ) / Y   【整数部分】
关卡小节数 = ( 歌曲时长毫秒数 + Y ) / Z * 4  【整数部分】
ET = （ ( 歌曲时长毫秒数 + Y ) % Y ）【小数部分】* Y   
ET = （ ( 歌曲时长毫秒数 + Y ) % Z * 4 ）【小数部分】* Y
```

由此，`ET` 针对的是全歌曲，变动的是整支歌曲时长，所谓`ET`找`P`值，若歌曲源文件无时长改动，修改ET实际对P点意义不大，只是将歌曲在编辑器中裁剪了一番，可能会降低
`P`的手感，也可能让关卡小节时间卡在了歌曲本身的节拍上，从而增加手感，但会造成一定的问题。

\==综上，制作歌曲只需考虑歌曲时长、ET、关卡小节数即可，必填参数为音乐BPM 、ET(毫秒) 、关卡小节数，其他相同。=={.important}

### 常见速度关卡小节值 Y

::: center
理论值 误差为 `± 1ms`
:::

::: flex center

| bpm | 关卡小节值 Y （ms）  | 节拍值 Z （ms）    |
|-----|---------------|---------------|
| 380 | 631.5789（非整）  | 2526.3758（非整） |
| 360 | 666.6667（非整）  | 2666.6667（非整） |
| 340 | 705.8823（非整）  | 2823.5294（非整） |
| 320 | 750           | 3000          |
| 300 | 800           | 3200          |
| 280 | 857.1429（非整）  | 3428.5714（非整） |
| 260 | 923.0769（非整）  | 3692.3077（非整） |
| 240 | 1000          | 4000          |
| 220 | 1090.9091（非整） | 4363.6364（非整） |
| 200 | 1200          | 4800          |
| 180 | 1333.3333（非整） | 5333.3333（非整） |
| 160 | 1500          | 6000          |

:::

::: center
\==综上，160、180、200、240、300、320歌曲节拍较为稳定。=={.important}
:::

::: center

### 提升建议

:::

从一个有效`beat`到另一个有效`beat`时间为`2Y` ==（2个关卡小节值）== ，无间断为`Y` ==（一个关卡小节值）== ，按键总时长皆为`Y`
\==（一个关卡小节值）== 。

> \[!tip]
> 点击 tab 切换速度

::: tabs

@tab ::line-md:speed-twotone-loop =24px:: 300bpm

一次为`1.6`秒 ，按键时长为`800ms` 左右， 三键单键平均时长为`266ms`左右，五键为`160ms`左右，六键为`133ms`左右，七键为`114ms`左右
，键越多，则留给单键按键时间越少，难度越高。

@tab ::line-md:speed-twotone-loop =24px::320bpm

三键单键平均时长为`250ms`左右，五键为`150ms`左右，六键为`125ms`左右，七键为`107ms`左右

@tab ::line-md:speed-twotone-loop =24px::340bpm

三键单键平均时长为`235ms`左右，五键为`141ms`左右，六键为`117ms`左右，七键为`100ms`左右。

@tab ::line-md:speed-twotone-loop =24px::360bpm

三键单键平均时长为`222ms`左右，五键为`133ms`左右，六键为`111ms`左右，七键为`95ms`左右。

:::

由于键位方向不同，故不存在时间重叠的概念。

实际单键平均时长要小于以上理论值（大神要P的）。

可见，时间递增不多，但难度系数递增。

五六七键差距太大是由于按键时长缩减但键数增加导致的大脑反应和手速难度系数倍增，故五键P多不代表能按到六七键

故， ==短键（5键以下）连P增加分数，五键尽量P，great和cool意义不大，六七键尽量绿一点，拉开分数，但建议摆烂，保存体力。=={.tip}
