JavaScpict ジャバスクピクト (ピクトグラミング JavaScript版) 使い方
画面の説明
画面は三つの部分から構成されます.左上は,ピクトグラムを表示する「人型ピクトグラム表示領域」,右上は,プログラムを記述する「プログラムコード入力領域」,下側はプログラムの入力を支援する「プログラムコード入力支援ボタン」です。
プログラムコード記述領域にプログラムを入力することで,人型ピクトグラムのポーズを変えたり動かしたりすることができます。また,「プログラムコード入力支援ボタン」を押すとその命令文を「プログラムコード記述領域」に追加できます.ピクトグラミングでは,JavaScript言語でプログラミングできます.
利用目的に応じたオプション
JavaScpictでは利用の目的に合わせて4つの機能をオンオフできます.
画像(名称) | 説明 |
---|---|
(座標系表示) | 画像の右に表示されているチェックボックスをオンにすると,座標系が表示されます.座標はXY座標系(X方向とY方向の値,両方を組み合わせて位置を表現する)です.横方向がX座標で左端の-320から右端の320まで,縦方向がY座標で上端の-320から下端の320までをとります.つまり,中心が(0,0),左上が(-320,-320),右上が(320,-320),左上が(-320,-320),右上が(320,-320),つまりX軸正方向が右,Y軸正方向が下となります.数学の座標軸とY軸だけ逆方向なので注意して下さい. |
(プログラミングコード非表示) | 画像の右に表示されているチェックボックスをオンにすると,「プログラムコード表示領域」を非表示にします. |
(ドラッグ不可)*標準でオン | 画像の右に表示されているチェックボックスをオフにすると,人型ピクトグラムは「ピクトグラム表示パネル」上でピクトグラムの体の部位を直接ドラッグすることででも操作することができます。また,ピクトグラム表示領域上で,始点を人型ピクトグラムの体の部分以外の点にして,終点までドラックすると,線分が描けます. |
コントロールボタン
ピクトグラミングでは再生・停止などのコントロールは,コントロールボタンから制御します.
画像(名称) | 説明 |
---|---|
(初めから再生) | はじめから再生する. |
(早送り) | はじめから早送り再生します.全体の実行時間が長い時に,概略を知るのに便利です. |
(一旦停止) | 停止します. |
(停止位置から再生) | 停止している状態から再生します. |
(すべてクリア) | プログラムコード入力領域に記述されているプログラムをすべて消去します.消去前に確認のダイアログボックスが表示されます. |
さあ!始めよう
まずは,1時間で学ぶジャバスクピクトからはじめてみましょう.
作成コンテンツのダウンロード
作成したコンテンツのダウンロードは3通りあります。
[1. プログラムコードのダウンロード](1) 作品名をテキストフィールドに入力します.
(2)プログラムコードダウンロードボタンを押すと,作品名.txt の名前でプログラムコードが保存されます.
[2. ショット画像のダウンロード](1)画像ダウンロードボタンを押すと,作品名.png の名前でショット画像が保存されます.
[3. アニメーションのダウンロード](1)動画ダウンロードボタンの右側にあるチェックボタンをオンにします.
(2)一度最初から最後まで実行します.ゆっくり実行されますが,内部的にはアニメーション画像が動的に生成されています.
(3)動画ダウンロードボタンを押すと,作品名.gif の名前でアニメーション画像が保存されます.
命令セット一覧
画面右上のプログラムコード記述領域に命令を入力し定義します.入力文字列は動作や状態を変化させるための「命令」コードと,引数列を空白で区切る以下の方式です.
pic.命令(引数1, 引数2 ....);
命令セット一覧 人型ピクトグラムの動きの変化を表現できる「ピクトアニメーション」,移動の経路が線で引かれることで図形を描く「ピクトグラフィックス」の2種類の命令から構成されています.また両方に共通して使用される変数定義,繰返し,条件分岐等の命令が用意されています.
ピクトアニメーション命令一覧
命令の様式 | 処理 |
---|---|
pic.R(arg1, arg2, arg3, arg4); | arg4 秒後にarg1で指定される体の部位を反時計回りにarg2 度だけarg3 秒かけて支点を中心に等速回転する.arg4 が 省略された時は,arg4 に0が,arg3,arg4 の両方が省略された時はいずれも0が入力されているものとして取り扱う. |
pic.RW(arg1, arg2, arg3); | arg1で指定される体の部位を反時計回りにarg2度だけarg3秒かけて支点を中心に等速回転する.回転が終了するまで次の命令は実行されない.arg3が省略された時は,arg3に0が入力されているものとして取り扱う. |
pic.M(arg1, arg2, arg3, arg4); | arg4秒後にarg3秒かけてx軸正方向に arg1ピクセル, y軸正方向にarg2ピクセルだけ全体を等速直線移動する.arg4が省略された時は,arg4に0が,arg3, arg4の両方が省略された時はいずれも0が入力されているものとして取り扱う. |
pic.MW(arg1, arg2, arg3); | arg3 秒かけてx軸正方向に arg1 ピクセル, y軸正方向にarg2 ピクセルだけ全体を等速直線移動する.直線移動が終了するまで次の命令は実行されない.arg3が省略された時は,arg3に0が入力されているものとして取り扱う. |
pic.FR(); | 人型ピクトグラムを正面向きにする.(初期状態) |
pic.SD(); | 人型ピクトグラムを側面向きにする. |
pic.C(); | 人型ピクトグラムの状態を初期状態にする. |
pic.SC(arg1); | 人型ピクトグラムの拡大率を標準(初期状態)のarg1倍にする. |
pic.SP(arg1); | 文字列 arg1 を発話する. |
pic.MS(arg1); |
人型ピクトグラムにお面を装着する.装着するお面の種類はarg1で指定される.
arg1 が”ANGER”の場合,怒りのお面 |
pic.PS(arg1); |
人に仮面を装着する.装着する仮面の種類はarg1で指定される.
arg1 が”ANGER”の場合,怒りの仮面 |
pic.SAY(arg1, arg2, arg3); | arg3 秒後にarg1で指定される値をarg2秒だけ吹き出しで表示する.arg3 が 省略された時は,arg3 に0が,arg2,arg3 の両方が省略された時はいずれも0が入力されているものとして取り扱う. |
pic.SAYW(arg1, arg2); | arg1で指定される値をarg2秒だけ吹き出しで表示する.吹き出しの表示が終了するまで次の命令は実行されない. |
ピクトグラフィックス命令一覧
命令の様式 | 処理 |
---|---|
pic.FD(arg1, [arg2]); |
人型ピクトグラムを進行方向にarg2 秒かけて距離 arg1 だけ等速で進める.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う. |
pic.BK(arg1, [arg2]); |
人型ピクトグラムを進行方向と逆向きにarg2 秒かけて距離 arg1 だけ等速で進める.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う. |
pic.RT(arg1, [arg2]); |
人型ピクトグラムの進行方向をarg2 秒かけて時計回り方向に角度 arg1 だけ等角速度で回転する.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う. |
pic.LT(arg1, [arg2]); |
人型ピクトグラムの進行方向をarg2 秒かけて反時計回り方向に角度 arg1 だけ等角速度で回転する.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う. |
pic.FDW(arg1, [arg2]); |
人型ピクトグラムを進行方向にarg2 秒かけて距離 arg1 だけ等速で進める.移動が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う. |
pic.BKW(arg1, [arg2]); |
人型ピクトグラムを進行方向と逆向きにarg2 秒かけて距離 arg1 だけ等速で進める.移動が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う. |
pic.RTW(arg1, [arg2]); |
人型ピクトグラムの進行方向をarg2 秒かけて時計回り方向に角度 arg1 だけ等角速度で回転する.回転が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う. |
pic.LTW(arg1, [arg2]); |
人型ピクトグラムの進行方向をarg2 秒かけて反時計回り方向に角度 arg1 だけ等角速度で回転する.回転が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う. |
pic.PEN(arg1, [arg2]); |
arg1 がUPの場合,ペンを上げる.DOWN の場合,ペンを下げる.arg1がUPまたはDOWNの時は,ペンの上げ下げをする体の部位の名称をR,RW命令と同様の表記でarg2に指定できる.arg1がFILLの時は,R,RW命令と同様の表記で指定されたarg2の体の部位の座標を含む閉じた線画の内部を塗りつぶすことができる.arg2が省略された場合は BODYが記述されているものとみなされる.
ペンの両端について,arg1がSQUAREの場合,線の両端の形状は四角,arg1がROUNDの場合線,両端の形状を丸を付加する.arg1がBUTTの場合は両端に形状を付加しない.ペンの種類について,arg1 が NORMALの場合は実線を,ERASEの場合は線を消す,XORの場合はすでに描かれていた部分は消し,そうでない部分は描く(反転). 初期状態はペンが上がっている状態で,線の両端の形状は四角(SQUARE),ペンの種類はノーマル(NORMAL). |
pic.PENW(arg1); | ペンの太さ(幅)を arg1 にする.初期状態は15. |
pic.L(arg1, arg2, arg3, arg4); | 座標(arg1,arg2)から座標(arg3,arg4)まで線分を描く. |
pic.O(arg1, arg2, arg3, arg4, [arg5]); | 中心座標(arg1,arg2),幅 arg3, 高さ arg4,中心座標を中心に反時計回りに arg5 度回転した楕円を描く.arg5 が 省略された時は,arg5に0が入力されているものとして取り扱う. |
pic.MO(func, arg1, arg2, arg3); | arg3 秒かけてx軸正方向に arg1 ピクセル, y軸正方向にarg2 ピクセルだけfuncという名称で定義された関数で構成される線画を等速直線移動する. |
pic.MOW(func, arg1, arg2, arg3); | arg3 秒かけてx軸正方向に arg1 ピクセル, y軸正方向にarg2 ピクセルだけfuncという名称で定義された関数で構成される線画を等速直線移動する.直線移動が終了するまで次の命令は実行されない. |
pic.T(arg1, arg2, [arg3, [arg4]]); | 引数の数が2つの場合,文字列arg1を文字の大きさarg2で人型ピクトグラムの現在位置に描く.
引数の数が3つまたは4つの場合,座標(arg2,arg3),文字の大きさ arg4で文字列 arg1 を描く.arg4 が 省略された時は,arg4に80が入力されているものとして取り扱う |
pic.CS(); | ペンによって描画された図形を消去する. |
共通命令一覧
命令の様式 | 処理 |
---|---|
arg1 = exp2 | 変数 arg1 に exp2 を代入する. |
if (exp1) { } | もし 式 exp1 が真ならば対応する命令群を実⾏する. |
else if (exp2) { } | もし対応する先述の if または elif の条件が全て満た されなくて,かつ条件式 exp2 が真ならば対応する命 令群を実⾏する. |
else { } | もし対応する先述の if または elif の条件が全て満た されない場合,対応する命令群を実⾏する. |
for (let i = 0; i < arg1; i++) { } | 対応する命令群をarg1回繰返す. |
pic.W(arg1); | arg1秒何もせずに待つ.待ちが終了するまで次の命令は実行されない. |
pic.S(); | 安全モード(Safety mode)に変更する。 安全モード中に描画 した線画の色は人型ピクトグラムと同じ緑色となる。 |
pic.SG(); | 安全緑モード(Safety Green mode)以外で実行すると安全緑モードに変更する。 安全緑モードで再度命令すると通常モードに変更する。安全緑モード中に描画 した線画の色は人型ピクトグラムと同じ白色となる。 |
pic.SR(); | 安全赤モード(Safety Red mode)以外で実行すると安全赤モードに変更する。 安全赤モードで再度命令すると通常モードに変更する。安全赤モード中に描画 した線画の色は人型ピクトグラムと同じ白色となる。 |
pic.P(); | 禁止モード (Prohibit mode) 禁止モードに変更する。 |
pic.I(); | 指示モード(Instruction mode)に変更 する。指示モード中 に描画した線画の色は人型ピクトグラムと同じ白色となる。 |
pic.A(); | 注意モード(Attention mode)に変更する。 |
pic.SK(); | スケルトンモード(Skelton mode)スケルトンモードに変更する。 |
pic.N(); | 通常モード(Normal mode)に変更する。 |
pic.ST(); | 命令が実行される時点での人型ピクトグラムを描画する. |
ピクトグラム表示領域でのマウス操作と処理の対応
ピクトグラミングでは,ピクトグラム表示領域上における様々なマウス操作により,対応した命令を自動的にプログラムを記述する領域に追加できます.
ドラッグ開始時のマウスの座標 | マウス操作 | 操作 |
---|---|---|
人型ピクトグラムの表示領域内 | 左クリック + ドラッグ | 人型ピクトグラムの対応する部位を回転 |
右クリック + ドラッグ | 人型ピクトグラムの平行移動 | |
人型ピクトグラムの表示領域外 | 左クリック + ドラッグ | 線分の描画 |
右クリック + ドラッグ | 楕円の描画 | |
− | 長押し | 人型ピクトグラムの向いている方向の変更(正面と側面) |
人型ピクトグラムの描画可能点付近 | クリックのみ | 描画可能点におけるペンの持ち・放し |
体の部位と表記の対応
R命令やPEN命令では引数で部位を指定します.「前腕」や「下腿」など人型ピクトグラムの構成部品全体の名称での指定と,「肩」「肘」など,構成部品の節点の名称での指定とがあります.
構成部品全体の名称
英語 | 日本語 | |
---|---|---|
BODY Body |
体 | |
LUA LeftUpperArm |
左上腕 | |
LLA LeftLowerArm |
左前腕 | |
RUA RightUpperArm |
右上腕 | |
RLA RightLowerArm |
右前腕 | |
LUL LeftUpperLeg |
左大腿 | |
LLL LeftLowerLeg |
左下腿 | |
RUL RightUpperLeg |
右大腿 | |
RLL RightLowerLeg |
右下腿 |
構成部品の節点の名称
英語 | 日本語 | |
---|---|---|
BODY Body |
体 | |
LS LeftShoulder |
左肩 | |
LE LeftElbow |
左肘 | |
LH LeftHand |
左手 | |
RS RightShoulder |
右肩 | |
RE RightElbow |
右肘 | |
RH RightHand |
右手 | |
LC LeftCrotch |
左股 | |
LK LeftKnee |
左膝 | |
LF LeftFoot |
左足 | |
RC RightCrotch |
右股 | |
RK RightKnee |
右膝 | |
RF RightFoot |
右足 |
パーツ | 部位 |
---|---|