关于游戏引擎(godot)对齐音乐bpm的技术

引擎默认底层

  1. _process(): 每秒钟调用60次(无限的)

数学

  1. bpm=1分钟节拍数量=60s节拍数量

bpm120 = 60s120拍

  1. 每拍子时间= 60/bpm

  2. 每个拍子触发周期所需要的帧数= 每拍子时间*60(帧率)

这个是从帧数级别上对齐拍子的时间,对于游戏引擎来说,用帧数更加适合高频触发程序

在120bpm下,1拍是0.5s。

当然这个代码有极限的,不能超过或者小于那个1/60 的0.1666667 因为帧的最小单位是1,不是0.5.

我不知道这个算不算音帧程序

下面是伪代码

python 复制代码
var bpm = 120
var paizi_time = 60.0/120 #这样才有余数
var paizi = -1
var paizi_zhen = paizi_time * 60

func _process():
    if Engine.get_idle_frames()%int(paizi_zhen) == 0:
        paizi +=1
    # 4/4拍
    if paizi == 4:
        paizi = 0
    # 3/4拍
    if paizi == 3:
        paizi = 0
     set_text(str(paizi))#设置某个label的字
相关推荐
hkNaruto12 小时前
【AI】基于大模型的AI游戏地图生成、控制方案:AI Native Game Harness 迁移操作手册
前端·人工智能·游戏
网安小学生(兼顾数据库版)12 小时前
Black Duck 退出中国市场后,替代方案怎么选?5 项核心能力评估
经验分享
地狱为王15 小时前
Unity使用VoxLock实现语音隔离
unity·游戏引擎·音频处理·voxlock
AAwangzong15 小时前
AI时代RPA技术解析:如何构建兼顾流程执行与智能决策的自动化平台?
人工智能·经验分享·rpa·智能体
by2099916 小时前
Linux GDB 调试与 CGDB 使用
linux·运维·服务器·经验分享
辰辰观影17 小时前
字幕导入教程:外挂字幕一键加载方法
网络·经验分享
揽星河..18 小时前
【C语言】猜数字游戏
c语言·算法·游戏
辰辰观影18 小时前
网盘视频播放器怎么选?2026全平台推荐
经验分享·音视频
m0_7196408718 小时前
适合教学科研的人工智能实验室建设方案有哪些?(含测评)
人工智能·经验分享
释厄62318 小时前
AI 军备竞赛悖论——为 AI 卖游戏但 AI 需要游戏母场景
人工智能·游戏·kotlin