FIT2008（第7回情報科学技術フォーラム）RN-002
中学生対象コンピュータグラフィックス作成支援システムの開発と教育実践
Development of a computer graphics making support system in junior high school
菊地 卓也†
Takuya Kikuchi
1. はじめに
従来，全く知識のないものがプログラム言語を学ぶ場
合，プログラムの扱う対象は，最初は文字や数値情報だ
けであるため，学習者のプログラム製作による感動や達成感が多くない．また，ウィンドウを表示させるなどグラフィカルな結果を得られるようになるまで学習者は時間と労力を重ねる必要がある．
本研究では，身近なところで目にするコンピュータ技術の一つ，コンピュータグラフィックス（以下，CG と書く）に注目した．CG は近年幅広いジャンルに利用され，関心が高い分野となっている．そこで，CG を作成できるとなれば，利用者のプログラミングに対する興味･関心も高まると考えた．
しかし，CG を作る際に既存の開発環境やプログラミン
グ言語を使用すると，難易度が高く，モノ作りの達成感を得るまでに時間がかかるといった問題が考えられる．
本研究では，CG によるスクリーンセーバ製作を 3 時間で行える講義を開講し，ユーザが技術を習得・応用する為に必要とする時間を減らし，様々な CG を作成できるようになることで，より興味・関心を抱けるようにする．
本システムでは，プログラミング言語「ドリトル」を利用した教育実践 [1] や，教育用 3 次元ソリッドモデラー“Solid Interpreter” [2] でのデータ構造などのように，オブジェクト指向を採用し，描画したい物体，多角形などのオブジェクトにその位置や色といった状態を書き加えていくことで全体を作成していく方式を採る．あたかもゲーム等のキャラクタに装備や，特技を設定するような感覚に近い為，プログラムの理解しやすさにつながる．
本稿では，CG によるスクリーンセーバ製作を通してモノ作りに興味を持てるようシステムのプロトタイプについて述べ，次に改良点を挙げ，教育実践の企画について説明する．

佐藤 貴之†
Takayuki Sato
本システムの方針を以下に示す．
・ オブジェクト指向の採択
・ CG によるグラフィカルな成果
・ 利用期間の短期化

2.2. インタフェースについて
本システムのインタフェースは，対象者である中学生
はプログラムに初めて触れると仮定し，プログラムに集中できるように必要最低限の機能のみを実装し，シンプルで使いやすいシステムを構築する．インタフェースの構成要素を以下に示す．
・

テキストエリアプログラムを記述する
・ 実行ボタンプログラムを実行し，CG を表示する
・ スクリーンセーバ作成ボタン
結果（CG）をスクリーンセーバとして保存する
・ メニュー
プログラムの読込や保存を行う
このインタフェースを用いたスクリーンセーバ作成の流れは以下の通りである．
1． CG プログラムをテキストエリアに記述する
2． 実行ボタンを押し CG を表示させる
3． 1，2 を満足のいくまで繰り返す
4． スクリーンセーバ作成ボタンを押す
スクリーンセーバはシステムで指定したフォルダに作成される．CG 作成過程の様子を図 1 に示す．

メニュー作成した CG

2. システム概要
2.1. システムの開発方針
本システムは，CG が多用されるゲームなどに触れる機会が多く，プログラミングや 3 次元の座標の概念にも十分対応できる中学生を対象とする．
CG の描画には Open GL（Open Graphics Library）を使用し，システム全体を C++言語で構築する．システムの対象者に合わせて Open GL で用意されているライブラリ関数をそのまま利用せず，わかりやすく使いやすく関数をまとめる．また，難しい作業はシステムの内部で行うことで，利用者への負担を軽減させる．

実行ボタン

テキストエリアスクリーンセーバ作成ボタン

図 1．CG 作成の様子†：仙台電波工業高等専門学校

59（第4分冊）

FIT2008（第7回情報科学技術フォーラム）トによる実習を行っていく．講座の時間は 13：00 から16：00 とする．講座のタイムテーブルを図 2 に示す．

2.3. ユーザ用命令の設計
スクリーンセーバ製作において必要な正多面体，球など様々な基本図形を描画する関数は，Open GL 或いは，その補助ライブラリに用意されているが，そうした関数を利用，または自ら頂点を指定して描画することは，自由度は高く動作の設定も難しくなる．
プロトタイプでは基本図形の位置設定，動作としての平行移動や回転といった動作は，それぞれ同一関数で行われ座標系の管理で混乱する恐れがある．そこで描画，移動や回転等の動作をクラス化し，まとめることで簡潔に解りやすくなると考える．
描画オブジェクトに共通する項目を以下に示し，Baseオブジェクトクラスとする．
・ 中心座標・ 各軸に対する傾き・ 色彩
・ モデル（ワイヤフレーム，サーフィス）
・ 動作（平行移動，回転）
上記項目をメンバ変数として，それぞれを設定するメンバ関数をもたせ，記述や名称をわかりやすくしたユー
ザが利用する命令を用意する．ユーザ用の命令は以下の点に留意する．
・ 何をするのか一目瞭然な命令である・ 命令には訓令式ローマ字表記を用いる
・ 1 文で結果が変わる
構文は以下のようにする．
・ 名前 ＝ 命令（値）；
名前とは作成したオブジェクトにつける名前である．命令では作成や位置，彩色を設定する命令を用意し，値には命令に対応した型や座標，色を与える．
大きさが幅 2，奥行き１，高さ 3 の直方体（Hako）を作り，位置を（1，2，3），色を赤に設定する例を以下に示す．
Hako1 ＝ Tukuru(Hako);
Hako1 ＝ Ookisa（2，1，3）
Hako1 ＝ Iti(1，2，3);
Hako1 ＝ Iro(Aka);
そして，複数の物体に対して同様の動作を割り当てる
際にオブジェクトのグループ化が必要である．グループ化する際にはオブジェクトだけでなく，グループも割り当てられるとする．グループの要素を以下に示す．
・子オブジェクトリスト
・子グループリスト
・共通動作（平行移動，回転）

3.

講座の開講とシステムの評価

近隣の中学生に対し，システムを利用した講座を開き，アンケートを取ることにより評価する．

3.1. 講座の流れについて
受講者の目標を“オリジナルのスクリーンセーバを作ろう”として，スクリーンセーバ製作を“静止した図形を描く”，“図形に動きをつける”，“スクリーンセーバを製作する”の 3 段階に分け，講師による説明とテキス

図 2．タイムテーブル

3.2. システムの評価方針
システムの評価の主な観点を，“プログラミングの楽し さ を 体 験 で き た か ” ， “言語を短時間で習得できたか”，“十分な CG 作品のプログラミングができたか”とし，受講者に講座終了後アンケートを収集する．評価する項目を以下に示す．
１．受講者について・プログラミングに対する興味・関心
２．講義について・講義内容のわかりやすさ
・講義時間の長さ
３．システムについて・インタフェースの使いやすさ
・ユーザ関数の使いやすさ，理解しやすさ
・用意されている他に利用したい図形
・システムで実現してほしい機能

4.

おわりに

本稿では，スクリーンセーバ製作を一連の流れで行うことができるシステムのプロトタイプとその改良，さらに，それを利用した教育実践案について述べた．
今後は，ユーザ用命令を実装し，近隣の中学生への講座を実施し，システムに対する意見・要望をまとめ改良を行っていく．その際，受講者がどのような命令があるのかといった情報を知る為のヘルプも必要であると考えられる為，実装する必要がある．

参考文献[1] 兼宗進 他，“初中等教育におけるオブジェクト指向プログラミングの実践と評価”，情報処理学会論文誌，vol．44，pp．58-71（2003）．
[2] 新津靖，“教育用 3 次元ソリッドモデラーの開発”，
平成 13 年度経済産業省未踏ソフトウェア創造事業報告書，(2002)．

60（第4分冊）