<   2009年 03月 ( 10 )   > この月の画像一覧
シナリオ量とプレイ時間の概算(2)――字幕
 幻惑郷 : シナリオ量とプレイ時間の概算の続き。

 ADVの文字表示形式に似たものと、で思いついたのが映画の字幕でした。ADVと映画じゃ勝手が違いますが、比較対象として考えてみようと思います。
 調べてみたところ、映画字幕は「1秒4文字」が基本らしいです。つまり8バイト/秒であり、480バイト/分。これだと30分プレイしても約15kbにしかなりません。が、映画字幕の場合は字幕より映像の方にかなり重点が置かれています。映像と字幕、それぞれをどれくらいの時間見ているか実験した結果などがあれば、それを元に8バイト/秒を補正していい感じの時間が算出できそうなんですが……。所さんの目がテンとか万物創世記とかでやってないかなぁ、そういう実験。
[PR]
by lyricist_m | 2009-03-30 06:43 | ゲーム製作
checkkeyを試してみた。
 結果だけを述べると
・キーを同時に押した場合、ある程度の数は認識してくれる
・英字、または"CTRL"などの特殊キーは、大文字小文字のどちらで指定しても認識してくれる。

 以下、長くなるので畳みます。

More
[PR]
by lyricist_m | 2009-03-29 14:45 | NScripter
シナリオ量とプレイ時間の概算
 シナリオ量から大体のプレイ時間を算出する際、自分は1kb/分で計算してます。サクサク読み進められるシナリオだなと思ったら2kb/分。自らの経験から出た数字なのであまり正確ではないのですが、まぁ大体こんな感じではないかと。間を取って1.5kb/分でもいいかな。小説なら読む速度はもっと早くなりますが、ADVの場合はエフェクトやボイスがありますからね。あと分岐が多い場合なんかも、すんなり正解ルートに行くか回り道をするかで、総プレイ時間にかなり幅が出るでしょうし。ここらへん研究してみたいなぁ。プレイ時間をカウントしておいて、エンディングを迎えたらファイルに出力。「該当ファイルを提出してくれたらプレゼントを差し上げます!」とかやってみようか。

[追記]
 以前、うちのライターと「15kbくらいのシナリオなら10分しないで終わるよな」と話をしていたら、他のサークルメンバーからかなり怒られました。「んな早く読み終わるかい!」って。ちなみに自分とライターは読書速度が早いほうで、他のメンバーはそうでもない感じ。そんなことがあって、だいたいの平均を取って1kb/分に落ち着いた訳ですが。
 個人差があるのが問題だよなぁ。
[PR]
by lyricist_m | 2009-03-26 20:46 | ゲーム製作
checkkey×マウスジェスチャーとかできないかと思ったら無理だった。
 Ver2.91で追加されたcheckkey命令。
 ふと思ったのですが、これを使えばマウス右ボタンによるマウスジェスチャーが実現できるのでは?
 まず、textgosub内で右クリックされたらジェスチャー用ルーチンに飛ばす。ジェスチャー判定を行ない、まったく移動してなかったら通常の右クリックとして処理、移動が検知されたらジェスチャーとして認定、対応するアクションを実行する。
 うん、何とかなりそうだ。最近は吉里吉里ばっかり弄ってたから、今度のNScripterネタはこれにしようかな。

[追記]
 チェック「キー」だから、取得できるのはキーだけだよな……ということで、右クリック判定は出来ませんでした。
 右クリックも取得できるように要望を出してみようかしら。
[PR]
by lyricist_m | 2009-03-25 22:57 | NScripter
最近実装したもの
・文字数によって速度が変わるオートモード
・マウスの左ボタン長押しでスキップ

 マウス押しっぱなしでスキップは実装するのが大変でした。最初は楽にいけるなと思ったんですけどね……。とりあえずタイマーを使って何とかしましたが、もしマウスでもWindow.onKeyDownのようにssRepeatが使えたら楽に実装できたろうになぁ。
 まぁ、おかげでクリックが処理される過程とクリック待ちの動作について理解することができました。せっかくだからそこらへんをまとめて記事にしましょうかね。
 あと、どうもタイマーを使った処理が腑に落ちないというか、使い方が微妙に間違っているくさいので、タイマー関連のスクリプトを書いて読んで勉強したいと思います。次に実装する予定の「マウスカーソルの自動消去」もタイマーが絡んでくるので。
[PR]
by lyricist_m | 2009-03-25 11:19 | 吉里吉里/KAG
kag.skipModeが表すもの
 0:スキップなし
 1:クリック待ち記号まで
 2:改ページ待ち記号まで
 3:次の停止まで
 4:早送り
[PR]
by lyricist_m | 2009-03-24 00:31 | 吉里吉里/KAG
起動時の流れ
 吉里吉里を起動してからの流れを簡単にまとめてみました。


  1. startup.tjsを読み込む

  2. Initialize.tjsを読み込む

  3. Config.tjsを読み込む

  4. オン・デマンド・ローディング用の定義を行なう

  5. systemフォルダ以下を読み込む

  6. もしOverride.tjs、Override2.tjsが存在すれば読み込む

  7. KAGWindowクラスのオブジェクトを生成

  8. もしAfterInit.tjs、AfterInit2.tjsが存在すれば読み込む

  9. first.ksを実行する



 Override2.tjsとAfterInit2.tjsの2つは実行ファイルと同じフォルダにある場合にのみ読み込まれるので注意。
[PR]
by lyricist_m | 2009-03-18 23:39 | 吉里吉里/KAG
ギガ体験版
 最近、システムの参考にしようとよく体験版を落としています。プレイする時間が無くて何個も積んでいる状態なのですが、それは置いといて。今じゃギガに近い体験版もそこそこあるんですね。色んな点で、同人じゃ考えられないデカさだよなぁ。そもそも容量がギガにまで膨れ上がった原因ってなんなのでしょうか。ボイス? ムービー?
 そこまで大きかったらもう製品版化パッチをDL販売すればいいんじゃないかって気がします。そこまで体験版がデカイと、製品版インストールするよりパッチ当てる方が確実に早そうですしね。製品版が2ギガ超えるっていうなら話は別ですが。体験版と製品版で同一素材を使ってるとは限りませんが(保存品質、差し替えなどなど)、ギガ体験版を出したゲームが製品版でどのくらいのサイズになったかちょっと気になります。
[PR]
by lyricist_m | 2009-03-14 20:56 | ゲーム製作
BGM再生に失敗したら落ちた
 ver.2.90を使っていて、間違ったファイル名でbgm命令を実行したところ、エラーメッセージもなく強制的に終了してしまいました。
 以前は何もせずにスルーするだけだったような気がするのですが……やっかいですね、これ。最初、何がいけないのか全然解りませんでしたから。bgm命令を上書きしてファイルの存在確認をするようにしようかな。
[PR]
by lyricist_m | 2009-03-04 23:33 | NScripter
台詞途中での表情変更
 演出系の話もやろうかなと思ったので、新しくカテゴリ作りました。
 それではまず1発目の話題。

 台詞の途中で表情を変える、ってのはよくやる演出ですが、問題があると思うんです。
 例えば、間にクリック待ちを挟まない場合。NScripterで書くと
ld ~
「とりあえず適当な台詞/
ld ~
とりあえず適当な台詞」
 といった感じ。ですがこれって、テキストの表示速度によっては「台詞に追いついていないのに表情が変わる」こともありえますよね。自分はテキストを瞬間表示にするので、こういう演出だとまず100%こうなります。これがちょっと気持ち悪い。
 クリック待ちを挟むという手もありますが、多少テンポが悪くなるかも。クリック待ち前後のテキストを長くすれば大丈夫かな。
[PR]
by lyricist_m | 2009-03-02 21:11 | ADV演出