« DSでこんにゃく…の | メイン | こんにゃく おーおー »

2008年01月14日

●こんにゃく よれよれ

なんとか移動先選択・フラグ分岐処理を実装出来ました。テスト2
これで一応は最後まで進めるはず? 一応=セーブ不能
しかしスクリプトがそろそろ訳分からなくなってきています。
あとはシステム部分だ…。

ちなみにスクリーンショットのキャラチップもそうなんですが、特にシステム用画像などは
Nスクに対応させるために元画像を加工しなければならないことが結構あるので困っています。
PerlMagick ( ImageMagick をPerlで扱うモジュール)用のスクリプトは同梱してますけど、
色々煩雑かもしれません。 # image.pl , /system(画像フォルダ)の上で実行

たとえば上のものでは上下2パターンのチップを7キャラ分横に並べているので、横に7分割した後、
縦も2分割したものを横に繋げています。(これはなくても動作します)

1a2a3a4a5a6a7a
1b2b3b4b5b6b7b みたいなイメージの画像を

1a1b,2a2b,3a3b... と7つの画像へ切り出し・連結

PerlMagickでの処理はこんな感じで?

my $image = Image::Magick->new;
( -e "./system/EventSelectChar.png") or die;
$image->Read("./system/EventSelectChar.png");
my $tate = $image->Get('base-rows');
my $yoko = $image->Get('base-columns');

for ( $i = 0 ; $i <= 6 ; $i++ ) { my $half = $image->Clone(); $half -> Crop( x=>$yoko * $i / 7 , width => $yoko / 7 , y=>$tate * 0 / 2 ,height => $tate / 2 );
my $half2 = $image->Clone(); $half2 -> Crop( x=>$yoko * $i / 7 , width => $yoko / 7 , y=>$tate * 1 / 2 ,height => $tate / 2 );
push(@$half,@$half2); my $p = $half -> Append(stack=>false); $p -> Write("./system/EventSelectChar_$i.png"); }
undef $image;

もっとも各キャラが等間隔じゃないので、よく見ると横にゴミがついてたり。
イベントシート(未実装)の各画像(約80枚が横4列×縦21列で連結)も

$hoge -> Crop( x => $yoko / 4 * ( $i % 4 ) , width => $yoko / 4 , y=>$tate / 21 * int ( $i / 4 ) ,height => $tate / 21 );

と1行(の繰り返し)で切り出せたので凄く便利。

※改めて書くのも非常に言い訳くさいそのものですが、各データはメーカー様の著作物です。
個人的利用の範囲で利用させていただいています。ましょう。

トラックバックURL

このエントリーのトラックバックURL:
http://hitotsumori.com/x/cgi-bin/mt/mt-tb.cgi/79

コメント

更新お疲れ様です。さっそく試してみましたが
nsc.plを実行したところ
1.txtが作成されないみたい?です。
ご確認をお願いします。

すみません、aozora.pl が検証用に弄ったものでした orz
改めて差し替えました。
今度は1から作り直して試したのでおそらく大丈夫…?

確認しました。
今度は平気でした。ありがとうございます。

お、良かったです。ご確認ありがとうございます。

自分でも動かしてるのですが、立ち絵消去のタイミング等が万全じゃないようです。
まだしばし…っ

ちょこちょこWIN版で確認していますが
私には既に完璧に近く見えますよ。
いやはや、すごい再現度です。

先ほどはこっちのブログでのサポート助かりました。
ありがとうございます。

コメントする