トップページ > 記事閲覧
動画再生速度の変更
名前: 日時: 2014/10/22 17:42

先ほどもうひとつスレッドを立てさせていただきました。LDゲームをDXライブラリで作成しようと思っているのですが、動画の再生速度を早くしたり遅くしたりすることは可能でしょうか? レーシングゲームを作りたくて、ハイとローで速度を変えたいのです。方法はありますでしょうか?
メンテ

Page: 1 |

Re: 動画再生速度の変更 ( No.1 )
名前:管理人 日時:2014/10/23 01:42

今のところありません 実装するとしたら ogv 形式のみの対応となると思いますが、 動画の音も音程が高くなったり低くなったりしてしまうと思います
メンテ
Re: 動画再生速度の変更 ( No.2 )
名前:管理人 日時:2014/10/27 00:28

ogv形式でのみ動的な再生速度変更ができる機能を追加しました よろしければ関数を追加したこちらのバージョンをダウンロードしてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 以下の関数を追加しました // 動画ファイルの再生速度を設定する( 1.0 = 等倍速 2.0 = 2倍速 ) int SetPlaySpeedRateMovieToGraph( int GraphHandle, double SpeedRate ) ; 注釈の通り、第二引数に再生速度の倍数を指定します 動画の再生速度を再生中に上下キーで操作できるようにしたサンプルプログラムを作成してみましたので、 よろしければご覧ください #include "DxLib.h" #define MAX_SPEED 400 #define MIN_SPEED 50 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int MovieHandle ; int PlaySpeedRate ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // 画面サイズを設定 SetGraphMode( 720, 480,32 ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // 動画の読み込み MovieHandle = LoadGraph( "Movie.ogv" ) ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // 再生速度倍率を初期化 PlaySpeedRate = 100 ; // 動画の再生開始 PlayMovieToGraph( MovieHandle, DX_PLAYTYPE_LOOP ) ; // メインループ(何かキーが押されたらループを抜ける) while( ProcessMessage() == 0 ) { // 上下キーで再生速度倍率を増減 if( CheckHitKey( KEY_INPUT_UP ) == 1 && PlaySpeedRate < MAX_SPEED ) { PlaySpeedRate ++ ; SetPlaySpeedRateMovieToGraph( MovieHandle, PlaySpeedRate * 0.01 ) ; } if( CheckHitKey( KEY_INPUT_DOWN ) == 1 && PlaySpeedRate > MIN_SPEED ) { PlaySpeedRate -- ; SetPlaySpeedRateMovieToGraph( MovieHandle, PlaySpeedRate * 0.01 ) ; } // 画面のクリア ClearDrawScreen() ; // 画像の描画 DrawGraph( 0, 0, MovieHandle, FALSE ) ; // 再生速度倍率を描画 DrawFormatString( 0, 0, GetColor( 255,255,255 ), "PlaySpeedRate : %.2f", ( double )( PlaySpeedRate * 0.01 ) ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } 因みに、最初に申し上げました通り SetPlaySpeedRateMovieToGraph は ogv形式以外では 再生中の再生速度変更が非常に重い場合や、そもそも再生速度の変更ができない場合が殆どなので、 こちらの関数を使用して再生中に再生速度の変更を行う際は必ず ogv形式の 動画ファイルを使用するようにしてください
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存