忍者ブログ

slack diary

鉄道模型シミュレーター(VRM)を紹介するホームページ「CaldiaのVRM Room」の更新情報と、Caldia本人の日常ぐだぐだ日記。

VRMで汎用的なスクリプトが書けない訳

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

VRMで汎用的なスクリプトが書けない訳

私自身が頓挫した経験とスクリプト掲示板に書かれる質問に基づいてまとめてみます。
多分moko氏の提案とずれていると思いますが、ちょっとは触れてる部分もあると思うのでそのまま続行。

1.需要が読めない
例えば分岐器なんかは「ポイントを変える」ぐらいしか機能がない訳で、分岐器専用命令も主に使う物としてsetPoint~とgetPoinnt~ぐらいしか無い訳です。(気づいたらSetEventBranchとか増えてた:笑)
しかし、実際にスクリプトを組む場合、
・列車が来る方向に切り替えたい
・自分で切り替えたい
・特定のキーで切り替えたい
・自分で切り替えることを禁止して自動にしたい
・自動だけど手動操作を優先したい
などとユーザーが望む動作基準が異なります。上記4つはただ単にポイントを切り替える機能でありながら、記述するスクリプトは全く異なることになってしまいます。まあ、この程度なら需要がある全パターンを網羅することも可能でしょう。実用性もあります。

2.連動性が無い
しかし。
・自動で動作させるのにセンサーと連動させる
・ポイントと信号も連動させたい
・複数の信号も連動させたい
・じゃあどうせなら信号に連動させて列車の速度も制御したい
・けど列車の速度は出来れば手動操作したい
・信号機は5灯式専用で
とか言われると、もうお手上げです。
ここまで来ると網羅するパターンは累乗になってくるのでスクリプトを網羅するのは難しいです。初心者ユーザーはスクリプトに触りたくない、コピペのみで動かしたいのですから5灯式信号機も3灯式信号機も全パターンを記述してやらねばなりません。やりたいならそれで良いですが、私はモチベーションが下がりました。

3.スクリプトに触りたくない
一番の問題がここ。結局のところサンプルを出来る限り公開しても動かないというユーザーがスクリプト会議室には大量に出てきました。よくあるのは重複する名前を使っていることや、参照する部品名がなかったりすること。で、スクリプトを多少とも扱っているユーザーなら「ああ、名前ダブってるのか、ここ修正すればOKだな」など即ではなくてもある程度見当はつきますが、コピペだけしているユーザーはどこをどうさわっていいのかすら理解できないため、にっちもさっちもいかず、撃沈してしまいます。彼らはそもそもメソッドや変数の意味がわかっていないので「ここを修正すれば良いんだよ」と言っても理解できない人もいます。特に複数のオブジェクトを連動させて動かす場合、名前の変更は必須になりますし、自動運転などのスクリプトはレイアウトと直結した「ワンオフ仕様」になっていいるものが大半なのでスクリプトだけ公開することも難しい訳です。

そんなこんなでどうしてもスクリプトを触ろうとすると、最低限の知識は身につけてもらわなければ扱えないし、教えることも出来ないんじゃないか、というのが個人的見解。例えがズレているかもしれないがVRMの動作基準を満たしていないノートパソコンを持ち出して「VRMが動かない、どうにかしてくれ」と言っているのと同じレベル。だったら、もう出来る限りヒントだけを提示しておいて各ユーザーに任せるしかないんじゃないか、というのが私が思い至った結論です。

ヲフ会で出た話題はおそらく「サンプルがあれば勉強しやすくなるよね?」と言った意味合いも含まれていたと思います。確かにHTMLやC,JAVAなどの言語もWeb上に大量のサンプルが上がっているからこそ、マイナー言語に比べて敷居が低く、学習しやすいと言えます。
上記に書いたようなポイント単体動作等のスクリプト動作ではサンプル提示をやってみる価値があるでしょう。しかし複数のオブジェクトが連動する、特に外部の名前参照を行うようなスクリプトの場合は少しでも学習させてから動かせるようにした方が良いかも知れません。
この命題においては私にとっても今後の課題です。
以上。

PR

コメント

最新コメント

[05/30 Caldia]
[05/19 C-PON]
[10/03 vrmkyobuilding]
[05/10 Caldia]
[05/04 USO800鉄道]