2006/3/27

スクリプトウィザードをこうするといいんじゃねーの  電波ゆんゆん
昨日の続き。
短くまとめるべく、結論からいこう。

(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でも真面目に検討対象となるでしょうし、逆に誰もそれをしないのならば、こんな機能は要らないってことなので。

以上、
改善要望っつーのはこうやってやるんだよ!!の見本でした。
0

2006/3/27  21:55

投稿者:ghost
オイラは厳密には「ソフト屋さん」じゃないので、念のため。>はやたま殿

ここに書いた程度のことは、オイラが言うまでもなく、当然中の人も考えてて、「またghostのボケが余計な煽りをやってやがる」って呆れてるって(w

問題はね。
こういうビジョンがユーザーサイドで言うとボクくらいからしか出ないってこと。この状態だと、中の人も誰にも理解されないかも知れない機能追加なんかできないよ。車両を1つでも増やした方が売れるに決まってんだから。
だからね。本気でVRMのシステム自身の改善を希望するなら、それなりに考えたものを目に見える形=具体で示して、VRMユーザーは単に見た目の良さげな車両データだけじゃ満足しないぞ、コケにしてんじゃねーぞ、っていう意志表明が必要だと思うワケ。

逆に出ないんだったら、それまでよ。誰もそこまでは望んでないってことでしょ。ボクも困らないし、むしろ車両が増えた方が単純に嬉しい。

詰まるところ、ボクはVRMをボク好みのVRMにしたいんじゃないの。ボクが「ソフト屋さん」っぽいノウハウ持ってるぞー、って自慢したいんでもないの。
キミらが不満タラタラなのが痛いほどわかるから、キミら自身の手でキミら好みのVRMを実現する方法を身につけて欲しいと願ってるワケさ。いつも言ってるように、そういうノウハウって、絶対にVRMのみならずいろんなシーンで役に立つから。

2006/3/27  21:22

投稿者:はやたま
うーん、さすがソフト屋さんだな・・・・・

http://d.hatena.ne.jp/hayatama2005/

2006/3/27  0:14

投稿者:ghost
大丈夫だとは思うけれども念のため。

沖ノ鳥島さんを責めたくて書いたワケではないので。
まぁ、こういう言い方をするのもどーかと思うんですが、I.MAGiCの中の人にはこれ以上スクリプトをわかりやすく説明する能力がないです。開発するスキルと説明するスキルってのはまったく別物で、大抵、両方を兼ね備えてないです、どんなに凄い人でも。
それを責めても何の解決にもならないので。ボクらの行動選択肢としては、こんなVRM嫌だ、と立ち去るか、開き直って自分たちで何とかするかしかないですよ、残念ながら。

で、前にも少し書きましたけど、ボクには一般的なVRMユーザー諸兄が「何がわからないか」がわからないので、ボクが自発的に解説を書くのには限界があります。なので、スクリプト会議室にガンガンわからないことを書いて欲しいと思ってます。それにボクがガンガン回答していけば・・・って、実際やってるワケですが、VRM4のリファレンスのヘボさをカバーできると思ってるので。
中の人もアホではないので、何らかの手を打ってくると思いますけど、それまでは、なんでユーザーがそこまでせにゃならんねん、っつー気もしますけど、まぁ、これはこれで面白いし、後々役に立つスキルにもなると思うので、VRMスクリプトを制覇するための事例の積み上げを皆さんと一緒にやっていきたいと思っているワケですよ。

抽象的な駄目出しをしたくなる気持ちは良くわかります。けど、それやっちゃうとね、中の人も「ユーザーはやっぱ駄目だな」って思うだけで、改善の手の打ちようがないですよ。なんで、そこはグッと堪えてですね、中の人に「ユーザーにここまでさせてるオレらって何よ」とか思わせましょう、というゲームです、VRMは(笑)。

2006/3/26  23:39

投稿者:沖ノ鳥島
腹を括ってスクリプトをゼロから勉強していきます。
ただ、意味がわからない構文がやはり出てきます。それを調べようとスクリプトリファレンスを開いても分量が多すぎて調べるのに時間がかかってしまいます。そこで、スクリプトの構文を検索する機能がスクリプトリファレンスに備わっていると非常に便利だと思います。

最近やっとポイントの制御が掴めてきました。自動運転への道は遠いです・・・

コメントを書く

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




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