2006/10/20

【何か】シリーズを作ってみよう(その9)  【何か】スクロール
前回へ戻る>

今回と次回で、編成に設定された「加減速性能」に応じて、パラメーターで与えられた速度への「加減速所要時間」を自動的に算出し、加減速をおこなうメソッドsubSpeedについて解説していきます。

メソッドの中身に入る前に、加減速性能をどうやって決めるかについて考えましょう。加減速性能は、一般的に考えれば編成毎に固有の値です。よって、【何か】シリーズスクロール(ここでは“【何か】この速度で走れVer2.00”)を編成に組み込む際に、組み込みをおこなうユーザー(スクロールの利用者)が自分で決めれるようにしたいところです。メソッドsubSpeedは、ユーザーがスクロール組み込み時に入力した加減速性能を元に、加減速所要時間を算出すように書くことにします。

これを実現するためには、スクロールにおいてユーザー入力のパラメーターを受け取る方法を学ぶ必要があります。“【何か】センサー”の組み込み時に編成に渡すパラメーターの入力を求められますが、同じようなことを“【何か】シリーズ”側でもやろうという趣向です。前者がセンサー毎の固有の値になるのに対し、後者は【何か】シリーズを組み込む編成毎に固有の値になります。

例によって【何か】シリーズ・ベースキットには、この機能の雛形になる部分が用意されています。以下の部分です。

// 編成・車両スクリプト固有のパラメータを使う場合は以下の以下のコメント(//)を外して編集
//param
//{
//name 《パラメーターの名前》
//type int《またはfloat》
//default 《デフォルト値》
//range 《最小値》 《最大値》
//guide "《パラメーターの説明》"
//}

やるべきことは、上説明にも書かれている通り、param 〜 } の部分の先頭のコメントマーク(//)を外し、《〜》の部分を適切に書き換えることです。以下に、加減速性能をユーザーから受け取るべく書き換えたparamセクションのサンプルを示します。

param
{
name WizAcceleration
type float
default 5.0
range 0.1 20.0
guide "編成の加減速性能(Km/h/s)。"
}

例によって書き換えた部分のみを黄色で示しています。

順序が前後しますが、最初に〔guide〕から見ていきましょう。ここには数値の入力をSCRIPTウィザードの画面で求める際に表示する説明を書きます。ここでは“編成の加減速性能”と書いた上で、単位“(Km/h/s)”を加えています。単位がないと数値の意味がユーザーにはわかりませんから、これは明示すべきです。ちなみに「Km/h/s」は鉄道の加減速性能を示す一般的な単位で、1秒間に時速何Kmだけ加減速されるか、を意味します。

視線を先頭に戻してください。〔name〕はスクリプトから、ここで入力される数値を参照するために使う名前です。ここではWizAcceleration(Wizardから入力されるAcceleration=加速性能の意)にしています。たとえばscriptセクションに“set X WizAcceleration”と書いておいて、スクロール組み込み時にユーザーが1.0を入力すると、実際にオブジェクトに書き込まれるスクリプトは“set X 1.0”に自動的に書き換わります。

〔type〕はこの値をVRMスクリプトにおける「整数=int」「小数=float」のどちらで扱うかを決定する部分です。特に決まりはありませんが、加減速性能はスクリプトの中で「割り算」に使いますから、ここではfloatを選択しています。よくわからない人は、割り算に使う数値はfloatに、それ以外はintにしていれば実害はないでしょう。

〔default〕はユーザーがスクロール組み込み時に〔簡易Wizard〕を使用した場合、初期値として設定される値です。ここでは5.0にしてみました。鉄道の加減速性能として5.0Km/h/sは、破格の値(急加速過ぎw)ではあるのですが、鉄道模型的にはやや急加速過ぎくらいの方が動作が間延びしないのでお勧めです。まぁ、これは好みの問題ですが。ちなみに、Wikipediaによると新幹線700系の起動時加速度は2.0Km/h/sだそうです。リアルさを追求する方は、これ以下の値に改めましょう。

〔range〕は、ユーザーの入力を許可する数値の範囲で、下限値と上限値を書きます。今回の例では 0.1 〜 20.0 としています。20.0はちょっとありえない加速度ではありますが、前述したように、模型としてのメリハリを考えると、この程度の値も許容範囲のような気がします。

これで、SCRIPTウィザード使用時に、ユーザーに数値の入力を求めるダイアログを表示することが可能になります。ここで得た数値WizAccelerationを使って、加減速所要時間を自動算出するメソッドsubSpeedの中身は次回解説します。

次回へつづく>
0

コメントを書く

この記事にはコメントを投稿できません




teacup.ブログ “AutoPage”
AutoPage最新お知らせ