GPSの技術

GPSとは

GPSは、Global Positioning System の略で地球規模で現在位置を特定するための技術である。 GPSセンサーは4個以上の人工衛星からの時刻信号を受信し、 それらのずれと光の速度から距離を計算し、現在位置を知る。

スマートフォンとGPS

現在ほとんどのスマートフォンにはGPSセンサーが内蔵されている。 GPSセンサーからのGPS情報を取得することは、所有者の居場所の特定に 継がる可能性が高いため、アプリからの情報取得には所有者の許可が必要である。 アプリのインストール時に提示される「権限」への承認や、 実行時に求められる「許可」がそれにあたる。

使用例

光陵GO

位置情報を電子地図の上に組み合わせる技術を応用して、 宝探しゲームを作ってみる。必要な知識は以下のとおり。

  1. Webページを書くための文書記述用言語(HTML)
  2. Webページのデザインを決める記法(CSS)
  3. 画面やキャラの動きなどを制御するプログラミング言語(JavaScript)
  4. 地理的な位置をどう表現するかの知識 (緯度経度の電子的な扱い方)
  5. キャラ画像などを描く技法
  6. ゲーム性を考えるアイデア
  7. 操作しやすさを考える思いやりの要素

今回模擬講義で構築体験するのは4、5、6の部分。

光陵GOの概要

クリエイタ(作成者)とプレイヤ(利用者)、各々の立場でゲームを進める。

クリエイタ
  1. Web地図で大学キャンパス内のどこにキャラを隠すか決める。

  2. その位置をクリックし、座標(緯度経度)を求める。

  3. ゲームのメインとなるHTML文書ファイルを開き、 座標をファイルの所定の位置に埋め込む。

  4. 出現するキャラ画像を作成し、 決められたファイル名でエクスポート(書込)する。

プレイヤ
  1. スマートフォンのGPSをONにする。

  2. スマートフォンでゲームのホーム画面のWebページを開く。

  3. 「追跡開始」ボタンを押し、現在位置が取れて画面上に 表示されるようになったら追跡開始する。

  4. ゴールとの直線距離が示されるので、それを参考に動く。

  5. キャラをゲットしたらそのキャラと 出されるメッセージを控えて教室のホワイトボードに書き込む。

クリエイタの手順

大学のコンピュータにログインし、以下の流れで作業する。

  1. Ctrl-1(こんとろーるいち) を押してEmacsに切り替え、 ~/public_html/koryogo.html ファイルを開く。手順:

    Ctrl-x Ctrl-f
    ~/public_html/koryogo.html [Return]
    
  2. 開いたファイルにある以下の初期設定2箇所を確認する(赤字部分のみ書き換え)。

      38.8934, 139.819		// 北緯, 東経 の順に入れる
    var foundMsg  = "みつかっちゃった!";	// 発見したときのメッセージ
    

    これを、自らが決めた緯度経度に変更し、見付かったときのメッセージも 独自のものに変更する(日本語は Ctrl-o で入る)。

  3. 隠し場所を設定してよいエリア を参考に、ゴールとしたい場所の緯度経度を求める。

  4. 2で開いたファイルの数値を書き換える。書き換えたら ファイルを保存する。

    Ctrl-x Ctrl-s

    Wrote と出ればOK。

  5. GIMP2を起動し、「メニュー: ファイル → 新しい画像 → 幅=100、高さ=128で[OK]」で新規画像を作る。 そのままでは小さくて描きづらいので 3 Ctrl-j をタイプして拡大表示、ブラシ先のサイズを 20 から 5 程度にする。

  6. 絵が描けたら(5分以内で!)、「エクスポート」で画像に保存する。 「メニュー: ファイル → エクスポート/Export」 で保存先を public_html フォルダに してから、main.png の名前で書き出す。

プレイヤの手順

隣同士の班で問題を解きあう。相手の作成アカウント(ログインユーザ名)の 番号を互いに確認しておく。スマートフォンの電源を入れ、以下の手順で操作する。

https://www.yatex.org/koeki/2018-koryoGO/

  1. スマートフォンのGPS機能をONにする。

  2. このWebページのURLを開く(右のQRコード)。
    https://www.yatex.org/koeki/2018-koryoGO/gps.html

  3. リンク一覧を開き、 相手の作成アカウントのところを開く。

    「追跡をはじめる」ボタンで開始!

  4. 隠したキャラとの測定直線距離が10m以内になると捕獲できる。 見付けた場合は、キャラの特徴と吹き出しに出てきた言葉を しっかり確認して教室に戻り、ホワイトボードに書く。

より本格的にするには

本格的なゲームに近づけるためにはどうしたらよいか考えてみよう。

「キャラ画像を本格的にする」などはすぐにでも腕を磨ける技術である。 自分でデザインしたものを今回のゲームに仕込んでみると気分が上がるので やってみよう。スマートフォンでもPCでも自分なりのデザインを考えて、 以下の手順で作成する。

  1. 100ピクセル×128ピクセルのキャラ画像を作画する。
  2. 英語のファイル名をつけ、PNG形式で保存する。
  3. でき上がった画像を送る:
    Twitterの場合@skipkoeki
    emailの場合 skip@e.koeki-u.ac.jp

新しいルールを足したい、もしそのように感じたのであれば 本当のクリエイタの入口に立っている。 様々な技術・知識の結集がこのようなゲームをデザインできる素養となる。 数学、地理、歴史、地学、英語、国語 あらゆる知識を本気で組み合わせることが偉大な作品創作に繋がる。

公益大の「情報」

工学部系の情報学科はコンピュータそのものの理論を追究する。 公益大の情報は、「みんなのため(公益)」になることは何かを追究し、 それにつながるよう情報技術を修得する。今回の「光陵GO」作成に必要な 7つの技術要素はすべて公益大で重視するものである。

専門的な「学び」に「早すぎる」ことはない。 これをきっかけに何かのスタートを切ろう。