昔のメモを漁ってたらjubeat analyserのメモが出てきたので、供養がてらここに残しておきます。
目次
目次
- Part1
- 基本事項(全体的な外観とか)
- Part2
- 数字(叩く順番)の表示に関するもの
- Part3
- analyserから直接、動画(AVI)出力する
- Part4-1
- HOLDマーカーの挙動
- Part4-2
- HOLDマーカー終点の挙動
ソースコード表記について
可能な限り、変更前と変更後で、枠の区別をつけています。
変更前のコード(もともとあったもの)はこれで記述(blockquoteタグ)
変更後のコードはこれで記述(codeタグ)
jubeat analyser基本事項
jubeat analyser(以下、このソフト)は、HSP[Hot Soup Processor]で作成されています。
本体にソースファイルが同梱されているので、ここをいじることで本体を改造できます。
ソースの格納場所は「/このソフトのフォルダ/souce/」。
本体ファイルは「aa.hsp」で、そこから各種ソースを読み込んでいます。
「コンパイル方法について」に、必要な情報が最低限書かれていますので、一読ください(analyser作者様によるメモ)。
プログラム言語HSPの特徴は、改行で命令終了、変数宣言必要なし(いきなり代入可能)、変数文字不要($とか)です。
画像ファイルについて
私がこのソフトで使っている画像は、以下で配布しています。適宜ご活用ください。
以下、残っていたメモをほぼそのまま垂れ流し。
(※この記事の作成にあたり、補足がある場合、「◆」を付けてメモ書きをしています)
ただのメモ書き
【130519基本情報】
・前回の「同時押しマーカー分け」に加え、「数字つき」オプションが出現。
譜面動画が分かりやすくできる…?
・iniファイルに記録されるものもあるので、いちいちソースをいじる必要のないものも多数
【aa.hsp内】 ※ソフトの全体的な管理はここ
[出力プログラム名の変更]
#if USEA2D
#packopt name “jubeat_analyser_kai”
#else
#packopt name “jubeat_analyser_kai(withoutA2D)”
#endif
生成するファイル(プログラム)名。kaiを付けてオリジナルファイル名と区別する
Enterでファイルを開く
613行目くらい
if (key&16 || dir_cmdline!=””){ //Space または コマンドライン文字列が存在する場合
tmp=0
if (key&16){
↑の2か所の”key&16″を”key&48“に書き換え。
次の行にある、dialogの16は全然関係ないのでいじらないこと。
48にすればSpaceでもEnterでもどっちでも開けるようになる
(32にすればEnterのみ受け付けられる)
[最初に表示されるtipsを非表示にする(ver150228~)]
tips という変数が文章を管理(aa.hsp内で定義)
if (cnt==50): screen 1,400,150,8,ginfo_dispx/2-200,ginfo_dispy/2-75: title “TIPS”:color 255,255,192:boxf:color 0,0,0:font msgothic, 14, 1:mes tips(rnd(length(tips))): gsel 1,1: gsel 0
↑1行まるっと消去
【画像ファイル関連】
※musicselect.hspとplaymovie.hsp内の、2か所を更新する
※今までの設定が残っているので、更新後はini\ini.txtを削除してから起動すること
↑markerlistとは何だったのか(◆使ってないので分かりません…)
※Ver150228追記 musicselect内には記述がない
[背景]
bgfile_sh = “bg_shutter.jpg”
↓
bgfile_sh = "bg.bmp"
#111111くらいの色で塗りつぶした495×495のbmpファイルに差し替え(◆一部の素材は素材配布のページに掲載しています)
[マーカーファイル名]
↑のすぐ下あたり
markerfile = “marker.jpg”, “marker1.jpg”, “marker2.jpg”, “marker3.jpg”
↓
markerfile = "marker0.bmp", "marker1.bmp", "marker2.bmp", "marker3.bmp"
bmpファイルでマーカーを置いてるのでjpgはいらん
ついでにmarker0をくっつけて分かりやすく
「ここからスタート」は一応pngとbmp両方設置(ソースいじってbmpだけにするのも有り
(USEA2Dを使用時png、そうでないときbmpを参照する模様)
指定は各々2か所ずつ、計4か所あった
ここからマーカーは透過pngにも対応できる(◆配布素材は、propのみ透過)
analyer描画【playmovie.hsp内】
◆playmovie.hspが、メインとなるjubeatプレイ画面です。
[基本設定]
ハンクラ、30fps出力などをデフォ設定にする
(iniを消すたび設定しなおすのが面倒なので
outputfps = 30 //フレーム出力時のfps
//
handclapflag = 1 //手拍子するか
showmusicbar = 0 //ミュージックバー(笑)(の高さ8より上)を表示するか
handclapzure = -70
doujimarker=1 // デフォ設定がなかったので追記する
▼これだけ違う場所に記述されてる
showtiming = 1
[注意書きを消去]
300行目くらい
dialog “【TIPS】\n※曲の途中で「頭出し」したくなった場合は, \n必ず\”←\”キーを使って行ってください\n(シークバーの左端をクリックするのではなく)”
//ver1502以降はtipsの内容が変数になってる
dialog “<>\n”+msg_tips(lang)
↑全消去。注意書きは(いったん把握すれば)いらないので
if (standalone==0 and ism==0){
dialog msg_nomusic(lang)
}
↑こうしておくといいかも(音楽ファイルがない場合のみ警告
[注意書き2]
ファイルサイズ出力時の警告を消去
2030行目くらい
if (outputsize/1048576 > outputsizenotify){
(中略)}
↑の5行くらいを消す
▼5行くらいを消さない場合、こんな手もある
outputsize = 0.0: outputsizenotify = 2147483647
ファイルサイズの合計が~の部分を消し去る技術。
もともと10で記述されていた「~notify」をめちゃくちゃでかくする。
[右上のFPSを消去]
まるっとコメントアウト
pos ginfo_winx,0:color 128,128,128:mescopy “”+fps, 20, 2, 0
[ファイル出力をpngへ]
◆現在、analyser→AVIに出力するようにしているので、この設定は無意味です(AVI出力については、Part3のメモが担当する予定)
#if USEA2D
imgsave "frame\\frame"+cn+".png",100 //a2d の中に新規定義した命令
#else
cvputimg: cvsave "frame\\frame"+cn+".png",0,100
#endif
2057行目くらい
該当箇所のjpgをpngに書き換え、数字を95から100に変更。
(横の数字はjpgクオリティなのでおそらく不要だが、なんとなく不安なので100に)
もしファイル出力時に何らかのエラーが出たら、bmpにするとたぶん大丈夫。
下にあるexist~のところも拡張子変えた方がいいんだろうか
ただの出力チェックだからどーでも
[出力後の結果表示]
2075行くらい
dialog “完了\n出力ファイル:frame”+mini+”.jpg ~ frame”+maxi+”.jpg\n出力ファイルサイズの合計:”+int(outputsize/1048576)+”MB\n\n最終スコア:”+(score+shutterbonus)+”点(うちシャッターボーナス”+shutterbonus+”点)”
フレーム出力時の結果。ごそっとコメントアウト
[キーボードからの入力を受け付けない]
1100行くらい?
getkey tmp,keycode(i)
↑の記述回りを全部削除
if (isjoy==0){
}
の中身全部消す勢いで(if自身を消してもおk)
ここで捉えているのは「jubeatゲームプレイ」に関する16キーだと思うので
「←」キーやスペースキーは(都合よく)動作してくれる。
◆HSPには、キーを取得する関数が2種類(stick, getkey)あり、そのうちの片方のみ削除します。参照→HSP3.0-入力
音声関連【waveloadsave.hsp内】
ソフトのあるディレクトリ(譜面ファイルのディレクトリではなく)にクラップ音を出力させる
※新たな文字列変数clapfileを定義し、それを使用する
clapfile=""+homedir+"/_clapoutput.wav"
↑これを124行目くらい(下記の”clapoutput.wav”が出現するより前)に追記コピペ。””はダブルクオート2つ。
ファイル内に7か所前後ある “clapoutput.wav” を全て clapfile に変更(ダブルクオートは外す)
↑うち、「~~を出力しました/します」のところは無視でOK(表示だけのため)
記述例↓
【BEFORE】
exist “clapoutput.wav”: if (strsize>=0): delete “clapoutput.wav”
(中略)
bsave “clapoutput.wav”,s,44
【AFTER】
clapfile=""+homedir+"/_clapoutput.wav"
exist clapfile: if (strsize>=0): delete clapfile
(中略)
bsave clapfile,s,44
◆ここから以下は不要(フレーム画像の出力場所。AVI出力してるのでいらない)
※同様のものをimgsaveに適用した方が楽かもしれん
2030行くらい dirlist stmp~を↓のように変更したうえで
chdir homedir //frameはソフト直下に出力させる
dirlist stmp,"_frame",5: if (strlen(stmp)==0): mkdir "_frame"
“_frame\\frame”+cn+”.png” ←これを5か所?くらいに適用
ディレクトリ周りで問題が起こったら
tmp = dirinfo(0) // カレントディレクトリ取得
として、最後に chdirで戻してやると良い
まあ問題と言ってもファイルが変な場所に保存されるくらいか
18/4/20 指アナ公式アカウントより許可OK