見出し画像

ティラノスクリプトの3D その2:背景技術

まずは、以下のフォルダ構造を参照してください。

ティラノスクリプトのtyrano側フォルダの中身

これは、皆さんが主に使うdataフォルダでない方の中身です。ティラノスクリプト自体が格納されてます。plugins/kagフォルダの中に、ティラノの各タグを実行するコードが格納されてます。一方、audio、css、html、images は、ティラノの外形を作る為のものです。残る lib フォルダは、javascriptの公開されているライブラリ群です。と言っても、結局は、jQuery とそれの拡張機能と、three.js だけです。この three.js が、3D機能の全てを提供しています。ですので、three.js で提供できる全てがティラノで実現できるはずです。
で、ここで問題があります。ティラノのthree.js のバージョンは、r132です古い!(今最新のバージョンは、r161です)全部、最新の配布物に交換したい!でも、そうすると動かなくなります。理由は、jQuery です。今のティラノのソースの書き方では、jQueryがサポートしているスクリプトライブラリーの読み込みが機能しません。一応、r147までならバージョンを上げられそうですが、今は、なるべく本体に手を入れずに、plugin を作るだけで拡張機能を実現しようと思います。
ティラノスクリプトの今後のバージョンで、jQueryのバージョンとthree.js のバージョンがどうなるのか興味津々です。
そこで方針は、今ない機能のタグ追加、バグ内蔵のタグの上書きにしました。新規機能は、光源、スカイドーム、の追加、3d_model_new のタグで、今未サポートの3Dファイルのロードを可能にすること(特にMMD)と、3d_motion で、モーションファイルの追加ロード機能、バグ内蔵対策として、 3d_gyro の挙動をそれなりにすることにしました。
残る気になる問題は、シナリオのロード・セーブです。通常のプラグインでは、そこまで考慮する必要がないのが殆どですが、3Dオブジェクトは、シナリオのそれなりの期間、シーンに留まりますから、その間でのセーブ、ロードでつじつまが合わなくなる可能性が残ります。ただこれは、ティラノがどんな方法を使っているか分からないと対処が難しいところです。
もう一つは、three.js の追加ライブラリです。バージョンが古いので、追加ライブラリもそのバージョンに合わせる必要があります。
今回、バージョンが対応してちゃんと動く公開ライブラリーは、結構注意がいるので、一応まとまった形で、以下に提供します。

これは、three.js の追加ライブラリです。最終的に、プラグインの保存フォルダ(init.ksがあるフォルダ)の中に配置します。


いいなと思ったら応援しよう!