[戻る]
新着表示

タイトル
記事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^2: BGMのカスタムについて
516
: 2016/07/22(Fri) 09:14:42
sail

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

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

また、タイトル画面や曲選択画面で3Dモデルではなく動画ファイルを背景にしたいと考えています。
参考になるLua記述があると助かります。
よろしくお願い致します。
タイトル
記事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
投稿日
投稿者
参照先
BGMのカスタムについて
514
: 2016/07/20(Wed) 00:09:12
sail

初めまして。sailと申します。
charatbeatHDXを利用させて頂いています。
こちらのゲームプレイ時の各種BGMの変更はどのようにやるのでしょうか。
できればスキンとは別に個別設定が出来ると助かるのですが
設定方法があれば教えて頂けませんでしょうか。
タイトル
記事No
投稿日
投稿者
参照先
Re: 曲終端に達してもクリア出来ない
512
: 2016/07/14(Thu) 22:52:04
管理人

曲が終わらない件ですが、これはおっしゃる通りBMS内に存在するデータのうち、
小節番号が一番大きい値を終端としているためです。


LR2はどのように終了を判断しているのかは分かりませんが、
例えばもし最後のオブジェの位置を終端とするような仕様だった場合、
まだBGMが終わっていないのにゲームが終わってしまう可能性があります。
※作者が意図して最後の余韻部分を作っていたとしても、それを聞けずに終わってしまう

また今度はBGM(WAV)の再生が終わるまでゲームが終わらないような仕様だった場合、
最後のオブジェ終了後もそのBGMが終わるまで延々と待たされることになります。
※例えばある曲の1番だけの譜面を作ったとして、この時BGMを1番だけ切り出すといったことはせず、
 フルコーラスのまま使用したとすると、その曲が終わるまでゲームが終わらない
 (もしあとで2番、3番も作る予定だとしたらそもそも曲はフルコーラスのまま使う)


これらの問題を考慮し、charatbeatHDXではBMSに空の小節を定義することで、
曲の終了位置を調整出来るような仕様としています。

ちなみにこのあたりはBMSの仕様としては定義されていないと思うので、
ソフトごとに仕様はまちまちだと思います。
タイトル
記事No
投稿日
投稿者
参照先
曲終端に達してもクリア出来ない譜面がある
511
: 2016/07/13(Wed) 21:14:04
BugReport
http://manbow.nothing.sh/event/event.cgi?action=More_def&num=25&event=109
現在開催中の「Be Happiness!!!! - HAPPY BMS EVENT -」に含まれる『Pompadour』という曲で、曲の最後まで到達してもプログレスバーが10数%辺りにあり、クリア画面に遷移しません(LR2では正常動作を確認済み)。

Normalの場合1579行以降、Hyperの場合1342行以降(どちらも「#12502:0.75」の行以降)を削除すれば正常にクリア画面に遷移します。
これらの修正を行ってもLR2でのプレイに影響がない事は確認済みです。

#xxxxx:0.75

という記述が延々と続いていますが、ノートが空でも小節に対し何らかの指定があればその小節は実在するものとして処理しているのでしょうか(BMSフォーマットについては全く判りません。見当違いの事を言っていたら申し訳ありません)。
タイトル
記事No
投稿日
投稿者
参照先
Re: 要望
510
: 2016/04/17(Sun) 22:06:33
管理人

ご要望の機能ですが、こちらは既に実装されております。

現在のcharatbeatHDXでは、LNの終端から48分音符以下にある音符を自動的に結合(または削除)するようになっておりますが、
ご使用の譜面にて結合されていないと言うことであれば、それ以上あとに音符が定義されているためだと思います。


終端にオブジェを置くやり方は本家の終端判定をシミュレートするためで、
これはLR2など終端判定の無いBMSプレイヤーで無理やり終端判定を行うための苦肉の策です。

charatbeatHDXではその頃に製作されたと思われるBMSに対応するため当時のBMSを拾ってきて解析し、
48分音符以下であれば問題無かったのでその仕様としましたが、
この機能もあくまでも当時の譜面をプレイ出来るようにするための苦肉の策であり、
うまく動作しないのであれば譜面自体を修正するしかありません。

ちなみにもしユーザーが48分音符や32部音符など自由に変更出来てしまうと、
その都度結合されたりされなかったりしてノート数が変化してしまい、
結果的にトータルスコアなどが全て狂ってしまいます。

特にスコアランキングなどは常に同一の判定方法で行わなければ破綻してしまいますので、
基本的には48分音符以下としてBMSを再編集するか、そもそもcharatbeatHDXでは終端のオブジェは
元から判定されるようになっているので、直後のオブジェを削除してしまえば良いと思います。
※LR2と共存するならば48分音符以下に配置するとよい


不具合のあるBMSをソフト側で修正するというやり方は、今後他の人が新しいBMSプレイヤーを作る際にも
また同じことを要求することになるため、BMSプレイヤーの製作を妨げる要因となります。
このためcharatbeatHDXやBMIIDXView2015では基本的にBMSを修正してもらうといったスタンスとしています。

ちなみにBMIIDXView2015ではBMSのエラーを詳細に出力する機能や、#IFなどの分岐系のミスが無いかを
確認するためのビュー機能がありますので、デバッグ環境としても使用可能です。
タイトル
記事No
投稿日
投稿者
参照先
要望
509
: 2016/04/16(Sat) 20:17:58
daivo

スクラッチのLNの終端直後に皿を配置している譜面があるのでその直後の皿をソフト側で消せるようにできませんか?
終端直後に皿のない譜面も存在するので消すかどうかをオプションから選択できるとありがたいです。
「直後の皿」の定義が難しいと思いますが、よろしくお願いします。
タイトル
記事No
投稿日
投稿者
参照先
Re6はじめまして。スケユーと申します。
508
: 2016/03/31(Thu) 23:05:07
管理人

有名BMSプレイヤー(笑)どうもありがとうございます。

実を言うとcharatbeatHDXは大々的に宣伝をしたことは無いんです。
単に自分の練習用(ゲームもそうだけど主にプログラム技術用)に作っていたもので、
このため基本的に他人の意見を聞くということはあまりしませんし、自分的には今でもマイナーだと思っていますw


さて動画サイズについてですが、基本的にBMSの仕様は256x256ということになっているので、
それ以外のサイズの時点でBMSの仕様ではなくなります。

もし256x256以外のサイズが特定のプレイヤーで正しく表示されなかったとしても、
それはBMS仕様としてはあっているわけなので、どんなBMSプレイヤーでも正しく再生したいということであれば、
やはり画質が落ちるとしても256x256で作成するしかないと思います。

または最初から対応のBMSプレイヤーを絞ってしまい、それらのみ正しく表示出来るのを保障するのも手です。

そもそも動画自体に対応していないプレイヤーもありますので、そのプレイヤーまで保障することはまず不可能ですし、
仮にBMP版も作っておき、再生出来なければこちらを使用してくださいと2種類のデータを用意しておくことも可能だと思いますが、
このためにデータの用意や説明書きのために2倍の労力が必要になります。
それよりは動画が再生出来るプレイヤーをお勧めした方が、効率的にも手っ取り早いと思います。


それとMPEG1の仕様に関してですが、たしか作成出来るサイズに制限があり、
640x640といったサイズは指定出来なかったと思います。
またMPEG1では最大でも720x480だった気がするので、
それ以上の解像度を扱うにはMPEG2にしなければなりません。

同じくMP4にも特定のサイズしか生成出来なかった気がしますので、
まずはいろいろなサイズで試してみるとよいと思います。

ちなみにAVIは中のコーデックにもよりますが、基本的には任意のサイズで生成出来るみたいです。
タイトル
記事No
投稿日
投稿者
参照先
Re: Re6はじめまして。スケユーと申します。
507
: 2016/03/31(Thu) 13:40:02
スケユー
http://ameshibu.raidrop.jp/
相互リンクしていただき、誠にありがとうございます!
ただ、非常に恥ずかしいですね^^;有名BMSプレイヤーのcharatさんのリンクに、こんな無名の、たいしたBMSも作成できないやつのHPが載ってしまって。。。
貼り付けていただいたからには、恥ずかしくない活動ができるよう、日々精進していく次第であります!

今後の適切な動画サイズというのは、悩ましい問題です。
LR2や、有名プレイヤーが256に適切に合わせてくれると仮定したら、
charatさんの640*640(1280*720?)で作成してしまえば、
charatbeatHDXの画面ではHD画質で、他のプレイヤーは256に合わせてくれる、
という事になりますよね?


まだ今回の問題の動画は修正前です。
256と2パターンで作るのもありなのですが、
動画サイズによって、中身の画像、映像を拡大縮小するのは時間が掛かります。
また、動画サイズが数種類あると、お客様の手間にもなる問題です。
できれば1パターンで、うまく都合をつけたいです。
この当たりを都合良く合わせられるサイズは、?x?だと理解されていらっしゃいますか?
ご存知の範囲で結構です。ぜひご指導賜りたいと思います。
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

- WebForum -