Japanese English

VCSSL 3DCG開発ガイド

ここでは、VCSSLで3次元グラフィックス( 3DCG )を扱う方法を解説します。

はじめに

VCSSLで記述されたプログラムのコードは、「 VCSSLランタイム 」という実行環境の上で動作します。 このVCSSLランタイムは、Java言語で開発されており、PC向けの各種OSに対応しています。

これにより、VCSSLのプログラムは、PCの種類・世代や機器構成の違いなどをあまり気にすることなく、概ねどこでも同じように動作する事が見込めます。

この特徴は、3次元のグラフィックス( 3DCG )機能についても同様です。 VCSSLランタイムには、独自のソフトウェアレンダリング方式の3D描画エンジンが内蔵されています。 そのためユーザーは、専門的なライブラリや機器を別途用意しなくても、標準でそのまま、3Dグラフィックスを用いたプログラムを開発・実行できます。

もっとも、その反面としてVCSSLの3DCG機能は、GPUなどのハードウェアをフル活用する高度な開発環境( 3DCG専用のAPIなど )と比べると、描画速度やクオリティの点では遠く及びません。 しかしその代わり、VCSSLの3DCG機能では、性能よりも扱いやすさ・習得のしやすさを優先した設計を採用しています。 たとえば数学の回転行列などの難しい事を考えなくても、手軽に3DCGプログラミングを行えます。

ここでは、実際にVCSSLのプログラム内で、3DCGを扱う方法について解説します。 なお、平面的な描画や画像処理を行う「 2DCG 」の扱いについては、別途 2DCGガイド をご参照ください。

それでは、VCSSLで3DCGプログラミングをはじめてみましょう!

VCSSL 3DCG開発ガイド
- 目次 -


3次元コンピューターグラフィックス
3次元コンピューターグラフィックスの基礎知識について扱っています。

基盤の準備
グラフィックスデータやレンダラーの生成など、基盤の準備について扱っています。

マウス操作とアニメーション
マウス操作で始点変更を可能にする方法について扱っています。

フレームワークの使用
基盤の準備を自動化してくれる、フレームワークの使用方法について扱っています。

光源の生成・配置と各種設定
光源の生成と配置方法、および色や輝度の設定について扱っています。

モデルの生成・配置と各種標準モデル
立体モデルの生成と配置方法、および色々な種類の標準立体モデルについて扱っています。

ポリゴンの生成・配置と各種ポリゴン
立体モデルの構成要素である「ポリゴン」の生成と配置方法、および色々な種類のポリゴンについて扱っています。

立体の移動
立体の移動について扱っています。

立体の回転
立体の回転について扱っています。

立体の拡大と縮小
立体の拡大と縮小について扱っています。

立体の反転
立体の反転について扱っています。

立体の色設定
立体の色設定について扱っています。

立体の形状設定
標準モデルの形状設定について扱っています。

立体の塗りつぶし設定
標準モデルの塗りつぶし設定について扱っています。

立体の材質設定
立体の材質設定について扱っています。

座標系の考え方と生成・配置
座標系の概念と、生成・配置方法について扱っています。

座標系の移動
親座標系の座標系を基準とした、座標系の移動について扱っています。

座標系の歩行
自身の座標軸を基準とした、座標系の移動(歩行)について扱っています。

座標系の原点位置制御
座標系の原点位置制御について扱っています。

座標系の回転
親座標系の座標軸を基準とした、座標系の回転について扱っています。

座標系の自転
自身の座標軸を基準とした、座標系の回転(自転)について扱っています。

座標系のオイラー角姿勢制御
オイラー角による座標系の姿勢制御について扱っています。

カメラワーク
実践的なカメラワークを実現する方法について扱います。

ベクトルの生成・配置と基本的な操作・演算
ベクトルの生成と配置方法、および基本的な操作と演算について扱っています。

座標変換
座標変換について扱っています。

画面射影
3D空間上の位置と、画面上の位置との関係を求める「画面射影」について解説しています。

衝突判定
立体の衝突判定について解説しています。

このガイドに登場するサンプルコード(一部)

ガイド内に登場するサンプルコードを、実行環境ごとダウンロードして、実際に実行してみる事ができます。

[公式ガイドサンプル]立体モデルを回転させるアニメーション

「VCSSL3DCG開発ガイド」内のサンプルコードです。立体モデルを、アニメーションで回転させ続けます
[公式ガイドサンプル]立体モデルを回転させる

「VCSSL3DCG開発ガイド」内のサンプルコードです。立体モデルを、指定した角度だけ回転させます。
[公式ガイドサンプル]立体モデルを移動させるアニメーション

「VCSSL3DCG開発ガイド」内のサンプルコードです。立体モデルの位置を、アニメーションで動かします。
[公式ガイドサンプル]立体モデルを移動させる

「VCSSL3DCG開発ガイド」内のサンプルコードです。立体モデルの位置を移動させます。
[公式ガイドサンプル]立体モデルを生成して3D空間に配置する

「VCSSL3DCG開発ガイド」内のサンプルコードです。立体モデルを生成し、3D空間に配置します。
[公式ガイドサンプル]ポリゴンを生成して3D空間に配置する

「VCSSL3DCG開発ガイド」内のサンプルコードです。立体の基本的な構成要素となるポリゴンを生成し、3D空間に配置します。

※ サンプルコードのダウンロードはまだ整備中で、全部の公開には至っていません。今後も継続的に少しづつ追加していきます。 コードアーカイブ では、このガイドのサンプルコードだけでなく、いろいろなVCSSL製のプログラムをコード解説付きで配信しています。


Japanese English
この階層の目次
RINEARN からのお知らせ
※ VCSSL は RINEARN が開発しています。

ExevalatorのVer.2.4をリリース—MCPをサポートし、AI用の計算ツールとしても使用可能に
2025-11-15 - 式計算ライブラリExevalatorのVer.2.4をリリースしました。今回から、AIとやり取りするためのプロトコルである「MCP」をサポートし、AI用の計算ツールとしても使用可能になりました!

Exevalatorの最新版Ver.2.3をリリース、新たにPythonで使用可能に
2025-11-04 - 式計算ライブラリExevalatorのVer.2.3をリリースしました。今回から、新たにPython製のプログラムでも使用可能になりました!AI用ツール開発需要などの背景も踏まえて、詳細をお知らせします。

Exevalatorをアップデート、エラーメッセージの日本語化が手軽に
2025-10-31 - 式計算ライブラリExevalatorのVer.2.2.2をリリースしました。今回から、エラーメッセージを手軽に日本語化できるようになりました。数件のバグ修正&微調整も作んでいます。詳細をお知らせします。

関数電卓RINPn(りんぷん)オンライン版の内部構造を解説
2025-10-22 - 先日登場した、関数電卓ソフトRINPn(りんぷん)のオンライン版の内部構造を解説します。オープンソースなので、自由に改造・流用して、自分だけのWeb電卓を作る事も可能!(かもしれない)

関数電卓RINPn(りんぷん)、どこでもすぐ使えるオンライン版が登場!
2025-10-21 - フリー関数電卓ソフトRINPn(りんぷん)に、Web上でどこでもすぐ使える「オンライン版」が新登場しました!PCだけでなく、スマホでも利用可能です。詳細をお知らせします!

VCSSLのサポートAIが登場!ただし実用品質にはChatGPT有料アカウント(Plus)での利用推奨
2025-08-19 - プログラミング言語VCSSLについての質問対応や、コーディング作業を手伝ってくれるAIさんが登場しました!使用までの流れや推奨事項を解説し、実際の回答例や生成コード例などもたくさん紹介します!

各ソフトやVCSSLの英語版ドキュメント整備がほぼ完了
2025-06-30 - RINEARNでは2年前から、AIの補助による英語版ドキュメントの大幅拡充計画を進めてきました。今回、主要ドキュメント&コンテンツの英訳がほぼ完了し、一応の目標水準に達しました。詳細をお知らせします。

VCSSLの最新版をリリース:外部プログラムとの連携機能を少し強化、他
2025-05-25 - VCSSL3.4.52をリリースしました。外部プログラム(C言語製の実行ファイル等)との連携機能を少し強化し、文字化け対策やOS判別などを可能にしました。他にも細かい機能追加があります。詳細をお知らせします。

VCSSLの最新版をリリース、Java24上での非互換な挙動を対処
2025-04-22 - VCSSL3.4.50をリリースしました。Java24環境上でのネットワークドライブ関連のファイルパス解決で、従来環境とは異なる挙動が生じていたのを解消しました。詳細をお知らせします。

リニアングラフやVCSSLの最新版をリリース、目盛りの位置や内容を自由に指定可能に!
2024-11-24 - リニアングラフ3D/2Dを更新し、自由な位置に、自由な表記内容の目盛りを描けるようになりました!併せて、Java言語やVCSSLでの、プログラム制御用APIも拡張しています。詳細をお知らせします。