jubeat analyserの改造メモ Part1(基本事項・外観など)

昔のメモを漁ってたらjubeat analyserのメモが出てきたので、供養がてらここに残しておきます。

目次

Part1
基本事項(全体的な外観とか)
Part2
数字(叩く順番)の表示に関するもの
Part3
analyserから直接、動画(AVI)出力する
Part4-1
HOLDマーカーの挙動
Part4-2
HOLDマーカー終点の挙動

ソースコード表記について

可能な限り、変更前と変更後で、枠の区別をつけています。

変更前のコード(もともとあったもの)はこれで記述(blockquoteタグ)

変更後のコードはこれで記述(codeタグ)

jubeat analyser基本事項

jubeat analyser(以下、このソフト)は、HSP[Hot Soup Processor]で作成されています。
本体にソースファイルが同梱されているので、ここをいじることで本体を改造できます。

HSPのダウンロードは以下から(HSP公式ページ)。
HSPTV!

ソースの格納場所は「/このソフトのフォルダ/souce/」。
本体ファイルは「aa.hsp」で、そこから各種ソースを読み込んでいます。

「コンパイル方法について」に、必要な情報が最低限書かれていますので、一読ください(analyser作者様によるメモ)。

プログラム言語HSPの特徴は、改行で命令終了、変数宣言必要なし(いきなり代入可能)、変数文字不要($とか)です。

画像ファイルについて

私がこのソフトで使っている画像は、以下で配布しています。適宜ご活用ください。

jubeatとかの素材を配布するページ

以下、残っていたメモをほぼそのまま垂れ流し。
(※この記事の作成にあたり、補足がある場合、「◆」を付けてメモ書きをしています)

ただのメモ書き

【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

シェアする

  • このエントリーをはてなブックマークに追加

フォローする