<   2008年 04月 ( 16 )   > この月の画像一覧
セーブ/ロードサンプルをアップ
 サイトにセーブ/ロードサンプルをアップしました。右にある個人サイトへのリンクよりどうぞ。
 時間がないので簡潔に特徴を説明しますと、
・動作、外観は基本的にデフォルト準拠
・呼び出しはgosub *saveとgosub *load
・処理は統合。セーブ、ロードのどちらでも*memory_mainに飛ぶ
・文字列処理を一部別ファイルに依存
 といったところです。

 次は循環バッファを上げたいところなのですが、テストに時間が掛かりそうなので(あと良いテスト方法が思いつかない。実際に使ってみるのがいいか?)、昔作ったマウスジェスチャースクリプトを手直しして上げようかと思ってます。
[PR]
by lyricist_m | 2008-04-29 23:31 | NScripter
if文の重ねがけ
 NScripterにおけるif文とは「条件が真ならば実行文を実行し、偽ならば実行文を実行せずに次の行に制御を移す」というものです。ということで、試しにこういうものを書いてみたら動きました。

if %0 == 1 savefileexist %1,%2:if %1 == 1 loadgame %2

 %0が1ならばセーブファイルの存在確認を行い、ファイルが存在すればロードを行う、という処理です。%2にはセーブファイルの番号が入っていると思ってください。
 今までの自分はif文の前にsavefileexistを行い、条件式に&&を使って判断させていましたが、ちょっとした処理ならif文中に入れたほうがすっきりしますね。また、無駄な処理を省くことが出来ます。この例で言うなら、もしsavefileexistをif文の前に実行したら、savefileexistが必要でないif %0 != 1の場合もsavefileexistを行ってしまうわけで、その処理は無駄になってしまいます。
 まさか動かないだろうと思いつつスクリプトを書いてみましたが、実際動いたわけで。なんでも試してみるものですね。
[PR]
by lyricist_m | 2008-04-27 21:39 | NScripter
セーブ・ロードと循環バッファ
 セーブ画面の実装はほぼ終了しました。
 あとはロード画面を実装すればサンプルとして出せるかなといったところなのですが、最終目標である「セーブとロードの処理を統合する」ところまでは行っていません。まずはセーブとロードを個別に作成し、その後で統合できるから手をつけていこうかと思っています。

 また、現在NScripterで循環バッファの実装をしています。
 ログを自分で好きに弄るには循環バッファがないときついんじゃないか、と思って作り始めました。とりあえず完成はしましたがテストがまだなので、テストが終了次第、サイトのほうで公開します。
[PR]
by lyricist_m | 2008-04-27 18:47 | NScripter
defsubで自作した命令へのjump
 普通、defsubで自作した命令にgosubでジャンプすることって出来ませんよね。試したことはありませんがおそらくgetparamでつまずくんじゃないかな。セーブ・ロードのサンプルを作っていて、ふとそういうのが出来たらなと思いました。
 セーブとロードって基本的に画面構成とか処理の流れとか一緒になるじゃないですか。違ってくるのはウィンドウやらちょっとした文字列くらいのもので、セーブファイル確認してスプライト表示してボタン待ちしてってところは変わらないわけです。だったら、セーブフラグが立ってたらセーブ系の命令、立ってなかったらロード系の命令を使う、っていう風にするとすっきりするかなと。で、それをいちいちフラグ判定して0ならこっち、1ならこっちとか書いてると面倒だから、たとえばセーブ画面の初期化部分で
mov $0,"savegame2"
 みたいにしておいて、後でgosubのように呼び出せるようにするきっと楽になるんじゃないかな、と思ったのですが。でも使用する変数を固定してgosub使っても代用できるかな。ちょっと試してみます。



 余談ですが。
 先日公開した引数ライブラリを、使用する変数番号と命令名を変更して一時変数ライブラリとして、引数ライブラリと一時変数ライブラリを同時に使ってみたら、自画自賛ですがまあ使いやすいことこの上ないです。今までは、セーブで使える変数はここからここまで、クリック待ちで使えるのはここまで、という風にライブラリごとに個別に一時変数・引数用変数を確保していたので、それらがすっきりなくなるのは気持ちいいです。ただuseParamやuseTempで命令の行数が増えてしまうのが難点ですが。あとデバッグログを出すと無駄に長くなります。
[PR]
by lyricist_m | 2008-04-25 23:15 | NScripter
CatSystem2をダウンロードしてみた。
 ういんどみる製ADVゲームエンジン「CatSystem2」が公開されたので、DLしてみました。時間がないため解凍と起動以外ほとんど何も出来ていないのですが、少し気になったところが。
 とりあえずチュートリアルをさらっと動かしていたんですが。うちのノートパソコンで試してみたところ、画像描画を行うところで画面上部に変なノイズが走るんですよ。2004年秋モデルだか2005年春モデルだかの少し古いパソコンなので、おそらくエンジン設定を変更すればまともになるんでしょうが。学校のVistaじゃ普通に動きましたしね。
 暇が出来たら少し弄ってみようと思います。

[17:00追記]
 うぃんどみるのサポートページを見ながらシステム環境設定を変更してみたところ、3D―全般―バックバッファを使用するのチェックを外す、または3D―テクスチャ解像度を16bit(ハイカラー)に変更した場合、症状が改善されました。
 あと、SS取ったので貼っておきます。こんな感じに一瞬ノイズが走り、すぐ消えるという症状でした。
 マニュアルには環境依存トラブル等についての記述は無いようなので、実際に配布する際はうぃんどみるのサポートページをよく見ておくべきだと思います。
e0033501_1712293.jpg

[PR]
by lyricist_m | 2008-04-24 11:37 | ゲーム製作
フラグ反転
 mov %0,(%0 + 1) mod 2
  とすれば、%0が0なら1、1なら0が代入されます。自作した全角判定命令を書き直してisHankakuを追加する際に使用しました。
 参考にしたサイトがあるのだが、場所を忘れてしまった。
[PR]
by lyricist_m | 2008-04-23 20:19 | NScripter
NScripterのTips
 本家のNScripterページにTipsの項目を追加しました。
 まず最初はボタン戻り値一覧から。このブログで一番最初に書いたのも同じ内容でしたが、それにgetskipoffで得られる値と、numaliasの例を追加しておきました。それに合わせてブログの方も修正。
 三日に一個くらいのペースでぼちぼちやっていこうかと思います。
[PR]
by lyricist_m | 2008-04-20 09:52 | NScripter
回想サンプルをアップ
 パジャマシリーズに使った回想に、ちょっと手を入れてアップしました。
 Delusionist's Utopia > NScripter > 回想サンプル
 見た目はほとんどデフォルトそのまんま。これで画像差し替えたりすればそれなりに見えるはず。ネームウィンドウを使ってる場合は多少弄らなければなりませんが。



 あと、現状では本家が単なるファイル置き場になっているので、ブログに書いたNScripter関連の話をTipsとして本家にまとめようかと思っています。
[PR]
by lyricist_m | 2008-04-19 19:31 | NScripter
ボタンラッパー
 Delusionist's Utopiaのブログ : ボタンを(個人的に)使いやすくするで書いたものをスクリプト化してみました。Delusionist's UtopiaからDLできます。
 ボタンラッパーの利点としては
・ボタン周りが見た目的にすっきり
・サブルーチン化するから使いまわしできる
 ってとこでしょうか。また欠点としては
・普通にやったときより変数を多く使う
・ちょっとした処理でもサブルーチン化しなくてはならない
 って感じです。
 今後の課題としては、エラー処理の追加とボタン番号の自動的な確保、それとexbtnあたりに対応させることでしょうか。



 あと、ボタンラッパーを書いていてふと思いついたのですが、文字列を命令文として解釈してくれる命令があったら便利かな、と。puttextの命令版みたいなイメージです。そうしたらわざわざサブルーチン化せずとも、それぞれ命令文の含まれた文字列を渡すだけでよくなるので。
[PR]
by lyricist_m | 2008-04-18 20:11 | NScripter
windowchip命令の挙動が微妙
 少なくとも自分の意図した通りには動いてくれません。
 lspやldを使っても指定したスプライトは表示されたまんまで、同期してくれるのはsystemcal windoweraseくらいのもんだと思うのですが。
 今回のアイマスものでネームウィンドウを使っていて、喋るキャラが変わるたびに消したり出したりしてるのですが、これをwindowchip使ったら楽になるかなーと思って試してみたものの、ダメでした。
 あと、texton/textoffではスプライト系の再描画を行っていないようで、ここらへんを上手く使ったらwindoweffectを指定したテキストウィンドウと同時に表示/非表示できたりしないかなーと試した結果、こちらも玉砕。

 なるべくアイマス本編の仕様に近づけようと頑張ったのですが、ネームウィンドウあたりは残念ながら無理のようです。出しっぱなしならいいのですが、アイマスは喋るキャラが変わるたびにテキストウィンドウ共々消去→再表示なんですよね。
 そこまで再現するなら吉里吉里あたりでやらないとダメかな。



 あと、昨日アップした引数ライブラリにreadme.txtを追加しました。
 次はパジャマシリーズで使った、見た目ほぼデフォルトまんまの回想の部分でもサンプルとしてあげましょうかね。
[PR]
by lyricist_m | 2008-04-17 19:17 | NScripter