Skip to content

Latest commit

 

History

History
495 lines (355 loc) · 14.8 KB

ongeki.md

File metadata and controls

495 lines (355 loc) · 14.8 KB

简介

此文件将描述ogkr文件(即音击谱面)里面的命令以及提供相关解释
注意,描述内容打上(?)即表示此内容不确定也不清楚,不保证后面有所改变
目前版本:bright memory act.3 1.45

格式描述

yy yy yy yy
xx xx xx xx

yy行为描述,xx行为具体示例命令内容


正文

VERSION

版本号 major miror release
VERSION 1 3 1

Creator

谱面作者 dst
Creator 緑化委員長

BPM_DEF(Bpm Defintion)

BPM定义信息 first common minimum maximum
BPM_DEF 180 180 180 180

MET_DEF(Meter Defintion)

节拍信息 bunshi bunbo
MET_DEF 4 4

TickResolution

TGrid.ResT*1 resT
TickResolution 1920

*1: TickResolution,物件时间轴长度基准值,用来参与物件的下落速度和物件之间的垂直距离计算",resT 一般情况下默认1920

XResolution

XGrid.ResX*2 resX
XRESOLUTION 4096

*2: XResolution,物件水平位置宽度基准值,用来参与物件水平位置计算的

CLK_DEF(Click Defintion)

初始节拍声音速度*3 clickDefault
CLK_DEF 1920

*3: 就是开头几个节拍音效(?)

TUTORIAL (此命令没用到)

是否为教程 isTutorial
TUTORIAL 0

BULLET_DAMAGE

子弹伤害 damageBullet
BULLET_DAMAGE 1

HARDBULLET_DAMAGE

强化弹伤害 damageHardBullet
HARDBULLET_DAMAGE 2

DANGERBULLET_DAMAGE

危险弹伤害 damageDangerBullet
DANGERBULLET_DAMAGE 4

BEAM_DAMAGE

激光伤害 damageBeam
BEAM_DAMAGE 2

T_TOTAL

T_TOTAL 所有物件判定总数量*20
T_TOTAL 2500

*20:
T_TOTAL = T_TAP + T_HOLD + T_SIDE + T_SHOLD + T_FLICK
PlatinumScore = T_TOTAL * 2

T_TAP

T_TAP Tap类判定数量*24
T_TAP 595

*24: T_HOLD = 所有Tap数量 + 所有Hold数量 - T_SIDE

T_HOLD

T_HOLD Hold类判定数量(包括长条中间的判定)*21
T_HOLD 1592

*21: T_HOLD = 非墙壁Hold物件的数量

T_SIDE

T_SIDE 墙壁Tap类判定数量*22
T_SIDE 132

*22: T_SIDE = 墙壁Tap物件的数量 + 墙壁Hold物件的数量

T_SHOLD

T_SHOLD 墙壁Hold类判定数量(包括长条中间的判定)*23
T_SHOLD 58

*23: T_SHOLD = 墙壁Hold物件的数量以及它长度判定数量

T_FLICK

T_FLICK Flick判定数量
T_FLICK 123

T_BELL

T_FLICK BELL判定数量
T_FLICK 159

PROGJUDGE_BPM

与Hold长条物量相关 progJudgeBPM*4
PROGJUDGE_BPM 240

*4: 此值与Hold长条物件数量成正比,值越高则Hold长条物量越多。 若<=1.00001f,则自动钦定为240

BPL(Bullet Pallete List)

子弹模板 strID Shooter*5 placeOffset (xUnit) *36 target*6*32 speed BulletSize*7 BulletType*17 randDiffPos*35
BPL A0 UPS 0 FIX 1 N CIR 0

*36: 先通过Target枚举计算目标位置,再加上placeOffset(和randDiffPos)才是实际子弹射向的位置.

*35: 表示子弹是随机弹,比如有射向X[24,0]的子弹,其子弹模板的randDiffPos为3,那么子弹实际射向X[21,0]~X[27,0]随机一个整数位置

*5: Shooter枚举:

枚举值 枚举全名 解释
UPS TargetHead 从子弹终点位置发出,即在BLT等命令的XGrid位置
ENE Enemy 从敌人位置,可以配合ENS(EnemyLaneStart)轨道配合使用
CEN Center 基于谱面中心,即X[0,0]

*6: Target:

枚举值 枚举全名 解释
PLR Player 射向玩家位置。target的位置就是子弹出现时,玩家的当前水平位置
FIX FixField 射向对应位置。target的位置就是放置子弹的水平位置

*7: BulletSize:

枚举值 枚举全名 解释
N Normal 普通大小(默认)
L Lerge 加大版(是普通版的1.4x)

*17: BulletType:

枚举值 枚举全名 解释
CIR Circle 圆形子弹
NDL Needle 针状子弹
SQR Square 圆柱形(方状)子弹

BTP(Bullet Choice)(此命令没用到)

BulletChoice (?)
BTP (?)

BPM(Bpm Change)

BPM变动 tUnit tGrid bpm
BPM 85 0 240

MET(Meter Change)

节拍变动 tUnit tGrid bunshi bunbo
MET 0 0 4 4

CLK(Click Sound)

ClickSE,播放节奏辅助音效 tUnit tGrid
CLK 0 0

SFL(Soflan , change playback speed)*32

Soflan*8 tUnit tGrid tGridLength*9 当前速度倍率*33
SFL 0 0 240 1

*8: neta konmai的sof-lan
*9: 效果时效,超出这个时效时当前速度倍率会默认变回成1

*32: 对于BLTBEL来说,它们一般也是受到变速影响。但如果它们引用的BPL对象的Target字段值为PLR(Player)时。则不受变速命令影响(即当作它们soflan一直为1)

*33: 如果想要谱面开倒车,那么仅需要给它设置负数

EST(EnemySet)

播放敌人声音 tUnit tGrid tagTbl*10
EST 0 0 WAVE1

*10: WaveChangeConst.Tag:

枚举值 解释
WAVE1 声音1
WAVE2 声音2
BOSS Boss声音,在合适的地方设置这个值的EST命令可以进入小妹妹BOSS对战阶段。如果不放置,那么游戏会默认在谱面中间时间段放置

WLS(WallLStart)

左墙起始物件 GroupId tUnit tGrid xUnit
WLS 173 1 960 -24

WLN(WallLNext)

左墙(可重复)中间物件 GroupId tUnit tGrid xUnit
WLN 173 2 960 0

WLE(WallLEnd)

左墙中止物件 GroupId tUnit tGrid xUnit
WLE 173 3 960 0

WRS(WallRStart)

右墙起始物件 GroupId tUnit tGrid xUnit
WRS 175 1 960 -24

WRN(WallRNext)

右墙(可重复)中间物件 GroupId tUnit tGrid xUnit
WRN 175 2 960 0

WRE(WallREnd)

右墙中止物件 GroupId tUnit tGrid xUnit
WRE 175 3 960 0

LLS(LaneLeftStart)

红线起始物件 GroupId tUnit tGrid xUnit
LLS 175 3 960 0

LLN(LaneLeftNext)

红线(可重复)中间物件 GroupId tUnit tGrid xUnit
LLN 175 3 960 0

LLE(LaneLeftEnd)

红线中止物件 GroupId tUnit tGrid xUnit
LLE 175 3 960 0

LCS(LaneCenterStart)

绿线起始物件 GroupId tUnit tGrid xUnit
LCS 175 3 960 0

LCN(LaneCenterNext)

绿线(可重复)中间物件 GroupId tUnit tGrid xUnit
LCN 175 3 960 0

LCE(LaneCenterEnd)

绿线中止物件 GroupId tUnit tGrid xUnit
LCE 175 3 960 0

LRS(LaneRightStart)

蓝线起始物件 GroupId tUnit tGrid xUnit
LRS 175 3 960 0

LRN(LaneRightNext)

蓝线(可重复)中间物件 GroupId tUnit tGrid xUnit
LRN 175 3 960 0

LRE(LaneRightEnd)

蓝线中止物件 GroupId tUnit tGrid xUnit
LRE 175 3 960 0

CLS(ColorfulLaneStart)

其他颜色中止物件 GroupId tUnit tGrid xUnit colorfulLaneColorID*15 colorfulLaneBrightnessID*16
CLS 175 3 960 0 11 2

CLN(ColorfulLaneNext)

其他颜色(可重复)中间物件 GroupId tUnit tGrid xUnit colorfulLaneColorID*15 colorfulLaneBrightnessID*16
CLN 175 3 960 0 11 2

CLN(ColorfulLaneEnd)

其他颜色中止物件 GroupId tUnit tGrid xUnit colorfulLaneColorID*15 colorfulLaneBrightnessID*16
CLE 175 3 960 0 11 2

*15: 虽然命令是"Colorful"但实际已经钦定好一系列自定义颜色了:

颜色名字 颜色预览
0 ColorfulLaneAkari
1 ColorfulLaneYuzu
2 ColorfulLaneRio
3 ColorfulLaneRiku
4 ColorfulLaneTsubaki
5 ColorfulLaneAyaka
6 ColorfulLaneKaede
7 ColorfulLaneSaki
8 ColorfulLaneKoboshi
9 ColorfulLaneArisu
10 ColorfulLaneMia
11 ColorfulLaneChinatsu
12 ColorfulLaneTsumugi
13 ColorfulLaneSetsuna
14 ColorfulLaneBrown
15 ColorfulLaneHaruna
16 ColorfulLaneBlack
17 ColorfulLaneAkane
18 ColorfulLaneG
19 ColorfulLaneAoi

*16: 亮度值,具体有多亮就是相对于按照用户选项里那个轨道亮度 + 3 , 比如 colorfulLaneBrightnessID = 2 , 则实际就是2 + 3 = 5

ENS(EnemyLaneStart)

对面人物和杂鱼的移动轨迹起始物件 GroupId tUnit tGrid xUnit
ENS 175 3 960 0
玩玩ぱくぱく☆がーる紫谱,看看对面江江抽风

ENN(EnemyLaneNext)

对面人物和杂鱼的移动轨迹(可重复)中间物件 GroupId tUnit tGrid xUnit
ENN 175 3 960 0

ENE(EnemyLaneEnd)

对面人物和杂鱼的移动轨迹中止物件 GroupId tUnit tGrid xUnit
ENE 175 3 960 0

LDP(LaneDisp)

(?) GroupId Fore.tUnit Fore.tGrid Fore.xUnit Fore.xGrid Rear.tUnit Rear.tGrid Rear.xUnit Rear.xGrid
LDP 173 92 1440 24 0 93 0 24 0

LBK(LaneBlock)

墙壁锁边 GroupId*30 Fore.tUnit Fore.tGrid Fore.xUnit Fore.xGrid Rear.tUnit Rear.tGrid Rear.xUnit Rear.xGrid
LBK 173 92 1440 24 0 93 0 24 0

*30: 每个LBK只能锁一个边,至于锁哪边就看GroupId引用的墙的类型。比如你想锁左边的墙不想让人物超出这个边界,那么只需要LBK的GroupId设置成对应左墙的RecordId即可,但注意LBK有效持续时间应该在墙轨道的显示时间范围内。

BLT(Bullet)*32

Bullet strId tUnit tGrid xUnit BulletType*18
BLT A0 30 960 -24 NML

*18: BulletType:

枚举值 枚举全名 解释
NML Normal 使用BULLET_DAMAGE伤害
STR Hard 使用HARDBULLET_DAMAGE伤害
DNG Danger 使用DANGERBULLET_DAMAGE伤害

BMS(BeamStart)

激光起始物件 recordId tUnit tGrid xUnit widthID*11
BMS 0 117 960 -40 4

BMN(BeamNext)

激光(可重复)中间物件 recordId tUnit tGrid xUnit widthID*11
BMN 0 117 1500 -40 4

BME(BeamEnd)

激光终中止物件 recordId tUnit tGrid xUnit widthID*11
BME 0 117 1500 -40 4

OBS(ObliqueBeamStart)

倾斜激光起始物件 recordId tUnit tGrid xUnit widthID*11 shootPosXUnitOffset*31
OBS 0 117 960 -40 4 5

*31:以OBS的水平位置为基准,偏移XUnit个单位作为固定位置,向着当前时间内激光轨道的位置发射激光。因此只有OBS的shootPosXUnitOffset是有用的,OBN和OBE的shootPosXUnitOffset不会起作用

OBN(ObliqueBeamNext)

倾斜激光(可重复)中间物件 recordId tUnit tGrid xUnit widthID*11 shootPosXUnitOffset*31
BMN 0 117 1500 -40 4 5

OBE(ObliqueBeamEnd)

倾斜激光终中止物件 recordId tUnit tGrid xUnit widthID*11 shootPosXUnitOffset*31
BME 0 117 1500 -40 4 5

*11: widthID:

枚举值 对应的widthJudge 对应的widthDraw
1(default) 4 2
2 6 3
3 8 4
4 16 12
5 24 20

BEL(Bell)*32

Bell物件 tUnit tGrid xUnit bulletPallete*19
BEL 3 1440 4 -- 或 某个BPL的strID

*19: 如果钦定了bulletPallete,那么Bell就会像子弹一样可能实时位移和应用速度(比如 Op.1)。

FLK(Flick) or CFK(CriticalFlick)

(Critical)Flick tUnit tGrid xUnit Direction
FLK or CFK 3 1440 4 L or R

TAP or CTP/XTP*12(CriticalTap)

(Critical)Tap laneGroupId*13*14 tUnit tGrid xUnit xGrid
TAP or (CTP = XTP) 72 11 1440 24 0

*12: XTP全名ExTap,但等同于CTP(CriticalTap)

HLD(Hold) or CHD/XHD*15(CriticalHold) *34

(Critical)Hold laneGroupId*13*14 Fore.tUnit Fore.tGrid Fore.xUnit Fore.xGrid Rear.tUnit Rear.tGrid Rear.xUnit Rear.xGrid
HLD or (CHD = XHD) 151 1 1200 -12 0 1 1680 -12 0

*15: XHD全名ExHold,但等同于CHD(CriticalHold)
*13: Tap/Hold需要引用Lane的GroupId,但引用这货仅仅是为了钦定物件的颜色和类型
*14: 墙壁也是Lane一种,因此墙壁Tap/Hold也是按照此命令引用墙壁的GroupId即可
*34: Hold音效音量大小受当前Hold条位置影响且自带混响效果,当前Hold条位置离初始Hold位置越远,Hold持续音效音量越小。如果存在多个Hold,则按距离最远的计算