日記 ('07 12月)

Menu(1)

過去ログ

2007年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2006年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2005年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2004年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2003年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
その他 最新の日記 掲示板 (ツッコミ) hossy online (↑)

12/01(Sat.)

ひとりごと Adobeのことを適当に (12.01 00:20)

にここ1年ほどAdobeのおっかけをやめている今日この頃。AIR(Adobe Integrated Runitime)とかFlex3βとかとても面白そうで、ToK本FEを作っている頃ならきっとはまっていただろうなぁと。一旦終わるともうどうでも(-・;

そこで、Adobe CS3を買ったときの事を思い返してみる。半年前に書いておけ! と思いつつ、しっかり書くと長文になるからとほったらかしにしていました。

最初に思ったのが、インターフェースが揃っているって良いなぁと言うこと。Flashがまるで同じソフト^; 昔からのFlash使いにとっては、Macromedia色が薄れたりスクリプト言語がいきなりプログラミング言語風になってVB6/VBAからVB.NETに変わるくらい困ったりしたかも知れません、と。さすがにOffice2003→2007ほどではないと思いますけれども。(いや、新しく触れる方や今後の事を考えると長期的には良いユーザインターフェースに変更することが良くても、慣れ補正のためにだいたい使い勝手が悪くなったと感じられ、叩かれますからと -・;)

もう一つは... 2次元は成熟しすぎていて、もう勝負するのはもう難しいんだなぁと、Photoshopの進化方向を見て(-・; 写真を編集する、だとか、お絵描きをする、という、もともと画像に関係するようなセミプロ~プロな層を目指していないような。価格が1桁下がるPaintShopProでもある程度の事はできるわけで。そして両方持っていても軽い後者をよく使う人がここに ...猫に小判ということです、はぃ(-・;

それはともかく、Photoshopの成功、というか知名度を元にして、3つの方向に手を伸ばしているなと感じ取れました。

1つめには、2次元のまま、同じソフトでも今まで使っていなかった層が喜ぶように機能拡張。例えばPhotoshop Extendedの計測ツールなんて、お絵描きにはまず必要ない(-・; でも医療には使える。そしてその手の専門ツールに比べたら、15万円でも安い部類に入ってしまう(-・;

2つめには、次元を1つ増やすこと。2次元がダメなら3次元。Illustrator CSの押し出しあたりから少しずつ。そしていつの間にか Acrobat 3D 8 なんていうPDFの中に3次元データを取り込めるようなものが。けれどAdobeとしてはExtended同様の傍流というイメージで、メインターゲットとしてはShadeとかLightWaveあたりを使っている方だと思うのですけれども、競合ソフトが出ないのが不思議なところ。

3つめには、同じく次元を1つ増やすのですが、Z軸方向でなくて時間軸に。FlashとかAfter EffectsとかPremiereのように。二次元の画面と二次元のマウスで三次元のものを操作するのには無理があるのか(-・; 動画関係の方がずっと人気があると思います。新聞ではSecond Lifeの記事をよく見かけても、実際に触れるのはニコニコ動画やYouTube、みたいな(-・;

AdobeとMSのターゲットがどんどん重なってきていて面白いなぁと思い、この2社だけでも追っかけていればWindows系の流行はカバーできるかなと思いつつ... 飽きましたと(駄)。

そしてこのエントリを書きながら久々にCS3を起動してみて、あ、Vista x86 + メモリ2GBだとこんなに重いんだと改めて(汗)。もしかして来年1月頃になると Leopard + CS3 + Memory4GB over な組み合わせが最強だったりしますでしょうか?(汗)

ひとりごと 最近気になるライトノベル (12.01 01:44)

現実逃避系エントリもこれでラスト(汗)。

とある方にマリみてを布教しようとしたところ、どの順番にゲットすれば良いのか分からないとのことで。正式タイトルは「マリア様がみてる キラキラまわる」などと、何冊目かが書いていない。確かにたまに本棚で並び替えるときに苦労するなぁと(汗)。そこで、今まで何冊出ているのだろうとちょっと確認。

...小説だけで31冊でしたか(-・; さすが10年間の歴史があって、最近は四半期ごとの定期リリースとなるとそれくらい。

こう、何冊目かの番号が書いていない小説は、始めに手に取る敷居を下げるためにあると聴いたことがあります。ま、最初に30巻と見るとなんだか読むのが大変そうな印象があります。一度はまるとその後は時が経つのを忘れてしまうのですけれども(-・;

マリみては淡い百合ものとしても良い感じ。ですが、それだとこう男女問わず受け入れられることもないはずで。(ところで百合をぐぐって負けた気分になったのは私だけじゃないはず、とついったから転載)

...えーと、ここでマリみての魅力についてネタバレ込みで話し始めると収拾が付かなくなるからと、(汗)、ここまではただのつかみとして、本題はマリみて小説版が分類される、ライトノベルについてということで。

ライトノベル。定義がいろいろありますが、表紙や挿絵が可愛らしい、漫画世代からその少し上に優しい小説といった感じでしょうか。10代がターゲットというと負けた気分になるから言わない(汗)。電撃文庫、富士見ファンタジア文庫、コバルト文庫などいろいろと。1冊で1時間くらいはゆうに楽しめるというコストパフォーマンスも嬉しいです。

さてコーナーを見てみると、出版不況なのに何故こんなにたくさん出ていると思うような(汗)。

漫画の場合、週刊誌に載っているものを毎週それなりに流し読みして、欲しいものだけ単行本で揃える、といった買い方があります。ジャンプ・サンデー・マガジンは100万~300万部なんてオーダで出ていて、これなら適当な興味でも目に付くと。アニメとあわせて、一時期は半ば嗜み、みたいな^;

けれども小説の雑誌は数も部数も全然少ない。それなのに種類が多いと、一体どれを選べば良いんだ、という。それでも淘汰されずまだまだ増えているのは、趣味の多様化と、blogでお勧めを紹介しあえることで欲しくなる気がおきるのかも。ユーザコミュニティーで種火が続くような。

ま、その中でも臨界点を超えると、メディアミックス化などで盛り上げようとするところが。涼宮ハルヒの憂鬱 が京アニ効果等でかなりブームになって、第二期アニメという話題があって... で、驚愕はいつ出るんですか?(-・; とか。いつの間にかリリース間隔が安定している灼眼のシャナの方が広く宣伝されているのをアニメイトで見かけたり。マリみての年4冊だったりと、定期的な燃料投下は飽きっぽい現代人をつかむには大事な要素なのかも。

(定番が続かないのは、権利が厳しくなったこととあわせて同人二次創作な人にの頭痛の種だったりもします、というのは余談として(-・; とりあえず葉鍵+月あたりをおさえておけば、そしてオフィシャル更新が少なくても同人界隈だけでブームが続く、なんていう古の時代もありました(-・; )

...また脱線気味。そして私の読みたいなと思うのは多分きっとこのあたりの傾向。

一つのストーリーが短い
構えずにさくさく読めるのが嬉しいです。伏線をたくさん挟める長編より、短編で面白いと思わせる方が難しいのではとも思います。
星新一氏のショートショートにはまっていたひととしてはわりと。もう10年ですか...
萌え系を狙いすぎていない
恋愛要素がほんわか止まり
はい、一線を超えているのを見るとなんだか負けた気分になりますから(汗
主要登場人物が少ない
鳥頭ですから(駄
変わっているようで変わらないのを見ると安心できます
頭を使わずに読める
気分転換ですから(滅
まわりの方のお勧め
Web2.0的に

そしてマリみて以外で特に最近気になっている、面白いと思った作品はというとこんな感じ。

キノの旅
王道^; キノとエルメスが一つの国を3日かけて回っていきます。国の数だけ紡がれる短編集。
キノの旅の半分は切なさで、残りの半分は皮肉で出来ていると思います(言い過ぎ)。
しにがみのバラッド。
死に縁のある者たちの世界に、死神のモモ、使い魔のダニエルが小さく干渉していく短編集。
モモの行動がかわいらしくて忘れそうになりますが、テーマが死なだけに切ないです。
ミミズクと夜の王
電撃文庫でありながら、らしくない装丁。それも読み進めると、こうでないといけないと思わせるような。
この本に関しては、ネタバレ無しに魅力を伝えることは難しいかと(汗)。一冊読み切りなのもマル。

あまり、好きだと思いこんでいる作品傾向と、実際に好きな作品から導かれる傾向が一致していないかも。まぁ、もう書いてしまったものを消す気もなく、このままで(-・;

12/15(Sat.)

同人ゲーム 東方冥異伝 (12.15 03:40)

[サークルはちみつくまさん]で、新作RPG「東方冥異伝」の情報が公開されました。ToKから3年... もうそんなにたったのか(汗)。

ここの作品のおまけ部分にちょっとだけ参加しています。今回の情報更新に入ったら、ここでもそれ関係の雑記を書いてみようと思っていたら、

さらに、コミケ限定で何かが起こるかも……?

のひとことで終わってしまっていました。ま、確かにまだ作業が全ては終わっていないし、何も起こらないかも知れないんですけれど!(駄) もう少し頑張ります...

最近かなりこればかりで、他の情報にさっぱりついていけていません。スペース大納言(仮 動作試験版も、東方巡境夜動作試験版も、RPGツクールVX体験版も殆ど触っていない、健全な追い込み生活を送っています(-・;

12/19(Wed.)

同人ゲーム 東方冥異伝#2 (12.19 03:00)

東方冥異伝のスペックについて [絵板ブラウザ「LilyWhiteCS」配布元 / tsubuさん] のblogに詳細が出ています。公式にはVista非対応と書かれていますが、一応動作確認していますとの事で。

うちでもちょっとお借りして動かしてみました。序盤だけですがVistaで問題なく動いています。と言っても Core2Dui E6600 + GeForce7900GS + Memory2GB というスペックで2Dゲーが動かないとちょっとという感じもしつつ(-・; スペックが微妙な方も、アニメーションoffにしたりと軽量化すれば、遊べないことはないんじゃないかと思います。中盤以降は試していませんです(-・;;

コミケ限定企画。作品入手だけなら時期さえ気にしなければ同人ショップでOKで、大晦日のイベントにわざわざ参加して... という事もありそうな中、来た人に何か特別なことをできるお祭り要素ありって言うのは良い感じだなと思います。他のサークルさんでもいろいろと。。

さて、一応自分の分の作業は1つ修正を残して終わっているみたいです。 ...情報が出たら追記する方向で。

ひとりごと Twitter発言を日記に組み込む (12.19 04:05)

日記の先頭に、Twitterの発言を埋め込むようにしてみました。

元ネタは公式で提供されている http://twitter.com/badges/ 。けれど、いくつか不満がありました。

というわけで、公式のjavascriptを書き換えて使ってみました。うちのようなblogでない普通の日記(-・; でも大丈夫でした。JSONPってこんなに簡単だったのか、と思えるような。

これで日記更新が無くても更新されているように見えるかも。RSSの方はTwitterには関係なく、これまで通り週1程度更新の日記分が配信されます(汗)。mixiなりTwitterなり、更新が楽な短い方へ短い方へ(汗汗)。

12/25(Tue.)

個人サイト 東方妖々夢攻略コンテンツ復活 (12.25 05:01)

冬コミ準備と日記の更新だけでいっぱいいっぱいで、掲示板とかをどんどん縮小している今日この頃です(汗)。そんな中いただいたWEB拍手のご指摘。

東方始めた頃こちらの妖Ex攻略が非常に役に立ったのですが今はもう公開していないのでしょうか。東方のコンテンツが閲覧できない状態ですが

ありがとうございます ...え"(汗)。見られないことに気付いていませんでした。何かの理由でカウンタまわりが壊れて、それでアクセスできなくなっていたようです。

というわけで 東方メモ帳 ページを復活させました。どうもありがとうございました m(_ _)m

そういえばトップページが去年の冬コミのままでした(-・; もし冬コミ頒布物の情報公開があれば差し替えます... やっぱり冬しか動いていないと言うことか(-・;;

ひとりごと Paint Shop Pro X + Python (12.25 05:17)

今回の冬コミ作業で、α付きのフルカラーpngを使って、別の画像を作るという作業がありました。その時の一コマ。

きっかけ

画像処理ソフトで同じ作業を繰り返したいときに、スクリプトやマクロを使うことがあります。

今回、数千~数万回程度の大量のコピペ作業があって、とても手作業ではできませんという。そこで、プログラムで書くか、画像処理ソフトのスクリプトで書くかというところで、〆切が短いこともあってスクリプトになりました。α付き画像をプログラムで触ったことが無く(汗)。

ソフトは普段使っているPaint Shop Pro X。最新から2世代前ですが、マクロを使うには十分です。SOURCENEXTから出ている Paint Shop Pro 9 でも多分大丈夫。

スクリプト

Microsoft Officeのマクロと同じ。作業状態を録画して、再生すると別の画像に対して同じ操作を繰り返せます。

例えば、この日記でよく使っているのが、Windowsの枠を取り除くスクリプトです。640×480のゲームのウィンドウをキャプチャするとき、枠がないと綺麗に4:3で縮小できるのに、枠があるとなんだかと思うことがあります。そんな時に。再生ボタンを一発。

これを「vistawindow640」という名前で保存しています。便利。

スクリプトの編集

スクリプトはPython言語で書かれています。ExcelのマクロがVBAで書かれているようなもの。勿論一から手で書くなんて事はなく、何か操作をするごとに自動保存されます。それをそのまま使うこともできますし、関数にまとめて使うことも出来ます。なんでもありなはず。

というわけで実験。画像の一部をコピーして、同じ画像の中の2カ所に選択領域貼り付けする、という操作をしてみました。そのファイルを開いてみると...

from PSPApp import *

def ScriptProperties():
    return {
        'Author': u'',
        'Copyright': u'',
        'Description': u'',
        'Host': u'Paint Shop Pro X',
        'Host Version': u'10.10'
        }

def Do(Environment):
    # EnableOptimizedScriptUndo
    App.Do( Environment, 'EnableOptimizedScriptUndo', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

    # Selection
    App.Do( Environment, 'Selection', {
            'General': {
                'Mode': App.Constants.SelectionOperation.Replace, 
                'Antialias': True, 
                'Feather': 0
                }, 
            'SelectionShape': App.Constants.SelectionShape.Rectangle, 
            'Start': (32,32), 
            'End': (64,64), 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

    # Copy
    App.Do( Environment, 'Copy', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

    # PasteAsNewSelection
    App.Do( Environment, 'PasteAsNewSelection', {
            'Offset': (-296,-279), 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

    # PasteAsNewSelection
    App.Do( Environment, 'PasteAsNewSelection', {
            'Offset': (-264,-279), 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

...えーと、読む気が失せるのは私だけでしょうか(-・; コメントで何をしているかはだいたい分かりますが、だいたい分かるだけです(-・; ぱっと思ったのはこのあたり。

マニュアルを探す

...どこにありますでしょうか(-・; Corel Paint Shop Pro Xインストールフォルダを探しても見つかりませんでした。

WEBを巡回していて見つけたのが、Jascが作っていた頃のドキュメント。[Jasc® Paint Shop Pro™ 9 Additional Download Resources] 末尾にある、「Scripting for Script Authors」「Paint Shop Pro 9.01 Scripting API」の2つをダウンロード。

英語は良く分かりません(-・; けれども、「文書プロパティを取ってこられる(現在の画像サイズを取得できる)」「入力ダイアログを表示できる」くらいが分かればまぁいいかと。

実行

こんな感じでざくざくと。Do関数の中身はRubyで出力しました。この方法だと、たまたま一番最後がPythonだったというだけで(-・;

def NewRasterLayer(Environment, name):
    # New Raster Layer
    App.Do( Environment, 'NewRasterLayer', {
            'General': {
                'Opacity': 100, 
                'Name': name, 
                'IsVisible': True, 
                'IsTransparencyLocked': False, 
                'LinkSet': 0, 
                'UseHighlight': False, 
                'PaletteHighlightColor': (255,255,64), 
                'GroupLink': True, 
                'BlendMode': App.Constants.BlendMode.Normal
                }, 
            'BlendRanges': {
                'BlendRangeGreen': (0,0,255,255,0,0,255,255), 
                'BlendRangeRed': (0,0,255,255,0,0,255,255), 
                'BlendRangeBlue': (0,0,255,255,0,0,255,255), 
                'BlendRangeGrey': (0,0,255,255,0,0,255,255)
                }, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

def Do(Environment):
    MakeNewFile(Environment, 'sample', 3840, 3840)
    NewRasterLayer(Environment, 'a')
    NewRasterLayer(Environment, 'b')
    NewRasterLayer(Environment, 'c')
    ImportPicture(Environment, 512, 448, 'D:/dev/working.png')
    SelectLayer(Environment, 0)
    Selection(Environment, 32, 0, 32, 32)
    Copy(Environment)
    SelectLayer(Environment, 1)
    Selection(Environment, 1632, 2976, 32, 32)
    PasteIntoSelection(Environment)
    Selection(Environment, 1664, 2976, 32, 32)
    PasteIntoSelection(Environment)
    # これが2万行ほど続く(-・;

ネスト関係がインデントでというのが最初怪しいと思っていたのですけれども、試してみるとたいしたことがないというか。原理的に括弧の閉じ忘れがなくなるのが嬉しいです。何度rubyでendを書き忘れてエラーになったことか(汗)。Pythonについての情報は[るびま]の[Rubyist のための他言語探訪 【第 1 回】 Python] くらいしか知らなくて。

自動保存されるマクロは使いにくくても(汗)、ちょっと加工すればけっこういけるかもと思いました。

オチ

このスクリプトを流すと... PaintShopPro がOutOfMemoryで落ちました(-・; 1万個くらいの操作で一旦途中経過を保存して、再実行が必要なようで。

うーん、2GBの壁というか、x86 OSだと実質1つのアプリケーションで1GB前後のメモリを消費すると危なっかしくなるのがなんだか(汗)。早くx64が流行って欲しいなと思いました。

ということを話したら、「普通それってスクリプトでなくてGDI+でやらない?」 ...はぃ、VS2008 Expressを落として出直してきます(汗)。作業手順を保存する事が目的のマクロで、きっとこんなヘビーな事は考えていないと思います、はぃ。実際Core2 Duoで1枚の画像を得るのに1時間とか、なんというか8bit機でJpeg画像を分単位をかけて展開していたようなまったり感が得られました(-・;

冬コミ焼きCDのおまけに入っている、今のままだと大変すぎてやる気がしないというのはそういうことで...

おまけ:Windowモードの枠を取り除くスクリプト

def GetGeneralSettings():
    return {
        'ExecutionMode': App.Constants.ExecutionMode.Default, 
        'AutoActionMode': App.Constants.AutoActionMode.Match, 
        'Version': ((10,1,0),1)
        }
                
def Do(Environment):
    # config
    width = 640
    height = 480

    # EnableOptimizedScriptUndo
    App.Do( Environment, 'EnableOptimizedScriptUndo', {
            'GeneralSettings': GetGeneralSettings()
            })

    # Selection
    offset = (App.ActiveDocument.Width - width) / 2
    x = offset
    y = App.ActiveDocument.Height - (height + offset)
    App.Do( Environment, 'Selection', {
            'General': {
                'Mode': App.Constants.SelectionOperation.Replace, 
                'Antialias': True, 
                'Feather': 0
                }, 
            'SelectionShape': App.Constants.SelectionShape.Rectangle, 
            'Start': (x, y), 
            'End': (x + width, y + height), 
            'GeneralSettings': GetGeneralSettings()
            })

    # Copy
    App.Do( Environment, 'Copy', {
            'GeneralSettings': GetGeneralSettings()
            })

    # PasteGraphicAsNewImage
    App.Do( Environment, 'PasteGraphicAsNewImage', {
            'CreateFromDropData': False, 
            'GeneralSettings': GetGeneralSettings()
            })

    # SelectDocument
    App.Do( Environment, 'SelectDocument', {
            'SelectedImage': 0, 
            'Strict': False, 
            'GeneralSettings': GetGeneralSettings()
            })

おまけ2:るびまゴルフ 【第 2 回】

[Rubyist Magazine 0022 号] より。

    |    |    |    |    |
801.times{|i|p -2000-i*10}
801.times{|i|p -10.*200+i}

これでパーを下回ってもというコードができあがりました(-・; これより現時点で4文字削っている方がいるようで。凄い...

12/25(Tue.)

個人サイト 東方妖々夢攻略コンテンツ復活 (12.25 05:01)

冬コミ準備と日記の更新だけでいっぱいいっぱいで、掲示板とかをどんどん縮小している今日この頃です(汗)。そんな中いただいたWEB拍手のご指摘。

東方始めた頃こちらの妖Ex攻略が非常に役に立ったのですが今はもう公開していないのでしょうか。東方のコンテンツが閲覧できない状態ですが

ありがとうございます ...え"(汗)。見られないことに気付いていませんでした。何かの理由でカウンタまわりが壊れて、それでアクセスできなくなっていたようです。

というわけで 東方メモ帳 ページを復活させました。どうもありがとうございました m(_ _)m

そういえばトップページが去年の冬コミのままでした(-・; もし冬コミ頒布物の情報公開があれば差し替えます... やっぱり冬しか動いていないと言うことか(-・;;

ひとりごと Paint Shop Pro X + Python (12.25 05:17)

今回の冬コミ作業で、α付きのフルカラーpngを使って、別の画像を作るという作業がありました。その時の一コマ。

きっかけ

画像処理ソフトで同じ作業を繰り返したいときに、スクリプトやマクロを使うことがあります。

今回、数千~数万回程度の大量のコピペ作業があって、とても手作業ではできませんという。そこで、プログラムで書くか、画像処理ソフトのスクリプトで書くかというところで、〆切が短いこともあってスクリプトになりました。α付き画像をプログラムで触ったことが無く(汗)。

ソフトは普段使っているPaint Shop Pro X。最新から2世代前ですが、マクロを使うには十分です。SOURCENEXTから出ている Paint Shop Pro 9 でも多分大丈夫。

スクリプト

Microsoft Officeのマクロと同じ。作業状態を録画して、再生すると別の画像に対して同じ操作を繰り返せます。

例えば、この日記でよく使っているのが、Windowsの枠を取り除くスクリプトです。640×480のゲームのウィンドウをキャプチャするとき、枠がないと綺麗に4:3で縮小できるのに、枠があるとなんだかと思うことがあります。そんな時に。再生ボタンを一発。

これを「vistawindow640」という名前で保存しています。便利。

スクリプトの編集

スクリプトはPython言語で書かれています。ExcelのマクロがVBAで書かれているようなもの。勿論一から手で書くなんて事はなく、何か操作をするごとに自動保存されます。それをそのまま使うこともできますし、関数にまとめて使うことも出来ます。なんでもありなはず。

というわけで実験。画像の一部をコピーして、同じ画像の中の2カ所に選択領域貼り付けする、という操作をしてみました。そのファイルを開いてみると...

from PSPApp import *

def ScriptProperties():
    return {
        'Author': u'',
        'Copyright': u'',
        'Description': u'',
        'Host': u'Paint Shop Pro X',
        'Host Version': u'10.10'
        }

def Do(Environment):
    # EnableOptimizedScriptUndo
    App.Do( Environment, 'EnableOptimizedScriptUndo', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

    # Selection
    App.Do( Environment, 'Selection', {
            'General': {
                'Mode': App.Constants.SelectionOperation.Replace, 
                'Antialias': True, 
                'Feather': 0
                }, 
            'SelectionShape': App.Constants.SelectionShape.Rectangle, 
            'Start': (32,32), 
            'End': (64,64), 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

    # Copy
    App.Do( Environment, 'Copy', {
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

    # PasteAsNewSelection
    App.Do( Environment, 'PasteAsNewSelection', {
            'Offset': (-296,-279), 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

    # PasteAsNewSelection
    App.Do( Environment, 'PasteAsNewSelection', {
            'Offset': (-264,-279), 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

...えーと、読む気が失せるのは私だけでしょうか(-・; コメントで何をしているかはだいたい分かりますが、だいたい分かるだけです(-・; ぱっと思ったのはこのあたり。

マニュアルを探す

...どこにありますでしょうか(-・; Corel Paint Shop Pro Xインストールフォルダを探しても見つかりませんでした。

WEBを巡回していて見つけたのが、Jascが作っていた頃のドキュメント。[Jasc® Paint Shop Pro™ 9 Additional Download Resources] 末尾にある、「Scripting for Script Authors」「Paint Shop Pro 9.01 Scripting API」の2つをダウンロード。

英語は良く分かりません(-・; けれども、「文書プロパティを取ってこられる(現在の画像サイズを取得できる)」「入力ダイアログを表示できる」くらいが分かればまぁいいかと。

実行

こんな感じでざくざくと。Do関数の中身はRubyで出力しました。この方法だと、たまたま一番最後がPythonだったというだけで(-・;

def NewRasterLayer(Environment, name):
    # New Raster Layer
    App.Do( Environment, 'NewRasterLayer', {
            'General': {
                'Opacity': 100, 
                'Name': name, 
                'IsVisible': True, 
                'IsTransparencyLocked': False, 
                'LinkSet': 0, 
                'UseHighlight': False, 
                'PaletteHighlightColor': (255,255,64), 
                'GroupLink': True, 
                'BlendMode': App.Constants.BlendMode.Normal
                }, 
            'BlendRanges': {
                'BlendRangeGreen': (0,0,255,255,0,0,255,255), 
                'BlendRangeRed': (0,0,255,255,0,0,255,255), 
                'BlendRangeBlue': (0,0,255,255,0,0,255,255), 
                'BlendRangeGrey': (0,0,255,255,0,0,255,255)
                }, 
            'GeneralSettings': {
                'ExecutionMode': App.Constants.ExecutionMode.Default, 
                'AutoActionMode': App.Constants.AutoActionMode.Match, 
                'Version': ((10,1,0),1)
                }
            })

def Do(Environment):
    MakeNewFile(Environment, 'sample', 3840, 3840)
    NewRasterLayer(Environment, 'a')
    NewRasterLayer(Environment, 'b')
    NewRasterLayer(Environment, 'c')
    ImportPicture(Environment, 512, 448, 'D:/dev/working.png')
    SelectLayer(Environment, 0)
    Selection(Environment, 32, 0, 32, 32)
    Copy(Environment)
    SelectLayer(Environment, 1)
    Selection(Environment, 1632, 2976, 32, 32)
    PasteIntoSelection(Environment)
    Selection(Environment, 1664, 2976, 32, 32)
    PasteIntoSelection(Environment)
    # これが2万行ほど続く(-・;

ネスト関係がインデントでというのが最初怪しいと思っていたのですけれども、試してみるとたいしたことがないというか。原理的に括弧の閉じ忘れがなくなるのが嬉しいです。何度rubyでendを書き忘れてエラーになったことか(汗)。Pythonについての情報は[るびま]の[Rubyist のための他言語探訪 【第 1 回】 Python] くらいしか知らなくて。

自動保存されるマクロは使いにくくても(汗)、ちょっと加工すればけっこういけるかもと思いました。

オチ

このスクリプトを流すと... PaintShopPro がOutOfMemoryで落ちました(-・; 1万個くらいの操作で一旦途中経過を保存して、再実行が必要なようで。

うーん、2GBの壁というか、x86 OSだと実質1つのアプリケーションで1GB前後のメモリを消費すると危なっかしくなるのがなんだか(汗)。早くx64が流行って欲しいなと思いました。

ということを話したら、「普通それってスクリプトでなくてGDI+でやらない?」 ...はぃ、VS2008 Expressを落として出直してきます(汗)。作業手順を保存する事が目的のマクロで、きっとこんなヘビーな事は考えていないと思います、はぃ。実際Core2 Duoで1枚の画像を得るのに1時間とか、なんというか8bit機でJpeg画像を分単位をかけて展開していたようなまったり感が得られました(-・;

冬コミ焼きCDのおまけに入っている、今のままだと大変すぎてやる気がしないというのはそういうことで...

おまけ:Windowモードの枠を取り除くスクリプト

def GetGeneralSettings():
    return {
        'ExecutionMode': App.Constants.ExecutionMode.Default, 
        'AutoActionMode': App.Constants.AutoActionMode.Match, 
        'Version': ((10,1,0),1)
        }
                
def Do(Environment):
    # config
    width = 640
    height = 480

    # EnableOptimizedScriptUndo
    App.Do( Environment, 'EnableOptimizedScriptUndo', {
            'GeneralSettings': GetGeneralSettings()
            })

    # Selection
    offset = (App.ActiveDocument.Width - width) / 2
    x = offset
    y = App.ActiveDocument.Height - (height + offset)
    App.Do( Environment, 'Selection', {
            'General': {
                'Mode': App.Constants.SelectionOperation.Replace, 
                'Antialias': True, 
                'Feather': 0
                }, 
            'SelectionShape': App.Constants.SelectionShape.Rectangle, 
            'Start': (x, y), 
            'End': (x + width, y + height), 
            'GeneralSettings': GetGeneralSettings()
            })

    # Copy
    App.Do( Environment, 'Copy', {
            'GeneralSettings': GetGeneralSettings()
            })

    # PasteGraphicAsNewImage
    App.Do( Environment, 'PasteGraphicAsNewImage', {
            'CreateFromDropData': False, 
            'GeneralSettings': GetGeneralSettings()
            })

    # SelectDocument
    App.Do( Environment, 'SelectDocument', {
            'SelectedImage': 0, 
            'Strict': False, 
            'GeneralSettings': GetGeneralSettings()
            })

おまけ2:るびまゴルフ 【第 2 回】

[Rubyist Magazine 0022 号] より。

    |    |    |    |    |
801.times{|i|p -2000-i*10}
801.times{|i|p -10.*200+i}

これでパーを下回ってもというコードができあがりました(-・; これより現時点で4文字削っている方がいるようで。凄い...

12/29(Sat.)

ひとりごと サイト復活 (12.29 22:55)

さて、そろそろ冬コミの準備日記更新をするかーと思っていたところに、ついったでこんなコメントを頂きました。

heppoko> ほっしーせんせいの日記につながらないから夜逃げしたんだと思ってましたよ。

...なーんと(汗)。しかも日記どころかトップページほかそこら中が見えなくなっているじゃないですか(滝汗)。

今日, 01:51 AM。各サーバーでPHPのバージョンアップ作業を行わせていただきす。PHP 5.x.x のサーバー -> PHP 5.2.5 ...

...(-・; そしてそれによって全滅する、行儀の悪いPHPで書かれたうちのサイト(汗)。環境変数が全く取れなくなってしまって...

というわけで、スタイルシート切り替えなどのブラウザ依存系の部分を消したり、ログ解析スクリプトを書き換えたりで、1/4日くらいが無かったことになってしまいました。まだコミケ注目作品すら探せていないのに。そして今回作ったものの告知もできていないのに。あー(汗)。

今年はuploaderを消したり、掲示板を消したりと、なんだか活動縮小ばかりで終わってしまいました。うーん(汗汗)。

それにしても夜逃げ状態にならなくて助かりました m(_ _)m 今回の双子シュー体験版も期待ですということで。

そして、

コミケ前に今回hossyさんが目をつけてるサークルとか書いて頂けると参考になって良いのですが…。

明日の朝までにUPします(汗)。けれど、今回あまり気になっているサークルさんがいないかも。委託待ちでもなんとかなる程度に積んでいる商用作品がたくさんあります。ツクールVXとか。まだ買っていませんけれど(-・;

12/30(Sun.)

同人ゲーム 今回の出し物 (12.30 00:00)

[はちみつくまさん] で未公開の情報をリークして良いのかなと思い... いくらなんでも直前ですし、良いですよね(汗)。

という、いつもどおりのマニュアル作成でした。

いつもと少し違うのは、HTMLhelpでないということ。A6 32P相当で、コミケ限定で印刷物も付いてくるそうです。

ま、DVDに入っているPDFでも殆ど変わらないわけですけれども。容量のために解像度と背景画像を削って、後の内容はそのままです。というより、印刷版では間に合わなかった調整が一部入っているとか(汗)。

PDFはこんな感じ。左が印刷用の入稿データ、右がPDF版。

色使いとか

いやぁ、これならフルカラーじゃなくて2色刷で十分って言われるような無駄遣い(汗)。これは原稿作成用のInDesignを触り始めたのが12月に入ってから(-・; というのが理由ではなくて、単にセンスがないだけです。

[無銭舞]さんのタイガークエストⅤのマニュアルがとても綺麗で、もうなんというか羨ましい^;

多分こんな機会はもうないと思いますけれども、あったらもう少し、という感じです。

それにしてもInDesignの、テンプレートを作ってあとは流し込むだけという作り方はとても嬉しいです。段落スタイル、文字スタイル、表スタイルなどいろいろと宣言できて、テンプレートを変えれば個別修正が不要という。枠の大きさ変更くらいでしょうか。AirRPG本の時に使っていたPageMakerとは、安定性が全然違う感じが。しおり付きPDFを一発で出力できるところも良い感じです。最低限のレイヤも使えて、今回くらいの規模だと言うこと無しでした。

PaintShopProのスクリプト

100×100くらいのマップ画像を、チップを自分で配置するスクリプトを書いたら、それは重いわという話でした(汗)。1つのチップが32×32で、境界処理があって、レイヤがたくさんあって...

ここまでやって諦めました、というのが、もしかすると当日おまけCDに入るかもしれません。データを渡しはしましたが、採用されるかどうかは分かりません(-・;

最後に

東方冥異伝はこれだけしか関わっていません(-・; けれども、けっこう良い感じ。マニュアルを作りながら、ボリュームがおかしいということが分かりました。40時間くらいかかるのでは?(適当) いつもどおりたくさん持ち込むそうで、14時くらいになったらすぐに入手できるくらいに空くんじゃないかなと思います。よろしければ、どうぞ。

そして、[ToKWiki] を管理しているふちけんさんが、今回も [東方冥異伝Wiki] を作られました。今回どうなるのか期待です。多分ツクールでなくてもデータ抽出されるんだろうなぁとか。どんなペースで攻略が進むか、楽しみです。

同人ゲーム 冬コミ注目作品 (12.30 00:44)

注目順にさっさといきます。

西れ-52a / はちみつくまさん / 東方冥異伝 (RPG)
一応お約束
今回も恒例の当日パッチがあるそうです、はちくまな方は多分慣れていても、東方な方はご注意下さい(-・;
西ま-24a / 大雪戦 / むかしむかしあるところにとてつもなく仲の悪いツインテールの姉妹姫様がいらっしゃいましたとさ (ACT)
大雪戦名義としては3年ぶりの作品。まわるめいどさんをねみぎ等、他の所で活躍されているようですけれども。
体験版の感じ、アイテムの回収度で難易度が変わってくる。ツインテールを引っこ抜いて投げて、マリオUSAな感じのする作品。リーフ星人が出てきたあたりでもう正式版をゲットするしか^;
Blogによると、今一番流行りのツインテールも出るそうです
西れ-30a / PlatineDispositif / スペース大納言(仮 (ACT)
掘って連鎖が気持ちいい。WORKSLOGにある、人を選びすぎるぶっ飛んだパッケージも^;
動作試験版ではアイテムを「赤2 青1 緑2 黄1 禁1」だけ回収しました。ボスの倒し方も2通り発見しました。隠し要素を見つけたと思ってそこで安心すると負けなゲーム(汗)。
紫雨信者としては外せません
西ほ-24a / 永久る~ぷ / TWilight refrAIN体験版 (縦STG)
TWINS信者としては(略)。 ...なんだか遊んでみた感じがどうのというより、サークルさん指定ばかりのような注目作品(汗)
速攻撃破が真実のシナリオに結びつくというあたり、パターン化がかなり大事になりそうです
頒布価格無料 & 再配布自由と言うことで、コミケで手に入れなくても大丈夫という気もするのですが、それでも手に入れたいです
西れ-27a / 橙汁 / 空飛ぶ赤いワイン樽 ~A Diary of Little Avidtor~ (縦STG)
スグリがEasyぎりぎり、Normalは6面がクリアできない程度の腕前です(汗)。それでもきゅぴシュ~からのファンですし、外すわけには、みたいな。
西み-10b / 九陣 / クォータニオン ハーフ版 (ARPG)
ムービーとスクリーンショットから、よく動くなぁと言うのと、製作にものすごく手間がかかっているなぁと言う事を感じます
西ま-27b / えーでるわいす / ether vapor (全方位STG)
プロモーション動画が格好良くて気になっているところ。STGな方には注目作らしいとか
西れ-33b / 天然素材 / eXceed2nd-VMPIRE REX- (縦STG)
3nd同様に一応嗜んでおきた... って、cranky氏参戦ですか! 是非(汗)
斑鳩風STG。3rdよりシステム的に楽しそうで、注目です
西れ-30b / EasyGameStation / ルセッティア (経営SLG+ARPG)
手に入れば、程度に
西あ-51a / 上海アリス幻樂団 / 幺樂団の歴史4、5 (音楽CD)
西あ-51b / 黄昏フロンティア / ぱちゅコン (ACT?)
委託待ちでも良いかなと(汗)
西れ-28a / フランスパン / 小鳩ヶ丘高校女子ぐろ~部 体験版 (格闘?)
ああ、GOFが帰ってきた。 ニコニコ動画な感じ、今度は電波ソングはついてこない、かも

れ24~33あたりに真っ先に向かった後、島中に向かって、くらいの予定。上海アリスに並んで時間が尽きた前回に比べると、きっと色々掘り出し物を見つけられるんじゃないかと期待(汗)。

12/31(Mon.)

ひとりごと コミケお疲れ様でした (12.31 16:23)

気になっていた作品はだいたい手に入って、挨拶回りもある程度できてほくほくです。

それでは来年もよろしくお願いします。

Menu(2)

過去ログ

2007年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2006年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2005年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2004年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2003年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
その他 最新の日記 掲示板 (ツッコミ) hossy online (↑)

Valid XHTML 1.1! Valid CSS!

ほっしー
hossy@hossy.info