fc2ブログ

どのみちNスクの二重起動できるようになってからでないと正式版はだしにくいのですが(FAM)

2010.01.28.Thu
デバッグをほっぽって説明書作りにかかりきりだったおかげで説明書作りの終わりは見えてきたんですが、仕事の都合で2月5日ぐらいまではろくに作業できない。
そこから説明書とデバッグと、となると2月下旬くらいにはなると見ておいたほうがいいのかな、今までの経験上。
説明書とある程度のデバッグすんだらもう1回正式版の前に更新したほうがいいのかもしれない。
多分、そのぐらいの気持ちでないとずるずると3月になっても終わってない、とかいう状況になってそう。
スポンサーサイト



まあ、ある意味計画通り(FAM)

2010.01.19.Tue
説明書書くのむっちゃ滞っています。
仕様が決まっていたとしてもそれを体系化して言葉にするのって難しいです。

説明書書いてて効果音どーしようかと改めて迷ってきた。
ペンぷろの仕様上、動的な演出の再現ってむずいので最初っから気にしてなかったんですが、ただ鳴らすだけでいいならつけれるし、それだけでもスクリプト作業に役に立つといえば役に立つ。
Nスクの二重起動ができるようになったら、別々のNスクでbgmとbgmonceを同時に使用できるか試してみよう。
できなかったら効果音はなし、もしくは使用できる拡張子はwavオンリーになります。

他には画像タグを使えるようにしようとして投げたくなったりとか。
アニメーションとかタグと透過形式がまざった形なので別々の変数を展開してOKっつーわけにいかないのね。
使えるようにするとしたら毎回どのタグ使っているかで場合分けするしかないな・・・。
当面、(楽に実装できる)ogg用のタグはともかく画像タグは使えない、ってことで。

マウス壊れた(FAM)

2010.01.15.Fri
ちょっとNスクでの実験をしようとしてへろへろ打っていたらfor文の書き方ど忘れしてた。
ずっとLuaの書き方してたからNスクに限らず半角文字で打つプログラムはluaの書式にしようとしてしまう。
なでしこは書き方とか全然違うから平気だけど、インデントしている部分を閉じたくはなる。
Luaのif~endの閉じ忘れを気付かずにエラーが直らなかったミスがまだ尾を引いているらしい。


ペンぷろは説明書書いたり説明書書くのに合わせて説明しやすい挙動に直したりとかしてます。
そろそろ前回の更新で後回しにしていた部分の修正も始めなきゃです。



例によって自分専用覚え書き。全角スペース2つをタブに置換するものとしてみること。ブーリアン、ユーザーデータ、スレッドあたりをキーにしたことはなく、関数も限られたテーブルでしか使わないので、そのあたりは考慮してない。
●Luaのテーブルはちょっと面倒な部分もあるけど、工夫すれば回避できないこともない。その例を覚えているうちにいくつか。

・テーブルのキーの値がバラバラだと#でインデックスの数をカウントできない。
→以下の関数でカウント。count(hogetable)と書くとhogetableのインデックス数を返す。

function count(argtable)
  local cnt=0
  for key in pairs(argtable) do
    cnt=cnt+1
  end
  return cnt
end


・型がテーブルの変数の中身を確認するのが大変。
→以下の関数でOK。say(hoge)と書くとhogeの型が数値、文字列、テーブル、nil関係無しに型と一緒に値を表示する(テーブルの場合はキーがテーブルの場合でも再帰的に調べる)。say1(hoge,"hoge")と書くと表示する変数の変数名も表示されるので、1回のデバッグで多くの変数を表示させる時に便利。
前回更新時にはこれを使う前と使った後とで作業効率が段違いでした。

function say(argstr)
  NSOkBox(getsaystr(argstr),"メッセージ")
end

function say1(argstr,targetstr)
  NSOkBox(getsaystr(argstr),targetstr)
end

function getsaystr(argstr)
  local rtnstr
  if type(argstr)=="number" then
    return tostring(argstr).."[数値]"
  elseif type(argstr)=="string" then
    return argstr.."[文字列]"
  elseif type(argstr)=="table" then
    rtnstr="[テーブル]".."\n"
    for key in pairs(argstr) do
      rtnstr=rtnstr..tostring(key)..","..getsaystr(argstr[key]).."\n"
    end
    return rtnstr
  elseif argstr==nil then
    return "[nil]"
  end
end

ちょっといじるつもりで大工事になっちゃうことってあるよね(FAM)

2010.01.13.Wed
2月分溜めていた用事が片付いてきたのでペンぷろの続きをやってます。
とりあえず、前回使えなくて断念したbmpcutですが、挙動がつかめました。
この命令、元のファイルが『hoge.jpg』だったとしたら『_hoge.jpg00.bmp』というファイルを吐き出します(分割させると後ろの00が別の数字になったりします)。
吐き出すファイル名は『_』+元のファイル名+『00.bmp』ということですね。
んで、『hoge\piyo\piyopiyo.jpg』というようにフォルダに入ったファイルの場合も吐き出すファイル名は『_』+元のファイル名+『00.bmp』ということになります。
この例でいうと、Nスクと同じフォルダ内の『_hoge』フォルダ内の『piyo』ファルダに『piyopiyo.jpg00.bmp』というファイルを作るということです。

説明書にやっつけでファイル名をつけるとありましたが、本当にやっつけでした。
ちなみに、該当フォルダ(この場合は『_hoge\piyo』)がない場合はなにも作らずに次の命令が実行されていきます。

該当フォルダさえ用意しておけば使える、ということがわかったので試してみるとsavescreenshotよりもスピード、必要な一時記憶キャッシュの容量ともに断然性能がいいことが判明。
前のやつは自分のパソコンで5分近くかかりましたが、こちらは30秒かかりませんでした。
つーわけで正式版ではこちらを採用することにします。

挙動のチェックが必要な機能は今のところないので、機能の安定化が一番の課題です。
ものすごく中途半端なものを公開することになってしまったので、正式版公開の前に今の公開しているやつを凍結させている部分を使えるようにしたバージョンに変えようかと思ったり思わなかったり。
どうせ説明書書くのに時間かかりそうですし。

年末どころか三が日まで終わってしまい、今更ですが(FAM)

2010.01.05.Tue
ペンぷろった~を更新しました。
散々遅らせた挙句、結局は以前使えた機能を一部停止させての公開となってしまいました。
動きを安定させるにあたり手が回らなかったので、ld命令や要素を使った立ち絵の描画やスクリプト文からの命令の取得、スクリプト文への命令の記述は今回無しで。
実用性があまりなさそうなのに使えるようにするための手間がやたらめったらとかかるld命令には殺意を覚える今日この頃です。
いっそ使わないことにしてしまえば楽だったのに、と思ったり思わなかったり。



以下、今回の更新分の解説。
基本的な操作はあまり今までと変わってません。
Nスクの上部のメニューをカスタマイズできるプラグインを採用したので、それに伴いウインドウの呼び出しや一部の設定、操作をメニューでできるようになりましたが、大体は見ればわかるかと。

今回の一番の目玉は以前にも書いた時間の設定を変えると画面のスプライトが全部変更される、という機能です。
起動した時点ですでにスプライトが表示されるようにしてあるので、そのまま反映ウインドウの部品の設定の下のほうにある時間の設定を変更してみてください。
これはNスクの命令でよくあるような、あるスプライト番号より階層が下のスプライトの画像を修正しているやり方をしているのではなく、事前に加工しておいた画像と置き換えているだけです。
やっつけで加工した画像なので不自然な部分もあるでしょうが、画面やサンプルフォルダの中身を見ればやれることの雰囲気は掴めると思います。
著作権等の問題から、一部の素材しか時間指定できるように加工していません。あらかじめご了承ください。

もう一つの機能追加はarc.nsa内の画像のキャッシュを作れることです。
従来はarc.nsa内の画像を利用しようとしたときは反映ウインドウのプレビュー画面に画像が表示されず、少し不便でした。
メニューのオプションのその他にあるNSAのキャッシュ取得を実行しますと、NSA内の画像のキャッシュを作成し、以降は裸のファイルを扱うときと同じようにプレビュー画面を確認できます。
実行するにあたり、大量にsavescreenshotを使うため、キャッシュ作成時には時間と一時的なディスク容量が必要になります。
bmpcutで切り出せりゃ、その辺もう少し融通が利いたんですが、試してみるとフォルダに入れて圧縮した分はbmpcutで切り出せなかったので断念。
時間に余裕ができたらそのあたりもう少し研究してみます。


・・・今回は機能追加がどうこうよりもLuaへの移植が大変だったような気がしなくもない。
あとは寒さとか。こたつなしで新年を迎えたのは何年ぶりだろう。
残りの部分はできるだけすばやく済ませ、はやく正式版をアップできるようがんばりたいです。