struct Readme { string Name = "TaikoManyGimmicks"; string Ver = "0.6.6α"; string CreatorName = "barrier": }; ※注意※ 今回のバージョンは試験的なものなので、メジャーなアップデートではないことを承知の上ご使用ください また、バグ報告に関しては大歓迎なのでいつでもディスコードサーバーにて報告してください 〇概要 tjaファイルまたはtmgファイルを読み込んで譜面を流すシミュレーションソフト 「TaikoManyGimmicks」です ちょっとだけ太鼓の達人のような仕様ですが本家や太鼓さん次郎などとは別物です tjaではTJAP3からバグを取り除いた仕様を実装していて tmgではギミック譜面を簡単に作れるかもしれない命令文を盛り込んだソフトとなっております 〇仕様 ・一般的に使用されているtjaファイルは当然対応しています ・tjaを独自に拡張したtmgファイルも読み込めます(詳細は下記参照) ・一般的に使用されている音源ファイルなら対応しています ・太鼓さん次郎よりも軽く、VSyncによるなめらかな描画 ・TJAP3系統よりも軽いかも...? 〇操作方法 (タイトル画面) ・Escキー : ソフト終了 ・面に割り当てたキー : 選曲画面に進む (選曲画面) ・Escキー : タイトル画面に戻る ・縁に割り当てたキー : 再生する曲を選ぶ ・面に割り当てたキー : 再生する曲を決定する ・Shiftキー+Tabキー : 設定画面に進む (演奏画面) ・Escキー : 選曲画面に戻る ・縁に割り当てたキー : 縁をたたく ・面に割り当てたキー : 面をたたく (譜面制作モード時) ・Escキー : 選曲画面に戻る ・Qキー : 譜面のリロード ・PgUpキー : 再生位置変更(進む) ・PgDnキー : 再生位置変更(戻る) ・Homeキー : 譜面の最初に移動 ・Endキー : 譜面の最後に移動 ・Spaceキー : 譜面をその位置から再生する (リザルト画面) ・Escキー : 選曲画面に戻る ・面に割り当てたキー : 選曲画面に戻る (設定画面) ・Escキー : とじる or 選曲画面に戻る ・矢印キー : 項目選択 ・Enterキー : 項目決定(その後に値入力) 〇設定ファイル config.iniファイルをいじるとある程度ソフトの設定を変えられます 例えば「AutoPlayFlag:false」にすると実際にプレイできます 〇tjaフォーマット このソフトを使う人の中で知らない人はいないと思いますが 対応してないものもあったりするので一応書いておきます ●ヘッダー TITLE: 曲のタイトル、--を先頭につけると演奏画面では非表示にする SUBTITLE: サブタイトル、--を先頭につけると演奏画面では非表示にする WAVE: 音源ファイル、拡張子も一緒に記述 OFFSET: 音源の再生タイミングを調整するところ、秒単位で指定 BPM: 譜面のBPM、音源に合わせたほうが良いです SONGVOL: 音源の音量を百分率で変えた値にします 省略してもOK SEVOL: 効果音の音量を百分率で変えた値にします 省略してもOK COURSE: 「Easy」「Normal」「Hard」「Oni」「Edit」または0〜4までの値を入力 譜面ファイルの中に複数個置けて、コース分けができます 省略してもOK LEVEL: そのコースの難易度を指定、星の数となります BALLOON: 風船音符の打数を指定するところ 風船音符の数に応じてカンマで区切り、指定します SCOREINIT: スコアの初項を設定するところ、あんまり大きすぎる値にするとオーバーフローするかも 省略してもOK ●譜面 #STARTと#ENDで囲まれた区間を譜面データとします 小節毎にカンマで区切り、それを1小節とします 1つの小節に置ける音符に制限はないですが、あんまり置きすぎると重くなります (32768個のノーツを1小節に詰め込む真似はしない方がいいです、マジで) 0 : 休符 1 : ドン 2 : カツ 3 : ドン(大) 4 : カツ(大) 5 : 連打開始 6 : 連打(大)開始 7 : 風船連打開始 8 : 連打終了 9 : くす玉連打開始 連打開始から8までの間を連打とします、「500008」みたいに 「555558」のように同じ数字を敷き詰めるとちょっとおかしくなります //(半角スラッシュ2つ)より後はコメントとして扱われ無視されます メモ代わりに使えるかも (例) 1111, で四分音符 11111111, で八分音符 111111111111, で三連符 1111111111111111, で16分音符 といった感じです さいたま2000を表すなら 1000200010102000, 1011201020101120, 2000100020201020, 1020112110102000, こんな感じに書きます 小節の途中で改行されている場合 10002000 10102000, カンマを見つけるまで小節としません ●命令文(TJAP3ベース) #START 譜面データの開始を表します #BPMCHANGE 譜面のBPMを変更します #MEASURE / leftをrightで割った値に小節の長さを掛け算して小節の長さを変えます #SCROLL 譜面のスクロール速度をrate倍します #DELAY 以後のノーツが流れてくるタイミングをsec秒遅らせます #BMSCROLL #STARTより前に記述してください この命令がある場合、強制的に譜面のスクロールがBMSと同じような方式になります(#SCROLLの値は無視されます) #HBSCROLL #STARTより前に記述してください この命令がある場合、強制的に#BMSCROLLに#SCROLLの効果を含めたスクロール方式になります #BARLINEOFF この命令以降の小節の小節線を表示しないようにします #BARLINEON この命令以降の小節の小節線を表示するようにします #SCROLL i 判定枠を原点として複素数で表されるa+bi方向からノーツを飛ばすことができます realには実部、imagには符号付きの虚部を入力し、最後にiを書きます 四角形に強いです #SUDDEN spawn秒前に出現して、motion秒前に動き出すようになります どちらにも0を入力すると元に戻します #JPOSSCROLL sec秒かけてdirectionで指定した方向(0で左、1で右)にpxの距離を判定枠が移動します #LYRIC 歌詞...というよりlyricに記述した文字列を表示させます #END 譜面データの終わりを表します 〇tmgフォーマット tjaをギミック用に独自に拡張しちゃったフォーマットです 命令文の書き方が少し違うことを除けばtjaとほほ一緒です (新しい書き方考えるのめんどくさいし...) あと数値は分数での入力も可能です ●命令文 #START() 譜面データの開始を表します #BPMCHANGE(bpm) 譜面のBPMを変更します #MEASURE(rate) 小節の長さをrate倍にします #SCROLL(rate) 譜面のスクロール速度をrate倍します #SCROLL(real, imag) 判定枠を原点として複素数で表されるa+bi方向からノーツを飛ばすことができます realには実部、imagには虚部を入力します 四角形に強いです #SCROLL(radius, divvalue, pizzaindex) 判定枠を原点として極座標で導かれる角度、距離を複素数に変換してノーツを飛ばします 円形に強いです、複素数への変換式は下に書いておきます real = radius * cos(π / (divvalue / 2) * pizzaindex) imag = radius * sin(π / (divvalue / 2) * pizzaindex) #DELAY(sec) 以後のノーツが流れてくるタイミングをsec秒遅らせます #BMSCROLL() #STARTより前に記述してください この命令がある場合、強制的に譜面のスクロールがBMSと同じような方式になります(#SCROLLの値は無視されます) #HBSCROLL() #STARTより前に記述してください この命令がある場合、強制的に#BMSCROLLに#SCROLLの効果を含めたスクロール方式になります #BARLINEOFF() この命令以降の小節の小節線を表示しないようにします #BARLINEON() この命令以降の小節の小節線を表示するようにします #SUDDEN(spawn, motion) spawn秒前に出現して、motion秒前に動き出すようになります #JPOSSCROLL(sec, px) sec秒かけてpxの距離を判定枠が移動します #JPOSSCROLL(sec, px_x, px_y) sec秒かけて相対的に(px_x, px_y)の位置に判定枠が移動します #LYRIC(lyric) 歌詞...というよりlyricに記述した文字列を表示させます #DUMMYSTART() この命令を書いたところからノーツがダミーノーツ化します #DUMMYEND() この命令を書いたところからノーツが普通のノーツに戻ります #NOTESPAWN(mode, sec) sec秒前からmodeで指定した挙動になる modeでモードを設定、0で初期化、1で出現、2で消去(判定は残る) #JUDGEDELAY(Sec, sec) ノーツが表示される位置をsec秒ずらします #JUDGEDELAY(Pos, x, y) 判定枠を基準とした相対的な座標でノーツの表示位置をピクセル単位でずらします #JUDGEDELAY(Sec_Pos, sec, x, y) 判定枠を基準とした相対的な座標でノーツの表示位置をピクセル単位でずらし そこからノーツが表示される位置をsec秒ずらします #ANGLE(theta) ノーツが表示される角度をtheta度回転させます #SIZE(rate) ノーツが表示される大きさをrate倍にします #COLOR(red, green, brue) ノーツが表示される色を指定した値に変更します、511までOK #ALPHA(alpha) ノーツが表示される透明度を指定した値に変更します、255までOK #BARLINESIZE(width, height) 小節線の長さや幅を変更します #GRADATION(mode, motiontype, linetype, offsetsec, motionsec) おそらくこのソフトで一番難しい命令ですが、使えるようになるとすごく楽しいと思います まずこの命令文はイージング効果をノーツにかけれるようにした命令文です イージングについてはこちらを参照してください https://aketama.work/easing-list まずはmotiontypeで基底となる動作を指定します 0 : In 1 : Out 2 : InOut 3 : OutIn 次にlinetypeで主な動作を指定します 0 : Linear 1 : Sine 2 : Quad 3 : Cubic 4 : Quart 5 : Quint 6 : Expo 7 : Circ 8 : Back 9 : Elastic 10 : Bounce 最後にイージングの開始位置をoffsetsecに秒単位で相対的な指定します 次にイージング効果を乗せる命令文を指定します 対応しているのは以下の命令文です、これ以外は対応させてません #SCROLL #JUDGEDELAY #ANGLE #SIZE #COLOR #ALPHA #BARLINESIZE 対応命令文は次のように書きます #SCROLL(1 ‾ 2) #JUDGEDELAY(0‾130, 0‾130) そうしたら譜面を書いていき、満足のいくところまで書けたら#GRADATIONENDを置きます (例) #GRADATION(Set, 0, 1, 0.5, 1) //In Sineで0.5秒前から1秒かけて#SCROLLの値を1から2に変えていく #SCROLL(1‾2) #GRADATION(Start) 1020102010201020, #GRADATION(End) //この命令文よりあとの譜面にはイージングがかからなくなる 1010202010102020, #HISPEED(rate) ※#BMSCROLL()または#HBSCROLL()が有効になってないと動きません 譜面の流れてくる速度をこの命令文を置いた位置からrate倍します #INCLUDE(path) 譜面があるフォルダ内にあるファイルパスをpathに入れるとそのファイルを この命令文をおいた位置から展開します #RESETCOMMAND() 命令文の効果をすべて初期化します 命令文が多いこのシミュではありがたい存在...であってほしい #END() 譜面データの終わりを表します 〇免責とか このソフトを ・使用 ・改造 ・二次配布 した際に生じるすべての問題は使用者の責任とします なんかしらの被害を被ってもこのソフトの開発者は責任を負いかねます また、他人の著作物を個人利用の範囲を超えて配布などを行う場合自己責任でお願いします これに納得できないのであればこのソフトに関連するものを消してください 二次配布する際はLicense.txtを必ず同梱してください このソフトにおけるバグが発見されたとき、開発者はバグ修正する義務を負わないものとします このソフトにおける追加要素の要望は、開発者はその要望に応える義務を負わないものとします 〇SpecialThanks Microsoft社 VisualStudioというC#やC++などの開発環境が完備しているコードエディターを作った会社です。 山田巧さん このソフトで使っているDxLibというDirectXとWinAPIを超使いやすくまとめたライブラリを制作された方です。 あかそこさん 太鼓シミュの根底である譜面読み込みの部分を手伝ってくれた方です。 DLしてくれた皆さん DLしてくれるだけでありがたいです。 〇最後に 太鼓さん次郎とかTJAP3作った人とは別人です 完全にほぼ独学で学んで一から制作しています バグとか追加要素の報告とかはDiscordでお願いします 返信はだいたい早いです(実行は遅いかも) 〇リリースノート ver 0.1α とりあえず配布 連打とかはまだ未対応だがいつか対応させる予定 ver 0.1β いろいろバグ修正 譜面分岐を仮で追加 選曲画面を前開発してたやつから流用 ver 0.2α 譜面分岐を正式実装 スキンファイル読み込みバグを少し修正 連打追加 スタート画面を追加 ver 0.3α いろいろバグ修正 コマンドの概念を追加 ver 0.3.1α NOTESPAWNのバグ修正...? ver 0.4α いろいろバグ修正 スキン読み込みバグを強引に修正 HBSCROLLの挙動を安定化 D&Dに対応 ノルマゲージとサブタイトル実装 スキンの読み込み機構を一新 ver 0.5α いろいろバグ修正 ジャンル分けを仮対応 SongPlaySpeedの時の処理を周波数で変更するように ver 0.6α いろいろバグ修正 いろいろ本家風の挙動に変更 命令文沢山追加 #SUDDEN #JPOSSCROLL #LYRIC #ANGLE #SIZE #COLOR #GRADATION .NET Framework 4にダウングレードしたことによりWinXPまでの機種にも対応 ver 0.7α予定 ソースコード一新 選曲画面の退化 開発言語をC++に変更 処理の高速化...? 設定画面追加 ショートカットキー追加、またそれに伴いショートカットキーの設定ができるように HBSCROLLの最適化 スキンの読み込み機構変更 一部本家風の挙動に変更