设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 98|回复: 0

[转载发布] Jay's Variable Mix BGM Manager Version 1.0.2

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    7959

    主题

    864

    回帖

    3万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    29925
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    38778

    灌水之王

    发表于 3 天前 | 显示全部楼层 |阅读模式
    Many commercial video games have what is known as a "variable mix". What this means is that the game can pick a track that matches what is going on - but the tracks typically have the same (or similar) melodies and can flow from one to the other. For examples, look at Rare's Nintendo 64 games, or The Legend of Zelda: Skyward Sword's marketplace, or even Mario games that let you ride Yoshi.


            Does that sound like something you want? Well, the first thing is... you'll need the tracks. That's on you, I'm writing enough music for my own game, thanks. Here are the recommendations for the tracks: They don't need to be the same tempo, but they should correspond. Same relative length (in measure count), repeat the same way to the same point, and so on. If the tempo of one track changes, the tempo of the other track should change proportionally. If one track is longer than the other (even ignoring tempo differences), it will try to find the most appropriate place to loop back to when you switch to the shorter one in the part that doesn't exist in the shorter one, which can work in some cases, but don't push it. You shouldn't hit any major errors, but the transition will sound weird if you're not careful.


            Also, you will need to play all variable mix tracks at pitch 100 for technical reasons.


            So play the first track normally. Ahead of time (before! you need it!), with this plugin installed, call the following plugin command:


            LoadVariableMixBGM nameOfTrack [tempoRatio] [volume] [pan]


            This is the track you will be switching to. Hopefully, you should be able to figure out nameOfTrack, volume, and pan. The most notable one here is tempoRatio. You need to put the ratio of the tempo of the track that is currently playing to the tempo of the track you are switching to. Fractions (like "2/3") are okay!


            So if the CURRENT track has a tempo of 144 bpm, and the REPLACEMENT track is 120 bpm, you want to put 144/120 (or 6/5, which is the same fraction). When you go the other direction, make it 120/144 (or 5/6).


            If you don't define the three optional parameters, tempoRatio will be 1 (meaning it's assuming they're the same tempo), and volume and pan will simply match the track that is currently playing.


            Once you've loaded the replacement track, you can switch to it with:


            PlayVariableMixBGM


            No parameters here. You can only keep one track loaded at a time (but you can switch it any time you like. Just remember to give it some time before you play! On my computer, a second is plenty of time. But without that second, there's a bit of sound skipping.)


            BTW, you absolutely can call the exact same track as what is currently playing with different volume and pan settings. This isn't as useless as it might seem; the fadein/fadeout effect will make it more fluid than if you just called "Play BGM" with the different settings.


    EXAMPLE USAGE:


            You have the track "TownTheme", with a tempo of 160 bpm, and the similar "TownThemeIndoors", with a tempo of 120 bpm. (120/160 = 3/4.) You want to play TownTheme when outdoors, and TownThemeIndoors when indoors.


            On the map, put an autostart event with the commands:


    Plugin Command: LoadVariableMixBGM TownThemeIndoors 4/3
    Erase Event


            On the doors to the inside of the buildings:

                    Code:       
    1. Transfer Player: (whatever)
    2. Plugin Command: PlayVariableMixBGM
    复制代码


            Inside each building, put another autostart event, similar to the one you put outdoors:


    Plugin Command: LoadVariableMixBGM TownTheme 3/4
    Erase Event


            And on the doors leading back out:


    Transfer Player: (the outdoor map)
    Plugin Command: PlayVariableMixBGM


            (SIDE NOTE: For this example, you do not want to define map music for any of the maps involved; play the music from another map or an event.)


            If you're REALLY confident that the transition time will cover the load time (and on my computer, it does) then you can just put the load at the beginning of the transfer events and ignore the autostart events.


    THE PLUGIN:


    http://pastebin.com/Wq8SzNs5


            This plugin is free for non-commercial and commercial use, but please credit Jason R. Godding if you use it. Thank you.


            NOTE: In development of this, I had a memory leak at one point. I am 98% sure I killed it, but there's still that little 2% doubt. If you're hitting one (and it's definitely variable mixes at fault), let me know.


    本贴来自国际rpgmaker官方论坛作者:HeroicJay处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/jays-variable-mix-bgm-manager-version-1-0-2.58373/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-1 02:36 , Processed in 0.063177 second(s), 52 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表