Scratchを用いたヴィジュアルプログラミングを行います。今回は特にインタラクティブな表現に着目して制作を行っていきます。
Scratchを用いたヴィジュアルプログラミングを行います。今回は特にインタラクティブな表現に着目して制作を行っていきます。
今回の演習では引き続きScratchを利用して、インタラクティブな表現を行う。
インタラクションとは「相互(inter-)」の「作用(action)」を表す英単語であり、一方の振る舞いに応じて他方が反応を変化させるようなやりとりのことをいう。 一般的な単語として多様な相互作用を指すが、コンピュータシステムの文脈に限っても、人と人のインタラクション、人とモノのインタラクション、モノとモノのインタラクションと多岐に渡る。
Scratchでは「イベント」のスクリプトパレットに含まれる要素が直接的なユーザとのインタラクションを扱う。 「旗がクリックされたとき」「○○キーが押されたとき」「このスプライトがクリックされたとき」などというように、ユーザの操作への反応を記述することができる。
特殊なイベントとしては、「メッセージ」の送受信がある。 これは、あるスプライトの動作の中で、他のスプライトを連動して動かすようなときに利用する。 例えばユーザがスプライト1をクリックしたときにスプライト2も同時に動かす場合には、スプライト1からメッセージを送り、スプライト2において同じメッセージを受け取った場合の動作を記述する。
イベントのほかにユーザインタラクションを構成する際に利用したいのが、「制御」と「調べる」に含まれる要素である。 「制御」は、他のプログラミング言語における if文 や while文のようなスクリプト全体の制御を行う要素が多く含まれる。 こうした「制御」の中でうまく「調べる」を使うことで、例えばマウスの位置や、スプライト同士の位置関係など、画面内の情報に基づいた動作の分岐が可能となる。
以下にいくつかの作例を示す。ひとつひとつのブロックの説明はしないが、気になった動きをするものがあったら真似をしてみよう。
https://scratch.mit.edu/projects/162770787/
https://scratch.mit.edu/projects/162771977/
https://scratch.mit.edu/projects/162776131/
https://scratch.mit.edu/projects/162783596/
typeA(カーソルキーで移動)
typeB(カーソルキーで移動)
こうした処理を組み合わせることにより、より複雑なインタラクティブ表現、例えばゲームのようなものも作成することができる。
前回の「ニッチゲーをつくろう」ワークシートとこれまでの知識をもとに、ニッチゲームを制作しよう。ここで述べるゲームとは、マウスまたはキーボードなどのユーザの操作に反応して動きが変わるものであり、スコアやストーリーの変化によってユーザのプレイの良し悪しが評価される作品である。
作品は以下の条件を満たすこと。
次回はクラス内でテストプレイを行うため、ゲームの基本的な内容を次回までに作成してくること。次回ゲームの難易度や動き、ルールの再調整を行い、完成させる。
UIやインタラクションを適切に設計することは、使い勝手や快適性、楽しさと密接に関係している。逆に設計が不適切だと使い方が分かりにくかったり、間違えやすかったり、無駄な労力をかけさせられたりする。あなたがこれまで体験した使いにくかったり、わかりにくい不適切な設計のものごとを1つ取り上げ、どこがどのように不適切だったのか解説してください(必ずしもコンピュータ上のこととは限らない)。