» 詳しい使用方法や、エラーで展開できない際の対応方法などはこちら
[公式ガイドサンプル] 立体モデルを移動させる
このプログラムは、 「 VCSSL 3DCG開発ガイド 」 の 「 立体の移動 」 の回に登場するサンプルコードです。 ここでは、そのサンプルコードを実行環境ごとダウンロードして、実際に実行してみる事ができます。 プログラミングガイド的な詳しい解説については、上記ページをご参照ください。
スポンサーリンク
使用方法
ダウンロードと展開(解凍)
まず、PC(スマホは未対応)で上の画面の「 ダウンロード 」ボタンを押してください。 するとZIP形式で圧縮されたファイルがダウンロードされます。
その後、ZIPファイルを右クリックして「すべて展開」や「ここに展開」などで展開(解凍)してください。 展開が成功すると、ZIPファイルと同じ名前のフォルダができ、その中にZIPファイルの中身が入っています。
» 展開がエラーで止まってしまう場合や、ファイル名が文字化けしてしまう場合は…
プログラムの起動
Windows をご使用の場合
上記でZIPファイルを展開したフォルダ内にある、以下のバッチファイルをダブルクリック実行してください:
もしプログラムを書き変えながら使いたい場合は、代わりに「 VCSSL_Editor__プログラム編集はこちら.bat 」を実行してください。
正常に起動できると、初回のみ、Java実行環境を入手するか等を尋ねられるので、適時答えて済ませると、プログラムが起動します。 2回目以降はすぐに起動します。
Linux 等をご使用の場合
ZIPファイルを展開したフォルダ内へコマンドライン端末で cd して、以下の通り入力して実行してください:
(プログラムの内容を書き変えながら使いたい場合は、代わりに VCSSL_Editor.jar を実行)
» javaコマンドが使用できない等のエラーが表示される場合は…
起動後
起動すると、3DCGの表示ウィンドウが表れ、そこに3D空間の内容が表示されます(下図)。 表示ウィンドウ上で、マウスでの視点操作や拡大・縮小も可能です。
上図における赤/緑/青色の矢印が、それぞれX/Y/Z軸を表しています。
今回のサンプルコードでは、まず 球モデルを生成して配置し、それをZ軸方向に 2.0 だけ動かしています。 球モデルは、生成・配置された時点では原点(3本の矢印の根本の位置)に置かれますが、 確かにそこから、Z軸=青矢印の方向に少し移動していますね。
コード解説
このプログラムのコードはVCSSLで記述されています。
内容を書き変えて改造したい場合には、 プログラムのコード「 MoveModel.vcssl 」をテキストエディタで開いて改造してください。 スクリプト言語なので、コンパイラなどの別ソフトは不要で、コードを書き換えるだけでOKです。 VCSSLはC系の単純な文法の言語なので、C言語などに触れた事のある方なら簡単に読めると思います。
コード全体
コード全体は以下の通りです。
以上です。20行ちょっとの短いコードですね。
先頭: 文字コード宣言とライブラリの読み込み
以下では、各行で何をやっているのかを見ていきます。 まずは先頭です:
最初の行は文字化け対策で、コードを書いてあるファイルの文字コードが「UTF-8」である事を明示しています。
その後の2行は、VCSSLの標準ライブラリから、3DCGを扱うための 「 Graphics3D 」ライブラリと 「 Graphics3DFramework 」ライブラリを読み込んでいます。
Graphics3D だけでも3DCGの描画は可能なのですが、それだと表示画面の構築や、毎秒数十回の画面更新処理などを、 自分で書く必要が生じます(参照)。 毎回それを書き下すのは手間なので、そういった土台周りの処理を自動で行ってくれるフレームワークが Graphics3DFramework です(参照)。
フレームワークから準備完了後に呼び出される onStart 関数
上で読み込んだフレームワークは、プログラム起動後に、画面構築などの下準備を全て済ませた上で、 下記のような「 onStart 」という関数内に書いた処理を実行してくれます:
今回はこの onStart 関数内に処理を記述しています。
画面の初期設定など
では、onStart 関数内の記述を頭から見ていきましょう。 まず下記のように、画面の初期設定を行っています。内容はコメント通りです。
モデルを生成して配置
その後は、座標軸モデル(赤/緑/青の矢印モデル)と球モデルを、それぞれ生成して配置しています。
上の「 new〜Model 」のようなモデル生成関数は、生成したモデルに、「モデルID」という一種の管理番号を割り振って、それを戻り値として返します。
モデルに対して操作をするには、そのモデルIDを各種操作関数に渡します。 上でも既に、モデルを配置する mountModel 関数に渡していますね。
モデルの移動
さて、既に触れた通り、球モデルは、単に生成・配置しただけの時点では、X/Y/Z軸の原点が中心になるように置かれます。そこで、今回のコードのポイントです。modeModel 関数を用いて、球モデルの位置を移動させています。
この moveModel 関数は、最初の引数に、移動対象のモデルのIDを指定します。 ここでは球モデルのIDを控えてある変数 sphere ですね。
続く3つの引数に、左からそれぞれ X、Y、Z 方向の移動量を指定します。 ここではそれそれ、0.0、0.0、2.0 を指定しているので、Z方向だけに距離 2.0 だけ球が移動したわけですね。
今回のコード内容は以上です。 他の3D関連処理も一通り知りたいという方は、 VCSSL 3DCG開発ガイド のコーナーをご覧ください。
ライセンス
このVCSSL/Vnanoコード( 拡張子が「.vcssl」や「.vnano」のファイル )は実質的な著作権フリー(パブリックドメイン) である CC0 の状態で公開しています※。 記事中にC言語/C++/Java言語などでのサンプルコードが掲載されいてる場合は、それらについても同様です。 そのままでのご利用はもちろん、改造や流用などもご自由に行ってください。
※ ただし、このコードの配布フォルダ内には、ダウンロード後すぐに実行できるように、 VCSSLの実行環境も同梱されており、そのライセンス文書は「 License 」フォルダ内に同梱されています (要約すると、商用・非商用問わず自由に使用できますが、使用の結果に対して開発元は一切の責任を負いません、といった具合の内容です)。 配布フォルダ内の各構成物の一覧やライセンスについては「 ReadMe_使用方法_必ずお読みください.txt 」をご参照ください。
※ Vnano の実行環境については、別途スクリプトエンジンのソースコードも一般公開しており、 何らかのソフトウェア内に組み込んでご利用いただく事も可能です。詳細はこちらをご参照ください。
この記事中の商標などについて
- OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
- Windows は、米国 Microsoft Corporation の米国およびその他の国における登録商標です。この記事は独立著作物であり、Microsoft Corporation と関連のある、もしくはスポンサーを受けるものではありません。
- Linux は、Linus Torvalds 氏の米国およびその他の国における商標または登録商標です。
- その他、文中に使用されている商標は、その商標を保持する各社の各国における商標または登録商標です。
[公式ガイドサンプル] 立体モデルを回転させるアニメーション |
|
|
「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、アニメーションで回転させ続けます |
[公式ガイドサンプル] 立体モデルを回転させる |
|
|
「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、指定した角度だけ回転させます。 |
[公式ガイドサンプル] 立体モデルを移動させるアニメーション |
|
|
「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルの位置を、アニメーションで動かします。 |
[公式ガイドサンプル] 立体モデルを移動させる |
|
|
「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルの位置を移動させます。 |
[公式ガイドサンプル] 立体モデルを生成して3D空間に配置する |
|
|
「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを生成し、3D空間に配置します。 |
[公式ガイドサンプル] ポリゴンを生成して3D空間に配置する |
|
|
「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体の基本的な構成要素となるポリゴンを生成し、3D空間に配置します。 |