[ 前へ | 目次 | 次へ ]

その他のライブラリ

ここでは、前回扱ったライブラリ以外で、よく用いるライブラリについて扱います。


より幅広い機能を提供する標準ライブラリ

標準ライブラリは、前回扱ったものが全部ではありません。 前回扱ったライブラリは、VCSSL 2.0 の頃から存在し、言語として最低限必要になる基板機能を提供しているものです。

そして VCSSL 3.0 以降では、より幅広い機能を提供するライブラリも順次増えていっています。 それらは、最初は標準ライブラリとは別扱いの位置づけでしたが、 VCSSL 3.4 の時点で多くが標準ライブラリに統合されました(旧 Open VCSSL Library など)。

以下では、実際にそららの内のいくつかを使用してみます。

基本的なデータ構造

まずは、「スタック」や「キュー」などのデータ構造を扱うライブラリです。

スタクとキューは、値を出し入れして、溜めておくための仕組みです。 両者で異なるのはデータ の取り出し順序で、 キューは入れた順に、スタックは逆順に取り出します。 つまりスタックでは、最後 に入れたデータが最初に取り出されます。

データ構造を扱うための機能は、一般にジェネリクスを用いた構造体と関数によって提供されます。 そのため、任意型の値(自作の構造体を含む)を扱う事ができます。

以下に使用例を掲載します:

上のプログラムを実行すると、VCSSL コンソールに以下のように表示されます:

スタックから値を取り出します:
2
1
キューから値を取り出します:
1
2

上の通り、スタックでは入れたのと逆順に、キューでは入れた順に、値が取り出された事が分かります。

data.Stack/Queueはスタックとキューを扱うライブラリで、詳細情報は以下のURLで参照できます。

軽量フレームワーク

描画やアニメーションなど、特別な処理を記述する必要があるものの、 頻繁に用いられるような用途に関しては、毎回同じような内容を記述しなくても済むように、 軽量フレームワークが用意され ています。

用途に応じたフレームワークを用いる事で、ゼロからプログラムを開発しなくても、 最低限 必要な部分だけを記述すれば済むようになります。

3D描画

実際に3D描画を扱うためのフレームワークを使用してみましょう:

上のプログラムを実行すると、下図のような3Dアニメーション映像が表示されます。

実行結果
実行結果

上で用いた graphics3d.Graphics3DFramework は、3D描画用途をサポートする、 アニメーション対応のフレームワークです。 詳細情報は以下の URL で参照できます。

- Graphics3DFramework リファレンス -
https://ja.vcssl.org/lib/graphics3d/Graphics3DFramework

VCSSLには、3D描画を扱うための標準ライブラリ「 Graphics3D 」が存在します。 しかし、それだけで現実的な3Dプログラムを開発するには、表示画面や描画エンジンの生成や、 アニメーションループの制御、ライトの設定など、面倒な処理を自分で記述する必要があり、 簡易用途ではやや不便です(逆に、細かい部分まで自分で調整したい場合には便利です)。

そこでgraphics3d.Graphics3DFrameworkを使用すると、 そういった面倒な部分はフレームワークが自動で行ってくれます。 そして、準備が完了したタイミングでonStart関数、 アニメーション中の画面更新タイミングでonUpdate関数を呼んでくれます。 なので、これらの関数内に目的の処理を記述するだけで、手軽に3Dアニメーションプログラムを開発できます。

なお、このフレームワークでは、あくまで面倒な部分を自動化してくれるだけなので、 独自に記述する部分に関しては標準ライブラリ「 Graphics3D 」の関数を使用する必要があります。 上のプログラムでも、モデルの生成や配置、移動などにGraphics3Dライブラリの関数を使用しています。 標準ライブラリ「 Graphics3D 」に関する詳細情報は以下のURLで参照できます。

- Graphics3D ライブラリ リファレンス -
https://ja.vcssl.org/Graphics3D

2D描画

なお、3D同様、2D描画用のフレームワークも用意されています。使用例を以下に掲載します:

上のプログラムを実行すると、ウィンドウに線、長方形、楕円が表示されます。

実行結果
実行結果

上で用いたgraphics2d.Graphics2DFrameworkは、2D描画用途をサポートする、 アニメーション対応のフレームワークです。詳細情報は以下のURLで参照できます。

- Graphics2DFramework ライブラリ リファレンス -
https://ja.vcssl.org/lib/graphics2d/Graphics2DFramework

描画関数などに関しては、標準ライブラリ「 Graphics2D 」を使用する必要があります。詳細情報は以下のURLで参照できます。

- Graphics2D ライブラリ リファレンス -
https://ja.vcssl.org/lib/Graphics2D

グラフのプロット

独立したソフトウェアのようなツールとやり取りするAPIライブラリも存在します。 例えば、グラフソフトと通信し、グラフをプロットする機能を提供するライブラリなどが挙げられます。 ただし、そうした機能は実装規模が比較的が大きいため、サポートされるかどうかは、処理系開発元の判断によります。 グラフソフト関連の機能などは、数値計算分野に向けた処理系ではサポートされるかもしれませんし、 全く必要の無い用途に向けてはサポートされないかもしれません。

以上のような事を前提とした上で、 数値計算用の2D/3Dグラフソフトを制御するためのライブラリ仕様が、以下のURLの通りに用意されています。

- 2次元グラフ tool.Graph2D -
https://ja.vcssl.org/lib/tool/Graph2D
- 3次元グラフ tool.Graph3D -
https://ja.vcssl.org/lib/tool/Graph3D

上の「 tool.Graph2D/Graph3D 」ライブラリがサポートされている処理系においては、 上記仕様の通りに、2D/3Dグラフをプロットする事ができます。

2Dグラフ

実際の使用例は、細かい部分は処理系依存ですが、大まかに以下のようになります。まずは、2Dグラフの場合です:

実行すると、以下のようなグラフが表示されます:

実行結果
実行結果

座標軸の目盛りやラベルがどのように表示されるかは処理系依存です。

3Dグラフ

続いて、3Dグラフの場合です:

実行すると、以下のようなグラフが表示されます:

実行結果
実行結果

座標軸の目盛りやラベルがどのように表示されるかは処理系依存です。


この階層の目次
お知らせ

Vnanoの公式サイトがオープン、チュートリアルやAPI仕様書等も掲載
2019年08月07日 - オープンソースのアプリケーション組み込み用スクリプトエンジン「 Vnano 」の公式サイトを開設しました。チュートリアルや、スクリプトエンジンのAPI仕様書などが参照できます。その概要をお知らせします。

リニアングラフ3D/2Dが連番ファイルのアニメーションに標準で対応
2019年07月17日 - リニアングラフ3D/2Dでは、7月17日公開の最新版より、連番ファイルを連続的に読み込みながらアニメーション描画するプログラムを同梱し、メニューから標準で使用可能になりました。その概要をお知らせします。

Vnanoのスクリプトエンジンアーキテクチャ解説2: コンパイラ
2019年07月03日 - オープンソースで開発中のスクリプトエンジン「 Vnano 」のアーキテクチャを解説する連載の第2回です。今回は、スクリプトを中間コードへと変換する、コンパイラ部分の内部をクローズアップして解説します。

新着
[公式ガイドサンプル] ユーザーのGUI操作に対して処理を行う

「VCSSL GUI開発ガイド」内のサンプルコードです。ユーザーがGUIを操作した際に行う処理を実装します。
2019年07月28日
[公式ガイドサンプル] 各種GUIコンポーネントを画面上に配置する

「VCSSL GUI開発ガイド」内のサンプルコードです。色々な種類のGUI部品を画面上に配置します。
2019年07月28日
連番ファイルから3Dグラフをアニメーション描画するツール

フォルダ内の連番データファイルを読み込み、3Dグラフを高速で連続描画して、アニメーションさせるツールです。グラフを連番の画像ファイルに保存する事もできます。
2019年06月03日
連番ファイルから2Dグラフをアニメーション描画するツール

フォルダ内の連番データファイルを読み込み、2Dグラフを高速で連続描画して、アニメーションさせるツールです。グラフを連番の画像ファイルに保存する事もできます。
2019年05月24日
[公式ガイドサンプル] 立体モデルを生成して3D空間に配置する

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを生成し、3D空間に配置します。
2019年05月21日
開発元Twitterアカウント