[戻る]
一括表示

タイトル
記事No
投稿日
投稿者
参照先
BGMのカスタムについて
514
: 2016/07/20(Wed) 00:09:12
sail

初めまして。sailと申します。
charatbeatHDXを利用させて頂いています。
こちらのゲームプレイ時の各種BGMの変更はどのようにやるのでしょうか。
できればスキンとは別に個別設定が出来ると助かるのですが
設定方法があれば教えて頂けませんでしょうか。
タイトル
記事No
投稿日
投稿者
参照先
Re: BGMのカスタムについて
515
: 2016/07/20(Wed) 12:26:49
管理人

プレイしていただきありがとうございます。

さてBGMを変えたいとのことですが、システムスキンは基本的に
変更出来ないように別途パッキングされておりますので、
現状BGMだけを変えるということは出来ません。

これはcharatbeatHDXのスキンはシーンごとにスキンを作ることが出来る、
逆に言えば全部のシーンのスキンを作らなくてもよいという仕様になっており、
作っていないシーンの場合にはシステムスキンが使われますが、
もしこのシステムスキンが改変されエラーが発生してしまうと、
charatbeatHDXの起動自体ができなくなってしまうことになるため、
これを避けるためシステムスキンは変更出来ない仕様としております。


システムスキンの全ソースは以下にありますので、
これを改変することでBGMの変更は可能ですが、
あくまでもこの方法は別スキンという扱いになりますので、
使用するには設定画面でスキンの変更が必要となります。
http://www.charatsoft.com/software/charatbeatHDX/skin/index.html
※こちらのwavファイルを入れ替え、_info.txtを任意のスキン名に変更し、
 さらに「_素材」フォルダを削除してから再度zipに圧縮すれば完成です
タイトル
記事No
投稿日
投稿者
参照先
Re^2: BGMのカスタムについて
516
: 2016/07/22(Fri) 09:14:42
sail

ありがとうございます。
ですが私はサウンド関連を作れないのでスキンだけ配布したいと考えています。

本来の動作に影響が出ると言うのは理解しましたので、
そこで外部入力ファイルまたはフォルダとしてサウンドを指定可能とするのを検討頂けないでしょうか。
他にはスキン種別ごとにZIPを分ける仕組みを提供頂けないでしょうか。
例えば曲選択画面とメイン画面を分けて配布したいと考えています。

また、タイトル画面や曲選択画面で3Dモデルではなく動画ファイルを背景にしたいと考えています。
参考になるLua記述があると助かります。
よろしくお願い致します。
タイトル
記事No
投稿日
投稿者
参照先
Re^3: BGMのカスタムについて
517
: 2016/07/22(Fri) 17:47:58
管理人

すいません、まだちょっとよく理解出来ていないのですが、
まず配布したいスキンというのはWAVファイルが入っていない(または仮のWAV)もので、
そのスキンをDLしたユーザーが自分でWAVを入れて使うという感じなのでしょうか?


charatbeatHDXはそもそもBGMとするWAVは1つだけしか鳴らせないわけではなく、
複数同時に鳴らしたり、逆に何も鳴らさなかったりすることが出来ますが、
システムスキンでは現状、たまたまシーンごとに1つのWAVを鳴らす実装になっており、
もしLuaを変更せずにBGMだけを差し替えたい場合は、そのシーンで鳴らしているWAVファイルを
ユーザー側で追加か上書きしてもらえばよいかと思います。

なお、配布用のスキンはzip圧縮されているため、WAVを差し替えるためには
ユーザー側でいったん解凍して、WAVを上書き後に再度zipに圧縮し直すか、
zipソフトによっては直接zip内のWAVファイルを上書き出来るものもあるので、
そういったソフトを使って作業をしてもらう必要があります。
※上にも書きましたが、どのWAVをBGMとして再生するかどうかはLuaの制御であるため、
 設定ファイルなどでBGMとして使うファイルはコレといったような指定は行えません




次にcharatbeatHDXのスキンというのは、基本的には全てのシーン(タイトルや選曲、ゲーム画面などの各画面)を
1つのスキンデータとして作り、システムスキンとごっそり入れ替えて使用するといったイメージであり、
このためご要望の曲選択画面とメイン画面を分けて配布し、
それぞれのスキンファイルを各シーンごとに設定するといったことは出来ません。

ちなみにシーンが実装されていない時に、代わりにシステムスキンのシーンを代用するという機能は、
以前も説明しましたがあくまでもゲームが動作しなくなることを防ぐための措置であり、
基本的には全シーンを1つのスキンデータとするのが本来のスキン仕様となります。
※例えば1920x1080で一部のシーンだけを作った場合、作っていないシーンではシステムスキンが使用されますが、
 システムスキンは1280x720であり表示時には1920x1080に引き伸ばされるため、
 結果的に作ったシーンと作っていないシーンで画質が変わってしまいます(ボケて見える)

これらのことから曲選択画面とメイン画面を別々に配布することは出来ないのですが、
例えば作ったシーンが「曲選択1」と「曲選択2」、「メイン画面1」と「メイン画面2」だった場合、
「曲選択1とメイン画面1」「曲選択1とメイン画面2」「曲選択2とメイン画面1」「曲選択2とメイン画面2」の
4つのスキンとすることで、これで全ての組み合わせが作れると思います。(かなり面倒ですが)




最後に動画を再生したいとのことですが、ひとまずシステムスキンを改造するとしたら
まず3D関連の部分をごっそり消し、あとは動画のロードと再生、そして表示を行うだけです。
※動画は画面に表示をしなくても裏で再生を続けています

ちなみに動画をループ再生する場合は動画の再生が終わったかで判断します。


以下は「タイトル」シーン部分のサンプルで、削除部分は"//"でコメント化しています。
※タブは全角スペースに置き換えています

function OnStartTitle()
   :
  // 3Dモデルロード
// hdxMatrixRotationX( 0,hdxToRadian(90) );    // 3dsMax座標補正
// hdxLoadModel( 0,"title.x",0 );          // 90度回転した状態を基本姿勢としてxファイルをロード

  // アニメーションロード
   :

  // 動画
  hdxLoadMovie( 0,"ミニアニメ「Re_プチから始める異世界生活」_03.mp4" );  // ID=0に動画をロード
  hdxPlayMovie( 0,0 );                          // ID=0の動画を先頭から再生開始

end

function OnRunTitle( upd_frm )
  ///////////////////////////////////
  // 処理
  ///////////////////////////////////
  if( g_dwTitleState==TITLEST_INIT ) then
    :
  end

  // ID=0の動画の再生が終了していたら再び先頭から再生開始
  if( hdxIsPlayMovie(0)==FALSE ) then
    hdxPlayMovie( 0,0 );
  end

  ///////////////////////////////////
  // 描画
  ///////////////////////////////////

  // 3Dモデル
// hdxSetZBuffer( TRUE );
// hdxMatrixRotationY( 0, hdxToRadian( ((hdxGetTime()%(360*60))/60) ) );
// hdxSetLookAt( 0,0,40, 0,0,0, 0,1,0 );
// hdxSetViewport( 0,0,RENDER_WIDTH,RENDER_HEIGHT );
// hdxDrawModel( 0,0 );                // 背景オブジェクト
// hdxSetZBuffer( FALSE );

  // 動画
  hdxDrawMovie( 0,0,0,1280,720,1.0 );        // ID=0の動画を画面いっぱいにアルファ1.0で表示

  // アニメ
   :
end


正しく再生出来ると以下のように動画の上にタイトル名が表示されます。
http://www.charatsoft.com/upload/20160722_chdx_skinmovie.jpg

ちなみに上記の例では動画は1個なのでID=0を指定していますが、
最大でMAX_MOVIE分(ID=0〜15)まで16個の動画が同時に再生出来ます。
(数が多くなれば処理が重くなります)

また動画の音声部分は再生されないため、必要ならば別途WAVをロードして再生してください

動画系の関数の説明は↓を確認してください。
http://www.charatsoft.com/software/charatbeatHDX/skin/page/api_movie.html


なおスキンの仕様として、動画などの素材はフォルダなどに入れず、
Luaと同じ場所に置いてください。
また、ファイル名を指定する場合もディレクトリ名などは付けずに、
直接そのファイル名を指定してください。
タイトル
記事No
投稿日
投稿者
参照先
Re^4: BGMのカスタムについて
518
: 2016/07/22(Fri) 22:16:49
sail

管理人さん、ご返信ありがとうございます
あくまでIIDX、CS版やLR2のような柔軟な切替をしたいと思ってたのですが
ZIP単位で組み合わせるように工夫してみます。

動画の件、ありがとうございます。
うまく動かなかったので頂いたサンプルを元に構成してみます。
またなにかあれば質問させてください。
よろしくお願いします。

- WebForum -