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

[制作教程] Calculating movement speed based on travel time + distance.

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

    连续签到: 2 天

    [LV.7]常住居民III

    4446

    主题

    864

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

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

    灌水之王

    发表于 4 天前 | 显示全部楼层 |阅读模式
    Howdy! o7

    A friend and I worked out a way to calculate how fast an event's or players movement speed needs to be if they need to walk from Tile A to Tile B over a set course of frames.

    RPGMaker calculates moving 1 tile by the following formula:
                    Code:       
    2^(moveSpeed/256)

    If your movespeed is x2 Slower (3), you will move 1 tile every 32 frames.
    If your movespeed is Normal (4), you will move 1 tile every 16 frames.
    If your movespeed is x2 Faster (5), you will move 1 tile every 8 frames.

    But what if you want to move 1 tile every 24 frames? Simply using a script to set your movement speed to '3.5' won't cut it! You'll be a little faster than what you anticipated. You might have a sound effect that takes 3 seconds to play, and you want an event to move from Point A to Point B over the course of those 3 seconds exactly. The default movement speeds RPG Maker provides might be too quick or too slow, so there is an equation that will help you calculate this!

    The formula is written in Excel and is:
                    Code:       
    =LOG((256*A2)/B2,2)





    So, we have our Tile, Frame, and MoveSpeed equations.
    Currently in the data, we want to move 1 tile, over 16 frames of time, which calculates our movespeed to '4' (Default RMMV move speed logic
    )

    It's important to note, that RPG Maker runs at 60 Frames Per Second (FPS). So if you want a character to walk for 2.00 seconds, your frame total will be 120FPS.

    What if I want to move 5 tiles over the course of 240 frames? Let's input it and see!



    There's our equation... But that is a LOT of decimal places! I recommend you use at most 3 decimals and round off the last digit.

    The limitations of this are currently diagonals, but for regular tile walking, it should paint the picture!

    Now that you have calculated and found out your movement speed, it's time to set the event or players movement speed!
    For the following example, we will be using the code above, so we will let our event/player walk 5 tiles over 240 frames.


    • We have our movement speed which is '2.415037499', we will cut this down to just '2.415'
    • Open an event and add a 'Set Movement Route'
    • Choose either a player or event. NOTE: The code will differ depending on if you choose a Player or an Event.
    • For players, click 'Script...' and input this line of code:                                 Code:       
      $gamePlayer._moveSpeed = X'X' is the value we calculated earlier.

    • For events, click 'Script...' and input this line of code:                                 Code:       
      $gameMap.event(this._eventId)._moveSpeed = X'X' is the value we calculated earlier.

    If you have plugins or modifications that allow the player to walk on individual pixels, just multiply your desired tile walk distance by your set pixel distance!
    Below I have a video demonstrating 3 different walk speeds, they all take 240 frames to complete and have varying distances!


    https://www.youtube.com/embed/Dj2_l4QoYHQ

    NOTE: The video states durations of 120 instead of 240, this is an editing mistake on my behalf.


    I hope this information is useful to game devs that want to achieve such an effect, as I know I certainly did and I'm glad I can make some documentation on what I discovered!
    Feel free to ask any questions on how this can be used or how to use it all together!



    本贴来自国际rpgmaker官方论坛作者:YoBro处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/calculating-movement-speed-based-on-travel-time-distance.159756/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

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

    本版积分规则

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

    幸运抽奖

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

    立即查看

    聊天机器人
    Loading...

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

    GMT+8, 2026-7-14 14:21 , Processed in 0.109710 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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