弐寺DPはじめました

音ゲーに人生を捧げた(元?)発狂十段がDPをがんばるハートフルストーリー

Textageの譜面を一列に整形して自動でスクロールするスクリプト(ブックマークレット)

この記事では、通称てふたげの譜面を整形してスクロールしてくれるスクリプトを紹介します。誤魔化し誤魔化し作った奴なので機能不足などは悪しからず

 

注意事項

  • ソフランには対応していません。BPMに合わせる全般の機能が未実装です。
  • Chrome57、Firefox51、IE11にて動作確認をしていますがSafariなどについては未確認です。
  • 譜面画像の著作権はすべてTextage様にあります。

 

動かし方

javascript:(function(d){ var tbl = d.getElementsByTagName("table").item(0); var col = tbl.rows[0].cells.length; var chart = d.createElement("table"); chart.style.padding = "0px"; chart.style.margin = "200px 0px"; chart.style.borderSpacing = "0px"; var objBody = d.getElementsByTagName("body").item(0); objBody.appendChild(chart); for(var i=col-1; i>=0; i--){ var row = chart.insertRow(chart.rows.length); row.style.padding = "0px"; row.style.margin = "0px"; row.appendChild( tbl.rows[0].cells[i] ); row.firstChild.style.padding = "0px";} scrollTo(0,99999); alert("OKボタンを押すと3秒後に始まります"); setTimeout(function(){ var id = setInterval(function(){ var y = window.pageYOffset; if(y<10){ clearInterval(id);} scrollBy(0,-3);},17);},3000);})(document)

 上記のコードを全てコピーし、ブックマークのアドレス記述欄にペーストします。あとはscriptとでも名前をつけてすぐにクリック出来るようにしとけば完成です。

分からないようであれば「ブックマークレット」でネット検索してみてください。

 

 

② お手持ちのブラウザで流したい譜面のページを通常通り開きます。

f:id:shinoIIDX:20170414201227j:plain

この時、ランダムや小節区間指定などあらゆるオプションが使えますが、ハイスピードの調節だけは忘れずに行ってください。あくまで個人的な目安ですが、BPM154のAAの場合は18くらいがちょうど良いです。

 

 

③ その状態でスクリプトを実行すると、譜面が一列になりスクロール待機画面が出ます。

f:id:shinoIIDX:20170414202708j:plain

ブラウザのズーム機能で大きさを400%くらいに変えておくと、より近い感じで見れます。

 

 

いろいろ

  • 最初に書いたコードを使う場合は、必ず一回スクロールするごとにページを更新してください。二回目以降は参照が正しく行われず譜面が消えてしまいます。何回も繰り返したい場合は、以下の分けたコードを使用すると便利です。

javascript:(function(d){ var tbl = d.getElementsByTagName("table").item(0); var col = tbl.rows[0].cells.length; var chart = d.createElement("table"); chart.style.padding = "0px"; chart.style.margin = "200px 0px"; chart.style.borderSpacing = "0px"; var objBody = d.getElementsByTagName("body").item(0); objBody.appendChild(chart); for(var i=col-1; i>=0; i--){ var row = chart.insertRow(chart.rows.length); row.style.padding = "0px"; row.style.margin = "0px"; row.appendChild( tbl.rows[0].cells[i] ); row.firstChild.style.padding = "0px";} })(document)

    整列(最初に一回)↑ ↓スクロール(以下繰り返す用)

javascript:(function(){ scrollTo(0,99999); alert("OKボタンを押すと3秒後に始まります"); setTimeout(function(){ var id = setInterval(function(){ var y = window.pageYOffset; if(y<10){ clearInterval(id);} scrollBy(0,-3);},17);},3000);})()

  • アクティブ画面でなくても動くので、ブラウザの上にメモ帳などを置いて疑似レーンカバーとかできます。動く速度自体を調節したい方はコード内後半にある scrollBy(0,-3) の-3を色々いじってみてください。マイナスが大きいほど速く動きます。
  • 途中でスクロールを終了したい時は、お手数ですがF5キーなどでページを更新するか、もしくは自分でスクロールバーを上まで持っていくなどしてください。

 

 

Todo

やっぱりとにもかくにも速度同期。ソフランの記述はtable内にもあるっぽいけど、どうやって取得して調整しよう?

規模も大きくなるだろうし次は拡張機能として書いた方がよさそう。

 

面倒くさくなって結局ソフランの無い譜面ばかり流してる未来が見える見える