[ Siena 目次 ]
動物図鑑アプリ
世界地図から、動物の生息地域を学習するアプリを試作します。
ボタンをタッチして、ビデオスクリーンで動物の動画を再生します。
実際の画面を確認
作成したのは2スクリーンです。(動物の動画は
NHKクリエイティブ・ライブラリー より)
起動時は、世界地図の上に、黄色い星マークが配置されています。
星マークを一つタッチすると、その星マークが赤くなり、右上に、動物の画像が表示されます。
ビデオボタンをタッチすると、ビデオスクリーンに移ります。閉じるボタンをタッチすると、右上の画像が閉じ、星マークが黄色に戻ります。
ビデオボタンをタッチした後です。画像に表示されていた動物の動画が再生されます。
左上の戻るボタンをタッチすると、世界地図スクリーンに戻ります。
戻るボタンをタッチして、世界地図スクリーンに戻ったところです。
他の星マークをタッチすると、別の動物が表示されます。
以下に、作成時のポイントを記述します。
[ 目次 ]
- 実際の画面を確認
- 事前準備
- 仕様確認
- 仕組みの解説
- 感想
事前準備
- 使用する画像を準備しておきます。
世界地図は、 3D World Map さんのフリー素材を使用しました。オリジナルサイトへのリンクが切れていたので、このサイトを紹介しているウェブページから入手しました。
- データソースとして読み込むエクセル表を作成します。
「 ID 」「 Name 」「 Title 」「 Area 」「 ImageURL 」「 VideoURL 」のエクセル表を作成し、テーブル変換しておきます。サンプル動画分の10行、入力しました。
テーブル変換の手順は、こちら(サンプルで気付いたポイント)に記しています。興味のある方はご覧ください。
- 使用する動画を準備しておきます。
無料の動画を公開している、 NHKクリエイティブ・ライブラリー さんから10本、手に入れました。画像の中に入っている映像も、 NHKクリエイティブ・ライブラリー さんのものであることを記しておきます。
仕様確認
タブレット型を意識しつつ、部品を配置しました。
- 星マークをタッチして、その土地の動物の画像を、右上に表示します。選択された星マークは赤色に変わります。
- 表示された画像の左上のビデオボタンをタッチして、ビデオスクリーンに移ります。
- ビデオスクリーンは、選択された動物の動画を再生します。
- ビデオスクリーン左上の戻るボタンで、世界地図スクリーンに戻ります。
- 他の星マークについても、上記と同様の動作をします。
仕組みの解説
ここでは、貼り付けた部品の属性を
ExpressView で確認します。
部品を選んで右下の
ExpressView ボタンをクリックすれば、画面右に開きます。
以下、画像をクリックすると拡大画面が表示されます。
- 星マーク
描画機能があるので、星型の画像を準備する必要がありません。
タッチされたとき、対応する動物のデータを、データソースからコレクションに保存しています。
また、タッチのタイミングで画像が表示されるようにしています。
OnSelect 属性で、
Clear(SelectedAnimal);
Collect(SelectedAnimal,First(Filter(Animals,Name="キリン")));
UpdateContext({isImageVisible:true})
としている部分がそれです。
また、動物の表示/非表示に合わせて、赤/黄の色を変換しています。
Fill 属性で、 If(And(isImageVisible,First(SelectedAnimal)!Name="キリン"),RGBA(255, 0, 0, 1),RGBA(255, 242, 0, 1))
としている部分がそれです。
星マーク毎に動物の名前を変えて、コーディングしています。
eraseAll 変数は、ペン入力ボードの Clear 属性で利用されています。
- 動物イメージ
この部品は、コレクションの画像を表示しています。
Image 属性で、 First(SelectedAnimal)!ImageURL としている部分がそれです。
また、星マークのタッチに合わせて、表示/非表示を行っています。
Visible 属性で、 isImageVisible と、ブーリアン変数を指定している部分がそれです。
- ビデオボタン
この部品をタッチして、ビデオスクリーンに移ります。
OnSelect 属性で、 Navigate(Video, ScreenTransition!Fade,{isPaused:false}) としている部分がそれです。
また、動物イメージと同様、表示/非表示を行っています。
Visible 属性で、 isImageVisible と、ブーリアン変数を指定している部分がそれです。
- ビデオタイトル
動物イメージの下に、ビデオタイトルを表示します。
Text 属性で、 First(SelectedAnimal)!Title としている部分がそれです。
また、動物イメージと同様、表示/非表示を行っています。
Visible 属性で、 isImageVisible と、ブーリアン変数を指定している部分がそれです。
- 閉じるボタン
この部品をタッチして、動物イメージを閉じます。
OnSelect 属性で、 UpdateContext({isImageVisible:false}) としている部分がそれです。
また、動物イメージと同様、表示/非表示を行っています。
Visible 属性で、 isImageVisible と、ブーリアン変数を指定している部分がそれです。
- ビデオプレーヤー
ここから、2スクリーン目の部品です。
選択された動物の動画を再生します。
Media 属性で、 First(SelectedAnimal)!VideoURL としている部分がそれです。
また、スクリーンが表示されたとき、すぐ再生されるようにしています。
DefaultPaused 属性で、 isPaused と、ブーリアン変数を指定している部分がそれです。
- 戻るボタン
この部品をタッチして、世界地図のスクリーンに戻ります。
OnSelect 属性で、 UpdateContext({isPaused:true});Navigate(WorldMap, ScreenTransition!Fade) としている部分がそれです。
- ビデオタイトルB
この部品は、ビデオタイトルを表示します。
Text 属性で、 First(SelectedAnimal)!Title としている部分がそれです。
感想
今回は動物を取り上げましたが、同じような形式のアプリで欲しいと思ったものは、
恐竜図鑑 です。
一時代だけを取り上げるのではなく、各時代に生息した恐竜を、何枚もの世界地図を重ねたイメージで作成し、各々の時代の恐竜生息分布を確認するのです。
さすがに実写とはいかないので、可能な限り、コンピュータグラフィックスを使用して、恐竜の動くイメージを伝えます。
そうすることで、大陸移動と恐竜の生息地域の関係なども、同時に学ぶことができるのでは、と思っています。
動物や恐竜だけではなく、
歴史・農業・社会制度・文化など、様々な切り口での知識を世界地図に重層的にマッピングして、それをタブレットで見る。もしそんなことができれば、結構面白い総合型コンテンツになるなあ、などと、勝手な想像を膨らませてしまいました。
私がそのアプリを作成するとしたら、
『ナレッジ・マッピング』とネーミングしたいところです。
こうしたコンテンツの難点はデータ量の多さにあると思いますが、クラウド環境を駆使すればアプリの負担は軽くなるので、将来的に、楽しくて深みのあるコンテンツに期待したいところです。