« 2007年06月 | メイン | 2007年08月 »

2007年07月29日

●魂響~円環の絆~ コンバータ for ONScripter

ONScripter用に 『魂響~円環の絆~』 (c)あかべぇそふとつぅ様 のシナリオを劣化移植するスクリプト

7/29)
tama_20070729b.rar
a:さっくりアイキャッチ修正だけ
b:本筋をやらずにエフェクト強化&修正。あともう少し

詳細はいずれ…

8/3)
7/26発売『魂響~円環の絆~』 のONS用コンバータです。遅ればせながら前書き。
一応同社『悠久の少年少女』用スクリプトがベースなのですが、如何せん現状一番古いもののため
全面的リライト…とはいかずとも、かなり強引に組み上げています。
悠久コンバータ自体、今見ると無茶な処理をしていたこともあって、結果注釈もなく、
1000行を越えるすぱげってぃスクリプトになってしまいました。
これで「エラーは自分で修正汁」はもはや犯罪的でありましょうや。
なのであまり参考にして頂いても…orz

いつになく早いリリースに見えますが、コマンドバトル?を実装してないので通しプレイが出来なかったり。
この週末に少し弄ってなんとかしたいと思います。
tama_20070729c.rar
とりあえず選択肢に立ち絵が被る箇所だけプチ修正。

8/5)
タイトルメニューとコマンドバトルを実装。
これである程度の外面は整ったかな?
基本的にみんなそうなんですが、以前のセーブデータは多分使えないと思います…
tama_20070805a.rar
進めている際にラベルが見つからず落ちたので修正。
って、そこのラベルみたら新シナリオみたい。魂響初プレイなのに…うーん、このまま進めるべきか…

8/19)
拡大処理をdrawbg2からdrawsp2に変更。
しかし現状のONSでは忠実な再現がやはり難しいようです。
拡大率を補正しても、補正前の画面サイズからはみ出る部分は描画されなくて手詰まり状態。
ある程度の再現性と見栄えを有してればいいかなー、と妥協してひとまずの終了へ。
tama_20070805b.rar

9/10)
ONScripter更新によって、上記描画不具合が解消。
計算を正常にさせたものをUPします。
tama_20070910.rar

●暑中お見舞い申し上げ

今週(先週?)は話題のソフトが色々発売していたようです

これはうちとしても負けていられない?

弾丸執事    一番好みだけど、WAR1.7がどうしようもない
殺戮のジャンゴ ゆすさんがきっと!
リトバス     ごめん、興味ないです…
その他      あとはよく知らない

そんなわけでG線上の魔王のつなぎも兼ねて魂響になってしまいました。
『悠久の少年少女』のスクリプト使えるかな~と思ってたのですが、色々手を加えないと無理っぽい
というか何より自分のスクリプト解読?するのが一番めんどくさかったです…

新機軸は、drawbg2による拡大縮小回転移動に手を出してみたこと
割とぐりぐり動いて満足しました。215%の罠はゆすさんに感謝!

2007年07月15日

●遥かに仰ぎ、麗しの コンバータ for ONScripter

ONScripter用に 『遥かに仰ぎ、麗しの』 (c)Will/PULLTOP様 のシナリオを劣化移植するスクリプト

細かいことはこちら

暫定公開
kani_20070624.rar
kani_20070624a2.rar
a1:ファイルオープンに失敗した場合終了するように。上手く動かない場合に参考にしてください。
a2:拡張子の大文字小文字を吸収

今後の課題はスプライト移動とスクロール、エクストラの実装、他タイトルでの動作検証など?
変換がめんどいのは仕様です。
あと、まだ殆どプレイしてないのも仕様です。

追記)
PSPで動かしてみると、タイトルの音楽演奏でいきなり落ちることが判明
1.txt の容量が大きすぎる(11MB超!)のが原因のようです(分けたら動いた)
やっぱりメモリに全部読み込んでたんですねぇ

/(^o^)\なんてこったい

今後はスクリプトサイズのことも考えて作らないと…
とりあえず現状、 本校系・分校系 に分けて対処しようかな

6/30)
kani_20070630.rar
スプライト移動を実装

7/15)
kani_20070715.rar
シナリオサイズ多少削減
手抜きでタイトルメニュー追加。nsc.pl と make0.plを全て実行し直してください…

kani_20070715a.rar
割と落ちなくなったので分校系を進めていたところ、分岐処理がおかしかったので修正。
値の10じゃなく、フラグの"10"と比較してたのか
最高でも栖香の好感度(?)9までしか上がらないから悩みました…orz
これでこちら様の攻略通りに3ルート分岐を確認。
今まで栖香ルートに入れなかった方済みません

ところでONSでプレイ(セーブ時?)するとテキストウィンドウが1ドットずつ上に上がる珍現象が…
一々セーブファイルをバイナリエディタで書き換えています
適当なところで"setwindow"しなおした方がいいのかなぁ

11/22)
上記テキストウィンドウの不具合に対応。バックログ強化。
kani_20071122a(a:12/10更新)
あとはこちらで

2008 4/5)
拡張スプライトに対応。スクリプトサイズ多少削減。他ちまちま
nsc.pl make0.pl を再度実行してください。以前のセーブデータは使えませんです。
kani_20080405a →4/6)ちょこちょこっとシステム周りを修正 → a) フラグが衝突してました。あとは一部の効果音が出ていなかった点等修正

●応用編 で かにしの編  その6 スクリプトサイズ削減

すっかりさぼってしまっていた今日この頃
ONSforPSPでのメモリ不足に泣くのは何処様も同じのようです
特にかにしのは、某エロゲ研究室様(デコードでお世話になりました)調べでは
純粋な表示テキストだけで3.85MB。
1 『僕と僕らの夏完全版』 2 『Fate/stay night』 3 『CLANNAD』
に次ぐ4番目のシナリオサイズを誇っているようです。
(もちろん調査されていないゲームの中に更に大きなものもあるでしょう)
Perlでだらだらっと出力するのが好きだったのですが、さすがに10MBを越えてしまってはどうにも…

というわけで、無駄な部分を"defsub"命令を使ってサイズ節約してみます。
極力変数を使わずに、長いスクリプトをそのまま吐いているあたりがターゲットです。
以前記事にした名前表示のところが一番削減できそうですね。

	}elsif ( $line =~ /^%00%42(?:%[0-9A-Fa-f][0-9A-Fa-f]){2}%00%00(.*?)%00(.*?)%00/ ){
		$name = $1;
		$dec = $2;
		$name =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg;
		$dec =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg;
		$dec =~ s/\{(.*?):(.*?)\}/\($1\/$2\)/gi;
		$dec =~ s/\\n/\n/gi;
		$nalocate = 220 - (length($name))*6;
		print OUT "erasetextwindow 0\n";
		print OUT "lsp 0,\":s/24,24,2;#FFFFFF$name\",$nalocate,431\n";
		print OUT "lsp 1,\"image/nmbase.jpg\",50,424\n";
		print OUT "print 1\n";
		print OUT "$dec\\\n";
		print OUT "csp 0:csp 1:print 1:erasetextwindow 1:dwavestop 0\n";

というPerlスクリプトで

erasetextwindow 0
lsp 0,":s/24,24,2;#FFFFFF少女",196,431
lsp 1,"image/nmbase.jpg",50,424
print 1
「台詞」\
csp 0:csp 1:print 1:erasetextwindow 1:dwavestop 0

こんなNスクのスクリプトを吐いています。
ここで場面によって変化するのは「名前」「名前の表示座標」「台詞」だけで、他は毎回同じです。
ノベルゲームの常として、会話が非常に多いので総計でかなりの容量を使ってしまっています。
そのため必要最低限の引数だけとって、あとは"defsub"でユーザー定義命令にしてしまいましょう。
0.txtに

*define
(略)
defsub name
defsub nend

game
*name getparam $1,%1 ;名前と座標を受け取ります erasetextwindow 0 ;ここからは今まで1.txtに吐いていた部分 lsp 0,":s/24,24,2;#FFFFFF$1",%1,431 lsp 1,"image/nmbase.jpg",50,424 print 1 return ;ユーザー定義命令終了
*nend csp 0:csp 1:print 1:erasetextwindow 1:dwavestop 0 ;ここも長いので4文字にまとめてみた return

これでシナリオ中、名前と座標の引数を自作した"name"命令に渡してやることで
最初の長ったらしいスクリプトと同様の動作をするようになりました。
Perlの方はこんな感じ

	}elsif ( $line =~ /^%00%42(?:%[0-9A-Fa-f][0-9A-Fa-f]){2}%00%00(.*?)%00(.*?)%00/ ){
		$name = $1;
		$dec = $2;
		$name =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg;
		$dec =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg;
		$dec =~ s/\{(.*?):(.*?)\}/\($1\/$2\)/gi;
		$dec =~ s/\\n/\n/gi;
		$nalocate = 220 - (length($name))*6;
		;#print OUT "erasetextwindow 0\n";
		;#print OUT "lsp 0,\":s/24,24,2;#FFFFFF$name\",$nalocate,431\n";
		;#print OUT "lsp 1,\"image/nmbase.jpg\",50,424\n";
		;#print OUT "print 1\n";
		print OUT "name \"$name\",$nalocate\n";
		print OUT "$dec\\\n";
		;#print OUT "csp 0:csp 1:print 1:erasetextwindow 1:dwavestop 0\n";
		print OUT "nend\n";

name "少女",196
「台詞」\
nend

となります。うん、すっきり
変更した結果、全体のスクリプトサイズが7.5MB、分割したものは3MB・4MB程度になりました。
まだまだサイズは大きいですが、多少なりとも余裕ができたんじゃないでしょーか
今後も過去のものを含めてちまちま削っていければと思います。

2007年07月09日

●"レコンキスタ" MajirONScripter 製作開始、そして終了

実は昨日、

・こんきすた
を再度おこなう国土回復運動。まじろんすくりぷたー第二弾遠日公開

こんなことをひっそりと注意事項に書いていたのですが、同日に当サイト相互リンク最初から一番目にして
最後から二番目の「THE PSP攻略+α ~SONYへの挑戦状」七次元さんが
復活したとともにナツメグ・レコンキスタの移植をなさっていることを電撃発表していたとついさきほど知る
これは神のタイミング!ということで本格的に製作開始する前に製作中止、遠日公開予定なし!
七次元さんに期待です、といきなりプレッシャーをかけてみる

ちなみにmjdisasm.exeの復号エラーを無視するように再コンパイルしたものを
カタハネで公開しているので、よかったらどなたさまも原作者さまに感謝しつつ使ってください。
ナツメグはやはり買わないので試せませんが、レコンキスタは復号できています
改めて、復活おめでとうございます(おめでとうは違う?

2007年07月08日

●注意事項

遅きに失した感ありありの注意事項

・こんぷらいあんす
このサイトでは主に18禁ノベルゲームのシナリオ移植を試みております。
サイト自体にはそのような性質の描写はないとはいえ、自然、対象は18歳以上の方に限られます。
また、各ゲームのシナリオ・画像、その他データは各メーカー様の著作物です。
自己責任の上での取り扱いをお願いします。

・こんてんつ
一応のメインとしてPerl用スクリプトがいくつか置いてあります。
あくまでノベルゲームのシナリオのONScripter移植を”お手伝い”するものですので、
ご自由に改変・転載してくださって構いません。そのためにPerlスクのままベタで置いているのです?

・こんせぷと
基本的にはシナリオがなぞれればそれでいいや、という低い志の元
私が寝っ転がってプレイするためだけの動機で作られています。
そのため、Perl環境を強要するという割と酷い話ですが改善予定は特にありません。
ちなみにPerl自体も素人なので色々間違っていると思います。こちらは善処したいです。

・こんばーと
Perlスクリプト、及びNScripterのスクリプトについての質問は歓迎ですが、
データの抽出及びコンバートについては原則他所様の成果物を使っているので余りお答え出来ません。
readmeを精読するなり、ぐぐるなりして頂けると助かります。

・こんぱちびりてぃ
原則、ONScripterを対象にしています。
そのため本家NScripterではエラーが出て動かないことがあります。
また、雪希4など他のNスク互換エンジン等では適宜命令を変更、PNGをJPGにするなどで
動作するかと思いますが、実行環境がないので検証は出来ません。

・こんたくと
基本的にコメントにはレスする方針です。ただし意地悪な回答にご注意
また2ch某スレでも呼べば出てきます。むしろごく普通に書き込んでいます。
メールはチェックが遅いので見落とすこともありますが、何かヤヴァイ事柄はこちらへ…
なお、誠に勝手ですが相互リンクは現在お断りさせていただいています。
もっとも、リンクして頂いている所とかをやっぱり勝手にBookmarksに追加していくので
あんまり意味はありません。リンク等は無断で是非どうぞ

・こんしゅーま
の方にお願いです。私の技術力不足ゆえかなり不親切な仕様になっています。
PSPで自作ソフトが起動出来て、コマンドラインの使い方やPerl・NScripterのスクリプトを
見て何が問題なのかが分かる方のみご使用下さい。

・こんふぃぐ
ごめんなさい、実装の優先順位が限りなく低いです…。
関係各位に陳謝

・こんぴたんす
Perlでのコンバートに重きを置いているため、Nスクのコードをガリガリ書くのはあまり好きじゃありません
そんなわけで他の移植サイト様と比べてのコアコンピタンスは…数うちゃ当たる?

・こんぱいる
何それ?美味しいのそのお饅頭。私の様な文系人間にはインタプリタがお似合いです。

・こんぴゅーた
東芝 dynabook TX/450DSBB
ただしノートのディスプレイが壊れているため、液晶モニタを付け疑似デスクトップと化して鎮座ましまし

・こんでぃしょん
心身共にイエローゲージ

・こんぷりーと
したゲームはあまりなし。
RPGはラスダン突入前で、ノベルゲームは2ルートほどクリアした時点で何故かやめること多し
せめて作成したものは最後まで検証しろという心の声が聞こえる

・こんすたんと
というわけで割とコンスタントに何か出してるようにも見えますが、
ただ気の赴くまま中途半端に書き殴ってるだけだったりします。迷惑な

・こんせんと
さらにというわけで、当サイトの作成物は自己責任にして品質無保証。
試す際には以上各種の合意がなったものとみなします。ただしのんいんふぉーむど

・こんぼく
あかべぇそふとつぅのソフト。
車輪ので動けばいいな、とは思へども思はずとのみいふなればいなや思はじ思ふかひなし

・こんきすた
を再度おこなう国土回復運動。まじろんすくりぷたー第二弾遠日公開

2007年07月01日

●ちょ、鏡花が不可…

PSPでかにしの検証プレイにして初プレイ、先週からちまちまっと進めて殿子ルート終了
全般的に丁寧な描写で好印象。だけど最初に持ってくるとちょっと肩すかしな感もあり

ONSでの問題はあんまりなかったと思います。
もっともPCと照らし合わさないと細かいエフェクトは分からないのですが。
あ、ひとつ大問題が。"Chip.arc"で、Hシーンのマスク画像は合成せずに削除して下さい。

演出面では音楽のフェードイン・アウトと画像のズームをNスクで実装…
したのはいいのだけれど、両方ともONSでは命令が対応してなかった罠 orz
ONS でも drawbg2 drawsp2 でズーム自体は出来るのですが、マスクパターン等によるエフェクトと
同時使用が出来ないのが痛いです。lsp2 をじっと待つかー

さて分校系、ほぼ一本道の本校よりフラグが複雑なので要検証です。
シナリオ自体もライターが違ってまるで別のゲームとのことでなにやら不穏な空気
あとエントリタイトルにつきる。意欲半減だ…