StepMania5で追加した譜面順にソートしてみる

※この記事はStepMania5をソースコードからビルドすることを前提とした話になっています。

 

StepManiaに入れた譜面が多くなると「最近追加した譜面ってどれだっけ?」ってなりませんか?

StepMania5デフォルトのThemeにNewマークはあるけどアレって1回プレイしたら消えるし…

というわけで、譜面を追加した順にソートする機能を作ってみました。

 

ソースコード

https://github.com/rokudw/stepmania/tree/v5.0.12_rokudwCustom

 

タグ「v5.0.12」との差分

https://github.com/rokudw/stepmania/compare/master…rokudw:v5.0.12_rokudwCustom

 

仕組みとしては単純で、キャッシュのsscにキャッシュした時間を書き込んでそれを参照してソートしているだけです。

で、さっきこれの重大なバグに気づいたんですが、

同じPC内にあるキャッシュした時に使ったStepMania5とは異なるStepMania5を起動する時、

同名のグループフォルダ&曲フォルダがある場合キャッシュが更新されて

キャッシュした時間の情報が破壊されてしまうんですね…

使えるのか使えないのかよく分からない機能になってしまいました。

 

次回へ続くかも?

続きを読む

『KAMESOFTさん作 RPGツクールVXスクリプト「セーブファイル圧縮(VX専用)」バグ修正版』の公開

スクリプトはこちらからどうぞ。

 

KAMESOFTさん作成のRPGツクールVXスクリプト「セーブファイル圧縮(VX専用)」には

「ユーザー名に2バイト文字を含むWindowsのユーザーアカウントから

ゲームを操作するとセーブ、ロード時に強制終了する」

という不具合があり、不具合解消のためちょっとだけ修正したものになります。

機能的にはKAMESOFTさんのオリジナルと違いはありません。

 

本当はTOMY(KAMESOFT)さんのところで公開してもらうのがいいはずなのですが、

数ヶ月前にTOMYさんと連絡を試みましたが応答がないため、仕方なくこちらで公開します。

RPGツクールのスクリプトを求めてる人がこんなところに来るとは思えませんが…

 

何故今更RPGツクールVXのスクリプトを作ったのかというと、

今年の夏にRPGツクール製東方二次創作ゲーム「東方魔幻想」で有名な

hauruさんが続編にあたるゲーム「東方彩幻想」を公開した際、

上記のバグに困る人が多く、hauruさんも対応が難しいとのことだったので、

掲示板に寄せられたエラーメッセージを元に原因を調べて

急遽RPGツクールVX体験版をインストールして

ついカッとなってやってしまったわけです。

Ver1.2にて導入され、問題は解消したみたいです。よかったよかった

 

最後に関連リンク。

KAMESOFT

http://ytomy.sakura.ne.jp/index.html

ツクラー御用達のサイト。

うちもこれぐらいソフトが充実したらいいな(他人事

 

夢中迷走

http://hauru131.blog111.fc2.com/

有名なやりこみ系RPGツクール製東方二次創作ゲーム

「東方魔幻想」、「東方彩幻想」などを公開されています。

今回はこんな著名な方の力になれて嬉しかったですね。

 

TOMOのスクリプト置き場

http://tomorgss.web.fc2.com/

http://tomorgss.web.fc2.com/blog_script.html (スクリプト配布場所)

スクリプト配布場所のURLで

今回のTOMYさんのスクリプトのVX Ace移植版を公開されています。

 

続きを読む

Ubuntu14.04でwaifu2x-converterをコンパイルする

凄い人がwaifu2xを作り、それを見て凄い人達が集まり、界隈を急速に発展させていく。

一種の社会現象の始まりを見ている感じです。

Pythonで移植されたり

C++ + OpenCVで移植されたり

GUIでユーザビリティを向上させたり

と、目覚ましい勢いで進化し続けています。アツイですね。

今回は上に挙げた、waifu2xの一部機能をC++ + OpenCVで実装した

waifu2x-converterをUbuntuでコンパイルして動かしてみたいと思います。

 

事前準備

OpenCVのインストールまでの流れは以下を参考にさせていただきました。

Installing OpenCV 2.4.9 in Ubuntu 14.04 LTS – Sebastian Montabone
http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/

まずは、既にインストールしているソフトを最新にしておきます。

次に、OpenCVに必要なソフトをインストールします。お、多い…

 

OpenCVのインストール

OpenCV公式(http://opencv.org/)からソースをダウンロードします。

GitHub(https://github.com/Itseez/opencv/)からでも可?

cd先、解凍先は各自の環境に合わせてお好みでどうぞ。

インストールの準備を粛々と進めます。

参考にしたサイトでは、cmakeの結果を確認する必要があるとのことですが、

とりあえず俺はあまり気にしなくても問題なかったです。waifu2x-converterのコンパイルに失敗した時は

ここを気にしたほうがいいかもしれません。

 

いよいよOpenCVのインストール。

makeが数時間というレベルで完了まで時間がかかるので気長に待ちましょう。

 

OpenCVインストール後の設定

を行います。

多分ファイルが存在せず新規ファイルになりますが気にせずに以下を追加して保存します。

opencv.confの設定を反映させるため?に以下を実行します。

更に以下のファイルを開き、ファイルの末尾にその下の2行を書いて保存します。

再起動します。

これでOpenCVを使う準備が完了しました。

 

waifu2x-converterのコンパイル

兎にも角にもコンパイルするにはソースコードがないと始まりません。

そしてコンパイルです。OpenCVの機能を使ったプログラムのコンパイル方法は

以下を参考にさせていただきました。

LinuxでOpenCVを入れて適当なコードをコンパイルするまで
http://www.yasutomo57jp.com/2010/09/01/linux%E3%81%A7opencv%E3%82%92%E5%85%A5%E3%82%8C%E3%81%A6%E9%81%A9%E5%BD%93%E3%81%AA%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7/

何もエラーが出なければコンパイル完了です!

 

waifu2x-converterを使う

動かすのに必要な基本的なパラメータは

です。(-oは無くてもいけるけど)

デフォルトの設定は本家サイトでいうノイズ除去弱、2倍に拡大です。

Windowsペイントで拡大したのと比較した画像を用意してみました。

画像拡大しないと分かりづらいです。

(左:ペイント 右:waifu2x-converter)

cutin_actor4_l_hikaku

(使用画像掲載元:「臼井の会」(http://usui.moo.jp/frame2.html))

元々の画像のノイズが少ないので効果が少ないように思いますがそれでも一目瞭然です。

あのwaifu2xを移植したものですから当然ですね。

でも、さすがに本家waifu2xとは変換処理に若干違いがあるようです。

 

waifu2xとの違い

  1. 処理速度の違い

    waifu2x-converterはwaifu2xより変換処理が遅いようです。

    これは作者のアミーゴ(@WL_Amigo)さんの

    拙作のコンバータがメモリ喰らいなのです…

    という発言から、概ね事実だと思います。

    でかい画像を変換させるにはPCにかなりのメモリを搭載しないとダメみたいですね…

  2. 透過PNGの処理結果

    下の画像を見て下さい。

    actor4_w2x_hikaku

    (使用画像掲載元:「臼井の会」(http://usui.moo.jp/frame2.html))

    左がwaifu2x、右がwaifu2x-converterによる透過PNGを2倍に拡大した結果になります。

    透明度の情報が失われてるっぽいのはどっちも同じですが、

    明らかにwaifu2x-converterの方は結果が不自然です。

    これは今後のverUPに期待ですかね。

 

今回はUbuntuで動かしましたが、Windowsでも動くというのは

大きな進歩だと思います。マジ素晴らしいです。

作者のアミーゴさんに感謝をすると共に、

今後のwaifu2xの発展に大きく期待したいということを述べたところで、

この記事を締めたいと思います。

続きを読む

GitHubデビューしました。

https://github.com/rokudw/smcreader

超今更ですがようやく俺もGitHubにリポジトリを持つようになりました。

リポジトリに置いたSMCReaderというプログラムの内容ですが、

StepManiaの譜面ファイル(現在は.smと.sscに対応)の情報を

JSON形式で出力するだけの簡単なプログラムです。

既にありそうなプログラムですが、Haxeで書いているため、

他の様々な言語のプログラムに変換できるのが強みといえば強みです。

 

StepManiaの譜面ファイルをパースするプログラムは結構昔から作っていて、

はじめはExcel VBAで書いて、PHP、C#へと移植していきましたが、

移植していくうちにそれぞれのプログラムで細かい差異がでてきてしまい、

当然他の言語に反映するのは面倒だ、もう一本化したい、というのが

SMCReaderを作った理由です。

StepManiaとほぼ同じMITライセンスなので改変とかも自由です。

まだ出来たばかりなので機能がしょぼい、バグがたくさんあるなど

不便なところがあると思いますがこれから改善していきたいと思います。

皆様よければSMCReaderを使ってあげて下さい。

 

どうでもいい話ですがSMCReaderの「SMC」は「StepMania Chart」のことです。

続きを読む

StepMania5で遊ぼう – Edit機能にBPM倍増、半減コマンド追加

StepManiaで譜面を作る時、途中でBPMを倍にしたり半分にしたりするギミックを

入れたことのある人は多いんじゃないでしょうか?

やり方は普通、Edit画面でF7かF8を押してBPMを変更するのが普通だと思うんですが、

F7/F8だけでBPMを大幅に変更するのは正直面倒です。

BPMを変更したい箇所で1回だけBPM変更キーを押して

譜面ファイルをテキストエディタでBPMを書き換えるのもアリだと思いますが、

できればEdit画面上で一発でBPMを倍にしたり半分にしたりしたいものです。

そこで、「SHIFT+F7でBPM半減、SHIFT+F8でBPM倍増」をできるように

プログラムを改造してみたいと思います。実は結構簡単です。俺でもできるし。

 

ScreenEdit.hの編集

134行目あたり、列挙型変数EditButton内の

EDIT_BUTTON_BPM_DOWN,

の下に以下を追加

 

ScreenEdit.cppの編集

221行目あたり、

name_to_edit_button[“BPM_DOWN”]= EDIT_BUTTON_BPM_DOWN;

の下に以下を追加

 

361行目あたり、InitEditMappingsメソッド内の

m_EditMappingsDeviceInput.button[EDIT_BUTTON_BPM_DOWN][0] = DeviceInput(DEVICE_KEYBOARD, KEY_F7);

の下に以下を追加

m_EditMappingsDeviceInput.button[EDIT_BUTTON_BPM_UP][0] = DeviceInput(DEVICE_KEYBOARD, KEY_F8);

の下に以下を追加

 

2379行目あたり、
case EDIT_BUTTON_BPM_UP:
case EDIT_BUTTON_BPM_DOWN:
ブロックを変更

 

以上の修正を行ってビルドすれば完成です。

一応動作するのが確認できるように動画を作りました。

 

どうでしょう、思ったより簡単だったと思います。

というかなんでこの機能ないのか不思議に思えるくらい使える機能だと思うんですがね…

 

今回はプログラムのソースをいじって機能を追加しましたが、

もしかしてluaとか使ってこういう機能も追加できるんでしょうか?

StepMania5はluaで何でもできちゃうイメージがあるんですが…

続きを読む