学習のライフサイクルを支援する
史跡学習システムの開発
松江工業高等専門学校
• 屋外学習や観光で史跡を見学し,歴史につ
いて学ぶ機会は多い
しかし
現地で
リアルタイム
に史跡の案内を行うシステ
ムは少ない
見学中の
手書きスケッチ
での記録作成を支援
するといった発想も少ない
従来の観光ガイドシステム
●ホームページに写真や図は使われるが、3
Dグラフ
ィックスを使った史跡案内はほとんどない
●見学の記録を手書きでできるシステムは見当たらな
い
い
●
GPSと音声を使ってその場所の案内情報をリアルタ
イムに提供するシステムは少ない
★従来のシステムには、予習・実習・復習の学習ライ
フサイクルで学習効果を上げるという取り組みはない
• これらの問題を解決するため、我々の地元観光地で
ある松江城とその周辺の史跡を素材として
–
3Dグラフィックスを用いた
予習
PDA
今までの取組み
–
PDAと携帯電話を組み合せた
実習
– クイズによる
復習
を組み合わせた「
史跡学習システム
」の開発を行っ
てきた
技術的背景
★ゲームソフトを中心とする3
Dグラフィックスが進
化してきている。
★フルブラウザで使えるスマートフォンが急速に
普及してきている。
普及してきている。
★タブレット型のスマートフォンでパソコン並みの
使い方ができるようになってきた。
☆
GPS、カメラ、音声、タッチペンと3Dを組み合わ
せると様々な応用が考えられる。
1.予習・実習・復習の学習ライフサイクルを支援
2.
3Dグラフィックスによる仮想空間による予習⇒
全体イメージと個々の史跡の概要を学習
学習のライフサイクルを支援する
史跡学習システム
3.
GPS、タッチペン付きのスマートフォンを使い現
地で実習 ⇒
GPSで学習の軌跡を記録
4.復習時に
3D空間に再現して学習ルートを復習
し、クイズで理解度をチェック
3D
3Dグラフィックスを用いた予習
グラフィックスを用いた予習
①3Dで史跡のイメージをつかむ ②史跡の特徴や豆知識などを学ぶ
• ユーザの位置に応じて適切な史跡情
報を提供
GPSを使い史跡の音声、 Webガイド
• 記録作成を支援
– 学習記録作成(キーボード)スマートフォンを用いた実習
– 学習記録作成(キーボード) – スケッチ(タッチペン) – 現在位置確認(Google Map) – 見学軌跡の記録(GPS)★サーバに送り
Webページを作成
⇒他端末からも閲覧可能とする
メニュー画面
• タッチペンを用いて撮影禁止の
歴史遺産などをスケッチし、保
存する機能
– 写真にメモを書き込むことも可能
スケッチ機能
•
JPEG形式で端末内、サーバの両
方に保存できる
• 線種の選択、現在の色、直前の
色の表示、消しゴムなどの編集
機能
スケッチ画像• 史跡学習システムがスタートした時点から、
10秒おきに緯度、経度を数値で保存
• システム終了と同時に軌跡ファイルをサーバ
学習軌跡の作成
• システム終了と同時に軌跡ファイルをサーバ
に送信
• 実地学習の軌跡を3
D仮想空間で再現
学習軌跡を用いた復習
実地学習で一定時間毎に得た緯度・経度を経路曲線に変換 し3D空間に射影
理解度チェック
理解度チェック
チェッククイズ
基本問題(選択式) マウスで解答 応用問題(穴埋め式) キーボード入力で解答(po[0].X ,po[0].Y )
始点(startX,startY) 終点(e.X , e.Y )
Point[] po = new Point[4];
double r = Math.Sqrt(Math.Pow(startX - e.X, 2.0) + Math.Pow(startY - e.Y, 2.0)); double cos = (e.Y - startY) / r;
double sin = (e.X - startX) / r;
po[0].X = startX + (int)Math.Round(cos * (-width / 2.0));
(po[1].X ,po[1].Y )
(po[2].X ,po[2].Y )
(po[3].X ,po[3].Y )
po[0].Y = startY + (int)Math.Round(-sin * (-width / 2.0)); po[1].X = e.X + (int)Math.Round(cos * (-width / 2.0)); po[1].Y = e.Y + (int)Math.Round(-sin * (-width / 2.0)); po[2].X = e.X + (int)Math.Round(cos * (width / 2.0)); po[2].Y = e.Y + (int)Math.Round(-sin * (width / 2.0)); po[3].X = startX + (int)Math.Round(cos * (width / 2.0)); po[3].Y = startY + (int)Math.Round(-sin * (width / 2.0));
//始点と終点には円を描画
grfx.FillEllipse(brush, startX - (int)Math.Round(width / 2), startY - (int)Math.Round(width / 2), (int)width, (int)width); grfx.FillEllipse(brush, e.X - (int)Math.Round(width / 2), e.Y - (int)Math.Round(width / 2), (int)width, (int)width);
//変換した座標を用いて線を多角形で描画 grfx.FillPolygon(brush, po); 線に幅を持たせるために 始点、終点座標を変換
円と多角形によって線を描画することによって
滑らかな線を描くことができる
3D開発環境
• システム
– Virtools 4.0
• 史跡オブジェクト
– MetasequoiaLE R2.4
Virtoolsによ
る開発
– MetasequoiaLE R2.4
– LightWave3D 8.0
• 位置情報変換プログラム
– PHP
LightWave3Dに
よる開発
緯度・経度の平面座標変換
• 地球を球体と仮定する.
• 緯度が変化した場合
地球の半径 R = 6378137mとすると, 円周 2πR ≒ 40075020m. 円周 2πR ≒ 40075020m. 1度変化すると, 2πR/360 = 111319.5m. したがって1秒では, 2πR/(360*60*60) ≒ 30.92208m.緯度・経度の平面座標変換
• 経度が変化した場合
同じ1度でも緯度によって移動距離が変わる. 緯度が高くなるとその緯線で切断した面の円の半径は小さくなる. 切断面の半径を r = R*cosθ r = R*cosθ とする. 島根県は北緯35度であるので, 1度変化すると, 2πr/360 = 2π*R*cos(π*35/180)/360 ≒ 111313.2m. したがって1秒では, 2πr/(360*60*60) ≒ 30.92032m.BB
BBを用いたアバター制御
を用いたアバター制御
スタート位置設定 アバターの移動
Q1.システムの操作は分かりやすかったですか Q2.端末は持ち運びやすかったですか Q3.タッチペンによる操作は快適でしたか Q4.ガイド機能は快適に使えましたか Q5.記録の作成は快適に使えましたか Q6.史跡情報ページは役に立ちましたか Q7