会話の例
何人かの人型ピクトグラムを作成して会話をさせてみよう。
一人が質問して説明しながら答え、さらに質問をするなどもいいですよね。
今回は、どの人型ピクトグラムが話しているのかわかりやすくPiC1、PiC2、PiC3と
表示してみました。
どの部分で手足が動かせるのかもわかると思います。

↓クリックしてね
三人の会話のプログラム
三人の会話
🌟 全体の概要
このプログラムは、
3人(pic1・pic2・pic3)がメッセージを送受信して会話する様子 を実装しています。
-
最初に pic1 が “hello” を pic2 と pic3 に送る
-
pic2 と pic3 は “hello” を受け取ると挨拶を返す
-
さらに pic2 は “helloReturn” を pic1 に送り返す
-
pic1 は “hyper pictogramming 知ってる?” と pic3 に質問する
-
pic3 は「知ってるよ」と答え、色も変える
-
そのあと pic3 が、その質問を今度は pic2 に送る
(pic2 は「知らないよ。今度使ってみるよ」と答える)
という流れです。
🖼️ ① 画面配置(HTMLタグ部分)
<pa background-color="#aeeeee">
<hp id="pic1" x="-200" y="-130" scale="0.3" color="#a9a9a9"></hp>
<hp id="pic2" x="-200" y="300" scale="0.3"></hp>
<hp id="pic3" x="250" y="100" scale="0.3"></hp>
</pa>
✔️ ここでは何をしている?
-
背景色が 薄い水色 (#aeeeee) のキャンバス
-
3つのピクトグラムを配置
・pic1:左上
・pic2:左下
・pic3:右
位置(x, y)、大きさ scale、色などを設定しています。
📡 ② 最初のメッセージ送信
pic1.SEND_MESSAGE("hello", [pic2, pic3]);
pic1.SAYW("pic1 こんにちは", 2);
✔️ pic1 が何をする?
-
pic2 と pic3 に “hello” メッセージを送信
-
画面で「pic1 こんにちは」と吹き出し表示(2秒)
💬 ③ pic2 と pic3 が “hello” を受信したときの動作
pic2 の処理
pic2.RECEIVE_MESSAGE("hello", () => {
pic2.SAYW("pic2 こんにちは", 2);
pic2.SEND_MESSAGE("helloReturn", [pic1]);
});
✔️ pic2 は?
-
“hello” を受信すると「pic2 こんにちは」と表示
-
さらに “helloReturn” を pic1 に送信
pic3 の処理
pic3.RECEIVE_MESSAGE("hello", () => {
pic3.SAYW("pic3 こんにちは", 2);
});
✔️ pic3 は?
-
“hello” を受信すると「pic3 こんにちは」と表示
(返事を送る処理は無し)
🔄 ④ pic1 が “helloReturn” を受信したら
pic1.RECEIVE_MESSAGE("helloReturn", () => {
pic1.SAYW("pic1 ハイパーピクトグラミングって知ってる?", 2);
pic1.SEND_MESSAGE("doYouKnow", [pic3]);
});
✔️ pic1 は?
-
「ハイパーピクトグラミング知ってる?」と表示
-
この質問は pic3 のみに送る(※わざと pic2 には聞かない)
❓ ⑤ 「知ってる?」と聞かれたときの動作
pic2 の返事
pic2.RECEIVE_MESSAGE("doYouKnow", () => {
pic2.SAYW("pic2 知らないよ", 2);
pic2.SAYW("pic2 今度使ってみるよ", 2);
});
✔️ pic2 は?
-
「知らないよ」「今度使ってみるよ」と2つ返事
pic3 の返事
pic3.RECEIVE_MESSAGE("doYouKnow", () => {
pic3.R("LUA", 90, 1);
pic3.R("LUA", 3600, 2);
pic3.SAYW("pic3 知ってるよ 複数人同時に動かしたり いろんな色がつかえるよ", 2);
pic3.CL("#0000ff");pic3.SEND_MESSAGE(“doYouKnow”, [pic2]);});
✔️ pic3 の特殊な反応
-
R(“LUA”, 角度, 速度)
→ 回転したりアニメーションする命令 -
3600度回す(10回転)などアニメ的動作
-
「知ってるよ。複数人同時に動かせたり色が使えるよ」と説明
-
色を 青 (#0000ff) に変更
-
さらに 同じ質問を pic2 に送る
🔁 この結果どうなる?
-
pic1→pic3に「知ってる?」と質問
-
pic3 が詳しく説明して青くなる
-
そのあと pic2 に「知ってる?」と転送
-
pic2 が
「知らないよ」「今度使ってみるよ」と返事
こんなコミュニケーションの流れになります。
🧩 全体まとめ
このプログラムは以下を学べる例になっています:
-
SEND_MESSAGE で複数ピクトグラムに通知
-
RECEIVE_MESSAGE でイベント(メッセージ受信)を処理
-
ピクトグラム同士の会話・情報伝達
-
アニメーション(R)や色変更(CL)
特に
「pic3 が質問を受け → アニメーションし → 色を変えて → 質問を転送」
という部分が、ハイパーピクトグラミングの特徴をよく示しています。
ブログ作成者 Reiko Sugiyama
