「スクリプトウィザードをこうするといいんじゃねーの」
電波ゆんゆん
昨日の続き。
短くまとめるべく、結論からいこう。
(1) 各部品のポップアップメニュー(または設定ダイアログ)からスクリプトウィザードを起動できるようにする。このとき、選択中の部品に関連するカテゴリ(headerセクションのtype属性)のスクロールのみが表示されるようにする。typeの再整理が必要かも。加えてobjectセクションのtypeに(たとえば)THISを追加し、選択中の部品が自動代入されるようにする。
(2) スクリプトウィザードで利用できるインターフェイスの拡張。現行の数値直接入力に加えて「チェックボックス/トグルボタン」もしくは「リスト/コンボボックス」が必須。これにより、スクロール記述者が数値とその意味との間に設けた抽象的な関係を、ユーザーにとって可視化する。
上記は思いっきり「中の人」向けの書き方なので、たとえば信号部品にVRM4EG収録の「【gws/1.0】時限式自動信号機Ver1.00」を組み込むケースを例にもう少し噛み砕くと以下のような感じになる。
最初に、既にレイアウト上に部品(信号とセンサーが1つずつ)が配置済みであるとして現行VRM4ではどうしなければならないか、をサラッをまとめよう。
(1) 〔レイアウト−SCRIPTウィザード〕を起動する。
(2) 〔信号〕カテゴリの中から「【gws/1.0】時限式自動信号機Ver1.00」を探して選択する。
(3) 信号を1つ、名前の一覧の中から選ぶ。
(4) センサーを1つ、名前の一覧の中から選ぶ。
(5) 信号の灯火タイプを数値で指定する。
(6) 信号の遷移時間を数値で入力する。
こんな感じ。
下線をつけている部分が、以下に述べるアイデアで改善されると思われる部分ということになる。論より証拠、冒頭に述べた機能追加の暁に、この極めて直感的ではない組み込み手順がどのようになるかを
妄想してみよう。以下に登場するスクリーンショットはghostによる例示のためのデッチ上げなので、誤解のないように。

<ポップアップメニューからウィザードを開始>
まず、手順の最初が変わる。
〔レイアウト〕メニューではなく、今これから機能を設定しようと思っている部品に注目した状態でSCRIPTウィザードを開始する。

<関係するスクロールだけが表示>
レイアウターは選択されている部品の種類を知っているから、関係するスクロールだけをユーザーに示すことが出来る。組み込み対象となる信号部品も当然わかるから「名前の一覧」のようなわかりにくい中から探さなくていい。
流石にセンサーだけはユーザーが選ぶしかないが、これも、極めて限定的ながら「一番近くに配置されているセンサー」みたいな指定をobjectセクションで出来るようにすれば、ユーザーの負担は格段に下がる。

<数値ではなく「意味」でパラメータを選択>
数値と意味を一対一対応させるのはプログラミングの基本の1つだが、逆に言うとプログラミングに縁のない一般的なユーザーにとっては、非日常的な思考だ。だから、スクロール記述者がparamセクションで、
value 2 二灯式信号機
value 3 三灯式信号機
value 4 四灯式信号機[減速]
・
・
のように、数値と意味を紐付けて書けるようにすれば、上に示したように、ユーザーに数値ではなく意味によってのパラメータ選択を提供できる。信号のタイプくらい自動判別しろよ、という向きもあるだろうが、それを実現するには、スクロール記述者がVRM4内部の部品毎に割り振られているであろう管理IDを知っていることが前提になってしまうので、ちょっと難しいかも。
とまぁ、こんな感じ。
こうすることで、スクロールユーザーにとってみれば、VRM3以前のメニュー感覚で提供される機能を利用できるようになる。スクロール記述者は、現在の単に「SCRIPTウィザードで利用可能なマジックを提供する人」という立場から、事実上の「VRM4レイアウターに新機能を追加する人」への昇格を果たすことが出来る。
で。
有り体に言うと、私自身は現行のVRM4レイアウターでも全然困っていないので、別にこういう機能を実装して欲しいとは本気で思っていない。それよりも、早く
ブルートレインが欲しい(笑)。
逆に、ブルートレインなんかいいから、こういう機能が早く欲しい!!と思う人は、銘々で会議室にでもこのエントリのURL(
http://silver.ap.teacup.com/ghost/547.html)を添えて「こういう機能の追加きぼーん!!」と書きなさい。ある程度以上の人数が揃えばI.MAGiCでも真面目に検討対象となるでしょうし、逆に誰もそれをしないのならば、こんな機能は要らないってことなので。
以上、
改善要望っつーのはこうやってやるんだよ!!の見本でした。