じ☆ve冰风 发表于 2026-8-3 15:13:28

Play Movie alternative with extra settings

This script overrides the ] event command, but to access more parameters you must use the [Script...] event command.

For this to work, the player will need to have FFMPEG or VLC installed. The script will always prioritize FFMPEG because it is faster at generating frames.

License: The script can be used in commercial games

DOWNLOAD: Mediafire
(Includes SCRIPT file a DEMO with hands-on tests of all possibilities and functions)

FFMPEG: You can include installation instructions with your game, or create an in-game installer
VLC: You cannot send the installer with the game, but you can include the installation instructions               
Click to expand...


Although it works with movies in other formats, this would prevent guaranteed audio playback, so ideally you should only use OGV/OGG

Accepted formats:
OGG/OGV : Video+Audio
FLV : Video
WMV/ASF : Video
WEBM : Video
AVI/TS : Video
MOV : Video only
MP4 : Video (This does not work with VLC)


Define the initial settings in the MoviePlayer_Config module at the beginning of the script:
                Ruby:       
module MoviePlayer_Config
    # The developer can modify the initial settings here:
    MODE=1
    NATIVE=false
    MUTE=false
    VOLUME=100
    SKIP=true
    CLEAR=false
    DELAY=360
    Z=0
end


MODE:
1 The video is stretched or compressed to fit the width and height of the game screen, even if that screen is modified.
2 The video adjusts to the game's width responsively.
3 The video adjusts its height responsively to the game's needs.
4 The video does not play immediately; it only generates the frames for use at any time later without causing a delay when starting playback.

Adjusted to the size of the game window:




Mode 2: If the video width is greater than the height




Mode 2: If the video height is greater than the width




Mode 3: If the video width is greater than the height




Mode 3: If the video height is greater than the width




NATIVE:
This configuration is only for cases where the developer needs it to work in the standard VXAce mode

MUTE:
This setting allows the movie to use the background music that is currently playing

VOLUME:
Change the default volume for all movies initiated by the event command, from 1 to 100

SKIP:
Disable this if you don't want the player to be able to skip the movie by pressing the cancel key (X, Esc, Insert, InsNumpad)

CLEAR:
This only works in game test mode, so the developer can clean up old frames if they edit the movie or used some DELAY time that affected the frame creation

DELAY:
Set a delay to ensure that FFMPEG or VLC can generate enough frames for playback. FFMPEG will use 25% of this time, as it is much faster. Remember that in RMVXAce, 60 frames equal 1 second, so I recommend at least 240 (4 seconds) due to older computers or slower hard drives

WITH:
This setting allows you to place the movie behind the last text box or event pictures on the screen:
0 Above the text and pictures
1 Below the text
2 Below the text and pictures (Do not use Fadeout Screen in this case, as the movie will be behind the dark screen)

To avoid having to change the most common settings before playback, I included this directly in the function that is called by the Play Movie... Event Command:
Graphics.play_movie(File path, Mode, Volume)

The file path is the path from the game folder; that is, not every video needs to be in the Movies folder, but you shouldn't use the file extension in this case, so as not to affect the script's priority selection. For example, if you have a video called Intro.ogg (use quotation marks and a trailing slash):
'Movies/Intro'

Mode is equivalent to the modes already shown in the initial settings, use 0 to automatically select the current setting, for example:
Graphics.play_movie('Movies/Intro',2)

Volume: This adjustment is exactly like the BGM adjustment; you regulate it by percentage. The video's sound will actually be played by the native BGM player as long as the video is OGG/OGV. So, if you have a global sound adjustment script in the menu, it will be compatible, provided it does this directly in the function. For example 50%:
Graphics.play_movie('Movies/Intro',1,50)


Modify the event command settings:
(If any argument is entered outside of what the function expects, such as type or range limit, the SCRIPT will not break, it will only return the information in the Console)
Change resolution/aspect ratio:
$game_system.movie_setup('mode',1) or $game_system.movie_setup(1,1)

Enable native VXA player:
$game_system.movie_setup('vxa',true) or $game_system.movie_setup(2,true)

Mute/Turn off the sound so that it plays the background music:
$game_system.movie_setup('mute',true) or $game_system.movie_setup(3,true)

Change the volume as a percentage:
$game_system.movie_setup('volume',50) or $game_system.movie_setup(4,50)

Enables/Disables the key to skip the video:
$game_system.movie_setup('skip',true) or $game_system.movie_setup(5,true)

Enables/Disables clearing frames from the temporary folder (test mode only):
$game_system.movie_setup('clear',true) or $game_system.movie_setup(6,true)

This includes a delay when using the FFMPEG or VLC command line; note that in FFMPEG this time will be 25% of that value.
$game_system.movie_setup('delay',90) or $game_system.movie_setup(7,90)

Changes the layer where the video frames will be drawn:
$game_system.movie_setup('z',1) or $game_system.movie_setup(8,1)

Receive the current settings in the Console:
$game_system.movie_setup

Restores the settings to the same ones that are in the MoviePlayer_Config module :
$game_system.movie_initial


本贴来自国际rpgmaker官方论坛作者:DevRPG2k处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/play-movie-alternative-with-extra-settings.183433/
页: [1]
查看完整版本: Play Movie alternative with extra settings