スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ImageUtility021のスクリプトによる画像合成を試みる:(第1回)クレナイノツキ編

え~~~~と、今までのコンバータの製作をサボって、かねてからやってみたかった脱線企画、がある程度実を結んだので、ここに記事にしようと思います。

先日、すとーむ様の「霧雨の降る日に」において、ImageUtility021がリリースされました。
今回の更新では、スクリプトによる画像合成処理の機能が追加されました。

一見、何のことか?・・・と思われるかもしれませんが、これによりあたかもNスクでプログラムを組むのと近い感じで画像の合成処理が可能になりました。


・・・具体例としては、こんな感じです。


;ユーザー定義命令
defsub faceBlend1
defsub faceBlend2
defsub saveStand


faceBlend1 0, "沙生ポーズ2_0_376.png"
faceBlend2 0, 285-231, 157-84, "沙生ポーズ2_0_88.png"
faceBlend2 0, 291-231, 181-84, "沙生ポーズ2_0_76.png"
faceBlend2 0, 341-231, 225-84, "沙生ポーズ2_0_70.png"
faceBlend2 0, 300-231, 193-84, "沙生ポーズ2_0_52.png"
dtpImage 0
saveImage 0,"沙生ポーズ2_0_376_88_76_70_52.png",1
freeImage 0
freeImage 1

end

;ベース画像を読み込んで変数を初期化
*faceBlend1
getParam %10, $10
loadImage %10, $10
;座標補正変数を初期化
cal %13 = 0:cal %14 = 0
return

;ベース画像に差分画像を合成
*faceBlend2
getParam %10, %11, %12, $10
loadImage %10+1, $10
;座標がズレてたら補正
cal %11 += %13:cal %12 += %14
blendImage %10, %10+1, 1, %11, %12, 256, 1
;座標がマイナスだったら変数へ代入
if(%11 < 0) cal %13 = -%11
if(%12 < 0) cal %14 = -%12
return

;ベース画像のα最適化後に PNG で保存しメモリ解放
*saveStand
getParam %10, $10
dtpImage %10
saveImage %10,$10,1
freeImage %10
freeImage %10+1
return


上記はあくまで一例ですが、とても良くできています。
以前のものと異なり、複数の画像合成に優れています。

まぁ、良くできている理由が、こちらが組んだものではない、というのが最大の原因ですが(泣)。

例えば・・・・

・従来の画像合成の場合は、合成後に画像全体のサイズが狂ってしまう場合、座標の設定をやり直す必要があるが、今回の場合はそういったことをまったく気にすることなく、そのまま画像を合成できる。
・ただ合成するだけでなく、画像の省サイズ化を行うことができる。
・tlg画像から、直接pngに変換できる。(ただし、この機能に関しては現在未確認)。

・・といった関数を導入するが故の複雑な処理やカスタマイズが可能になります。


さて、こんな感じでかなり使えそうな感じがするわけですが、今回はこれを元に、

Alcotハニカム様の
クレナイノツキ

・・・の画像合成スクリプトを作ってみました。今回のスクリプトによる合成処理を導入することにより、手間を大幅に減らすことができたため時間を短縮できました、感謝。


今回の立ち絵合成プログラムの具体的な使用例は、こんな感じです。
kure_test0.jpg
kure_test8.jpg
kure_test5.jpg
kure_test4.jpg
kure_test6.jpg

・・・・なんだか立ち絵の合成処理とは全く関係無い画像もあるような気がしますが、その辺りは笑って誤魔かしていただければ、と(笑)。

いかにも「作ったばかりです!」と言わんがばかりの画像もありますが、実際その通りなのでお許しを。

それにしても、稠密に書かれた美麗なグラフィックが多いことで。
1枚1枚のグラフィックの描き込みようは、かなりのもの。

・・・これで、最低流通価格は1,780円ときたものだ!お勧めです。


・・・・・・以下が、現段階でのスクリプトの開発手記、というか愚痴です。
ご参考になれば、と。
(参考にならない場合は、そのまま寝てください。(寝る前にはトイレに行くことを強く推奨))


1月下旬
兼ねてから、imageutiliyで本格的な合成処理がどのような感じで行われるか興味があり、同プログラムがスクリプト形式(Nスクみたいな書式)で合成処理が行えるようになったため、これを機会にテストとして、クレナイノツキとアレの立ち絵の合成プログラムを作ろうとする。
量的に少ないクレナイノツキの方が最初期のテストとしては向いているので、作成に入る。
・・・のはいいのだが、これって一見シンプルそうだけど・・・意外と結構なパターンの数になるかも?と思い・・・
まずは各キャラごとに、全立ち絵の表示命令を抽出して、個別に手描きで書き換えて、どこまでできるかやってみる。


1月末
あーーーーーー、だるい。眠くて寒くてだるい。
我ながら、よくこんな面倒なことをしようと思ってみたもんだ。
これだったら、いっそのこと作成可能な全パターンを作ったほうが楽なのでは?・・と思い、ゲームに使われていないものも普通に作成される試案スクリプトの作成に入る。・・これでいいなら、少なくとも作るほうは楽だ。


2月2日
試案スクリプトが8割方できたので、ちょっと本格的に立ち上げてみて・・・後悔する羽目に。
立ち上げてから、40と数分。「BMPイメージが書き込めません。」という冗談みたいなエラーが多発。ちなみにBMP形式なんて全く使っていない。
チェックして数分、原因が発覚。
ハードディスクの空きが12.3MB?・・・不審に思い、立ち絵を見たら・・・・
「なんじゃこりゃぁぁぁぁぁあ!!」
立ち絵の製作数は2万数千枚、20GBをオーバー。
いくら省メモリ化を考慮に入れたスクリプトでも、これでは全く意味がない!
この方法は諦めよう、誰もこれではやってくれるはずがない。


2月3日
・・・でも、このまま製作するのも手間で普通に死ねそうだ。
折衷案として・・・比較的頻繁に使われるパターンの立ち絵のみ無条件で全パターンを作成し、頻度があまり多くないタイプのものは別途抽出して、これらは手書きで・・・・
これでも、多少無駄ができるわけだが・・手間の面でもこのあたりが落としどころか?
翌朝になるが、一応スクリプトができる。
行数にして4万、約4,000枚の立ち絵が作成される。
非効率な部分もあるが、これなら妥協できると・・・思う。


2月4日
さ~~~て、お楽しみのアレを作ろうとするが・・・こちらは同じ方法では、無理。
立ち絵の合成パーツが妙に多い。これでは一部でも全パターンなんて作ったら、膨大すぎて話にならない。
表示命令の量も、ぱっと見た限りでは3倍近い。手書きでは、胃が痛くて入院しそうだ。
というわけで、ここでようやくPerlで立ち絵の表示命令をImageUtility用に、自動変換するスクリプトを作る。
・・・・・・最初からこうするべきだった。
数時間で一応、一番面倒そうな・・主役のあの人のデータを入力し、作ってみたら・・・一応動く。(バグだらけだが)。
手直しなら、手書きの方が精神的に楽ではあるが・・・う~~~~~ん。


2月7日

アレの諸データの入力が完了。
・・・でもテストの前にクレナイノツキの方をもう一度。

廃案の失敗の原因の一つは、SaveImage命令の書式に誤りがあったため、ファイルの中身が実質BMPになっていたことがわかり、修正。


2月8日

折角なので、クレナイノツキの画像の使用例のプログラムを組んでみることにする。
今回の場合は、こちらの方がおまけである。


2月10日

現在のようなヘタレ段階ではあるが、立ち上げに成功する。



・・・こんな感じです。
これはこれで、精神的には死ぬ思いをしましたが、コミュやアレと比較すれば準備運動のレベルなのだから、たまらない。

という訳で、次はアレといきたいところではありますが・・・、さて?


スポンサーサイト

comment

Secret

立ち絵の合成作業お疲れさまでしたヘイです。
自分はプログラミングなどをいま勉強中なのであまり理解することが出来ませんでしたが、いつもHARU様のブログを見てすごいと思います
今後も応援しますので頑張ってください

No title

合成作業ごくろうさまでした
ぼくはプログラミングのかけらもわからないバカなので
応援だけは人一倍してるつもりですw
胃を壊さないようにしてください(笑)

No title

ImageUtility021のスクリプトの使用状況などを
詳しく、書かれていて、今後の参考になりました。
画像座標を直さないで済むのは、手間が省けて、
とてもいいですね。

20GBとは凄いです…bmpはやたら容量を食いますからね。
立ち上げお疲れ様です。
アレが凄く気になりますね。次回が楽しみです。

前コメのレスに追記されていたようですが、
こうして、コメントを返してくださるだけでも性格が悪いとは
自分は思いません。お気遣いありがとうございます。

No title

ImageUtilityは非常に使いたいツールなのです。

使い方がよく分かっていなかったので参考になりました。
今後はこれを使わないと製作者も実行者も悲惨な目に会いそうな予感がします。

ともあれ、これからも応援しております。

No title

こちらの方に書き込むのはずいぶんと久しぶりな感じですがw

OSを変更して以来(7 64bit)ImageMagicのインスト方法がよく分からなかったのでImageUtilityを使っているのですが、スクリプト形式で試したことがなかったので参考になりました。

クレナイノツキは珍しく全クリしたゲームなので楽しみがw
自分も抽出まではしたのですが、立ち絵が面倒なことが分かりそのまま放置してたりw

No title

すみません、今回のコメントに対しては先に次回記事を書いた方が有効な返答ができると思い、後回しになってしまいました。ご了承ください。


>ヘイ様

実はこちらもプログラミング自体の勉強はあまりしていないので、こちらも技術的にはかなり弱いので・・・

今回の記事で自分で作った部分は、技術というよりは力技に近いので・・・参考になるところがあると良いのですが。


>ナリ様

>プログラミングのかけらもわからないバカなので

今回のスクリプトは「Nスクと似て非なるもの」とのことですが、概念的にはONSと共通するところが多いので、興味があるならよく見ていただければ結構勉強になると思います。

新たに作成されたものはよくできています。


>NGSW様

いつもながら、コメントをありがとうございます。

>20GBとは凄いです。

当初の予定では、3万枚の立ち絵・・・pngに変換しても、6GB超なので・・・さすがにまずそうですね。

アレについては先に記事にした通り、幼なじみは大統領だったわけですが・・ご期待に沿えたでしょうか?
この作品がこちらの知る限りでは最も合成内容が複雑で、全パターンを作成したら100,000枚でも足りない量になってしまうため・・・合成方法も今までにない方法をとっております。

つまり、スクリプト内の立ち絵の表示命令を直接ImageUtility用の変換プログラムに書き換えます。
この方法で立ち絵は5,000枚以下に抑えることができますが、反面どの過程においても、わずかでもバグがあればその地点で立ち絵が表示できなくなってしまうため、えらくスリリングな内容になってしまいました。
趣味ならともかく、ビジネスではとてもやりたくない方法ですが、今回はこれしか方法がないので・・
まぁ、ゲーム自体が割りとスリリングなので(笑)そういう点ではぴったりかも・・・?

それ以前にONS用のコンバータの作成そのものがスリリングなんですけどね、忘れがちですが・・・

ちなみにゲームにもよりますが、ここまで合成が複雑だと、合成処理自体をしないでパーツのまま表示させた方が良い成果が得られるかもしれません。
「縮小した画像同士の組み合わせで、綺麗に表示できるのか?(絶対に細部にずれが生じるので。)」
・・・という致命的な命題が何とかなれば、ですが。


>今宵の空様

ImageUtilityはONSの作者自体が作っているため非常に相性がよく、小サイズ化、高速かつ低スペックで動作可能で今回のスクリプト対応である程度のカスタマイズまでできる・・・とかなりのものです。

>今後はこれを使わないと製作者も実行者も悲惨な目に会いそうな予感がします。

悲惨というよりは、好機という方が良いかもしれません。
出たばかりの段階だと注目度が違うため、更新も頻繁に行っていただけるので積極的に導入することで多くの報告をすることができます。
これが唯一の製作者側への応援や御礼になる、と思えます。


反面、知る限りでは通しで1本のゲームを作成された、という報告がないようなので実績という点では不安です。
実際バグが無かった、というわけではなく、未だに調整が必要かも?と思える部分もあります。
特にOSがXPとVistaでは動作結果が異なる可能性がある症例があり、はっきりと原因がつかめていないため、こちらではきちんと報告ができないところもあります。

こういった場合は、こちら一人で調べるだけでは量的に不十分です。
対応や報告をするにも、相応の知識が要求される場合もありえます。

予断になりますが、画像や変換に関しても細かい部分までみれば、現地点ではImageMagickや七次元様のpng2mjpg_slowの方が優れている部分もあります。
いずれにしても、報告は量が重要です。
クレナイノツキの合成プログラムが大勢の方に試して頂ければ、と思います。


>tales fan様

最後にコメントを頂いたのが6月あたりだと思います、お久しぶりです。
こちらの対応が悪いせいかもしれませんが、以前コメントを頻繁に送っていた方もある程度に時間がたつと、なかなか貰えなくなってしまうことも多いため再びこうしてコメントをいただける事が嬉しいです。

クレナイノツキを全クリとは・・・実はこちらはまだです(笑)。

同じ系列会社なので、幼なじみは大統領とスクリプトは同じですが、クレナイノツキは同じように見えて取り掛かりは比較的易しそうですが、いざ作ってみると結構厄介なあたりは、幼なじみは大統領とは真逆な性質があります。
・・まだスクリプトで理解できていない部分もあるので、どこまでできるかはわかりませんが、体験版を仕上げるまでは最低でも行いますので、よろしくお願いします。

ちなみに、ImageMagickに関しては8.5.2より後で出たものに関してはこちらも正常動作が確認できません。
(インストールはできます。)・・こちらはVistaです。Herbas様でも同様のようです。
こういったブログをやっていると、7を搭載したマシンを欲しくなりますが、手に入れたとしてもこのブログ自体いつまで持つかが疑問なのが本音だったり。

No title

多分今年もいろいろと忙しいのでコメントはあまり出来ませんが、チェックだけは結構頻繁にしてますよw
クレナイノツキは伝奇物ということでやってみましたが、自分は結構好きな作品でした。

吉里吉里はワムソフトのように手を入れようと思えば結構なところまでカスタマイズできちゃうので面倒なことが結構ありますよね。
せめてNscripterで音声再生待ち命令や非同期での命令などができれば楽になるんですけどね・・・

やはり、そうなのですかー
ただ、現在はすとーむさんのImageUtilityがすごい性能になってきているのでそちらを使えば大抵のことはできてしまいますよね。とても助かります。
7に関しては結構気になるところも無く使えています。
XP→7なので操作感に違和感はありましたが、今のところは大丈夫な気がする・・・
7の64bit版での動作確認が必要な際は是非ww

No title

>多分今年もいろいろと忙しいのでコメントはあまり出来ませんが、チェックだけは結構頻繁にしてますよw

ブログの記事を読めば、チェックしていただいているのが解かります。こちらの記事も読んでいただける方が満足できるものばかりとは思えないので、きになるところがあったら、ご指摘いただければ、と。


>吉里吉里はワムソフトのように手を入れようと思えば結構なところまでカスタマイズできちゃうので面倒なことが結構ありますよね。

吉里吉里=ワムソフトという感が強くなっておりますが・・・そのワムに関しても細部は別物に近いほどバリエーションが多い・・あそこまで凝る必要がどこにあるのか?それでも、頑張れば何とかなる!というのが殆どなのが嬉しいやら、もどかしいのあら。


>XP→7なので操作感に違和感はありましたが、今のところは大丈夫な気がする・・・
7の64bit版での動作確認が必要な際は是非ww

Vistaで動かないものは、7でも不可・・というケースが多いのでこういった類のものがあれば、よろしくお願いしたいです。
あと、こちらの作成したコンバータでも、マシンによって、変換が極端に時間がかかったりする例もあるので・・・いくら作っても、謎だけは残る。

クレナイノツキは分岐判定が複雑で同じところをループしっぱなし・・・
プロフィール

HARU

Author:HARU

ブログ開設にあたって
管理人HARUへのメール
メール等ご連絡はこちらにお願いします。
haruharu【アット】gmail.com
アクセスカウンター
最新記事
最新コメント
カレンダー(月別)
04 ≪│2017/05│≫ 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
コンバータリンク集
今まで製作したコンバータのリンク集です。(ブランド別)
=Alcotシトラス様=
・死神の接吻は別離の味

=AXL様=
・恋する乙女と守護の楯
・キミの声が聞こえる
・Princess Frontier
・ひだまり
・Like a Butler
・Like a Butler(体験版)
・かしましコミュニケーション
・かしましコミュニケーション(体験版)

=C-side様=
・赤線街路~昭和33年の初雪~(リニューアルしました!)

=Ciel様=
・フォルト!!
・フォルト!!(体験版)

=CLAPWORKS様=
・もろびとこぞりて

=etude様=
・秋空に舞うコンフェティ

=feng様=
・青空の見える丘
・あかね色に染まる坂
・星空へ架かる橋

=Frontwing様=
・めがちゅ!(リニューアルしました!)
・きみはぐ
・そらうた(Vista対応版)
・ほしうた

=LiLiMi様=
・昇龍戦姫 天夢
・Aion Garden
・あい☆きゃん
・女神大戦

=mixed up様=
・StarTrain
・夏空少女

=PrincessSugar様=
・姫様限定!

=Ricotta様=
・プリンセスラバー!
・ワルキューレロマンツェ

=sugar pot様=
・WIZARD GIRL AMBITIOUS

=あかべぇそふとつぅ様=
・こんな娘がいたら僕はもう・・・
・その横顔を見つめてしまう~a profile~完全版

=キャラメルBOX様=
・処女はお姉さまに恋してる 2人のエルダー

=キャラメルBOXいちご味様=
・とっぱら~ざしきわらしのはなし~

=きゃんでぃそふと様=
・つよきす3学期
・つよきす full edition

=コットンソフト様=
・ナギサの

=すたじおみりすペレット様=
・チュートリアルサマー

=ステージなな様=
・ナルキッソス3rd~Die Dritte Welt~

=チュアブルソフト様=
・あまなつ

=ねこねこソフト様=
・<特集>ONSを通じて、ねこねこソフトの歴史を振り返る。
・Scarlette(スカーレット)
・ラムネ

=ゆずソフト様=
・ぶらばん!おためしばん
・ExE!おためしばん

=暁Works黒様=
・ボクがワタシになった理由~女装計画~

相互リンク
・PSP-君でもできること
管理人:さくりん様

・m-akita's Home Page
管理人:m-akita様

・奥行きの無い世界で―
管理人:ろーえんど様

・ゲーム関連日記
管理人:tales fan様

・ざれの日々の駄文置き場
管理人:ざれ様

・PSPの限界
管理人:さらぶれっど様

・fuの戯言日記
管理人:fu様

・おこのみ!R-18
管理人:エゴ様

・THE PSP攻略+α ~SONYへの挑戦状~
管理人:七次元様

・Herbasブログ
管理人:Herbas様

・ふもっふの暇人日記
管理人:モフ様

・たったひとつの冴えたやり方
管理人:NGSW様

・Snake00の移植日記
管理人:snake00様

・暇人の戯言
管理人:暇人様
検索フォーム
QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。