pg02

2020年度版

テーマ iPadの子供向けプログラム学習アプリで学ぶプログラム的概念

前回の補足:

  • Algodooのファイルの保存場所

ドライブ C: \ユーザー\学籍番号

  • 問題3のURLを閲覧するブラウザ

Google Chrome 推奨

予告: iPad を持参すること。授業の準備として次のアプリ

Drop Dots ※1

CargoBot (選択課題で別のアプリ Medy で回答してもOK)

Viscuit

を app store からインストールしておくこと。準備できていない受講生はこのページのシナリオを目安に授業中に間に合うように準備する。

※1 当初は アプリ Soundrop を利用していた。Soundropは2010-11年頃から配信されていたミニマルな音とアニメによるメディア作品。

次回(第3回)に使用する予定のアプリ

Scratch Jr.

Pyonkee(ピョンキー)

Swift Playgrounds

プログラミング入門で扱うアプリや卒業生がApp Storeにリリースしたアプリのアイコン

第2回授業シナリオ(予定)

20分: メディアアートとプログラム

10分: Drop Dots 実習(ループ音源の作成)

25分: CargoBot 実習(手続き化 と 手続きの呼び出し と スタック)

10分: Medly 実習(ループ音源の作成)

10分: Viscuit ルールによるアニメーション作成実習

残り時間: Algodoo の課題の回答紹介

課題提出 WebClassの 第2回課題の3個。 提出の目安は次回授業日まで。

pg01の課題の補足:

https://twitter.com/_kobashi/status/781101085020741632 ビストンで上に押し上げる+複数のピストンをタイミングをずらして作動

https://twitter.com/_kobashi/status/781779590767271936 回転板でボールを弾く(モーターのトルクを強化)

https://twitter.com/_kobashi/status/781783268207190016 レイヤー(部品の重なり設定)を2枚利用。ボールは、レイヤー1の板と、レイヤー2の板との衝突設定をON。レイヤー2の板は、レイヤー1の板とは衝突せずにすり抜ける。

https://twitter.com/_kobashi/status/781793323191152640 チェーンにブラシツールで、ボールをひっかける部品を取り付け巻き上げる。

https://twitter.com/_kobashi/status/783158554270117888 バネ(反発強化)を利用。 左側は、 空気抵抗OFF + 反発係数1.0 に設定した無限に弾む状態。

Algodoo のスクリプト機能

2019年度は授業で扱った(2020年度は別のものに置き換え予定)

Thymeスクリプトによるモーター制御の例) https://twitter.com/_kobashi/status/783335013362184192 衝突を検出し、モーターの回転方向を切り替える。

アニメーションで見る機械メカニズム模型の動き http://www.museum.kyoto-u.ac.jp/collection/materials/mechAnime.html

課題(1/3)

iPadアプリとプログラム学習

Drop Dots を使います。

Soundrop インタラクティブなアニメーション作品

双方向性 相互作用 ボールの落下(キッカケ、アクション) → 人の作用(操作、リアクション) → ボールの反応(リアクションの連鎖) → ...ループ

interactive = inter + action

ゲームもインタラクティブメディア

Soundropの シミュレーションの精度をチェック Bug か仕様か?(古いバージョンではドットのすり抜けが発生していた。)

ミニマリズム → 作品を検索

メディア芸術祭

2015 第19回メディア芸術祭 アート部門 50 . Shades of Grey(作者のサイト) 算道

IAMAS2016 修了制作展 論理憲法

第18回文化庁メディア芸術祭(2014年) http://archive.j-mediaarts.jp/festival/2014/ エンターテインメント部門 超電波砲スーパーDX弐号機 メディアインスタレーション (GOCCO ltd.)

ライゾマティクス https://www.youtube.com/c/rhizomatiks

真鍋大度と清水憲⼀郎によるMVが、「アルス・エレクトロニカ賞2020」で栄誉賞を受賞


提出物:

ループ音源として、過度に複雑なリズムならないように、線やボールを整理したものを作成する。

Soundrop の紹介ページに制作例が載っている。

Drop Dots で作成た作品の画面をスクリーンショットに保存して、Webclassから提出する(来週まででよい)。

※ iPad のスクリーンショットは、 電源ボタン と ホームボタン を同時押しで撮影する。画像ファイルはカメラロールに保存される。WebClassにカメラロールから画像をアップロードする。

課題(2a/3)選択課題

・ CargoBot

ループ処理

手続き呼び出し

スタック処理

・Tutorial の一部分に取り組む。繰り返し処理、条件分岐まで。 Tutorial の 1~5で説明する。 6は練習ステージ

手続きを連鎖的に呼び出す例) Prog1~Prog4がどのように呼び出されるか確認する。

・Easy の ステージ1 Double Flip は、最小で5メモリでクリアできる(上級者向け)。まずは、8か9メモリ辺りを目標にクリアし、そこからプログラムの効率を上げるとよい。

例) https://youtu.be/A0r9zhX6FPQ (7メモリ) https://youtu.be/KqOE5_t8ddQ (5メモリ)

・Hard の ステージ1 Come Together で、手続き2(Prog2)の呼び出し回数を利用した、繰り返し処理のテクニックを紹介する(上級)。

スタックを利用した、呼び出し回数の記憶例) Hard の ステージ1 Come Together

動作例) https://youtu.be/qFIps0WjQYo なぜ、このプログラムでクリアできるのか、Prog2の呼び出し回数に注目して観察。

提出物:

来週までに、どの問題でもよいので CargoBot の問題をクリアして、動画に保存する。

動画は、CargoBot を早送り>>で実行して記録すること。

※CargoBotのアプリにある動画記録ボタンから動画を保存することができません(iOSのセキュリティが変更されたため)

iPadのスクリーンキャプチャー機能を使用して、プレイ動画を保存してください。

方法:

・設定アイコン → コントロールセンター → コントロールをカスタマイズ → +画面収録 を選択。

・ホームボタンを押す。

・CargoBotを開いて、録画の準備をする。

・画面端を右側上部から 2本指スワイプ してコントロールパネルを表示する。

・録画ボタン ◎ を押す。3秒後に録画が開始する。

・画面をタップする

・CargoBotでプログラムを実行する。

・プログラムの実行が終わったら、

画面端を右側上部から 2本指スワイプ してコントロールパネルを表示する。

録画停止ボタン ◎ を押す。

課題(2b/3)

iPadのアプリ Medly のプログラム的機能を試す。

授業で以下について実演する。

  • リンク

楽譜の使いまわし

  • オートメーション

エフェクト(音量など)の自動調整

  • バーカウント

パートの繰り返しの設定


操作の様子(スクリーンショット画像)

その1

Medlyを起動して + メニューから 空白 を選び、2つのパートが設定済みの楽譜を新規作成する。

パートのアイコンをタップして パートの楽器を切り替える。シンセサイザーをリープに、ベースをストームに設定した

シンセサイザーのパートにノート(音符)を並べる

その2

ベースにもノートを設定した。

シンセサイザーの楽譜を1小節分(バー)コピーして別の小節に張り付ける。その際、リンクして貼り付ける(リンク済み)。リンクした小説が分かるようにリンクを表示する。

その3

小節の設定メニュー(歯車アイコン)からバーカウントを1から4に変更する。メロディラインが4小節分に増える。

同じく、オートメーションの表示も ON にする。ゲイン(ボリューム)の強弱をグラフで編集できるようになるので適当に設定する。(ラインをタップして編集点の追加・再タップで編集点の削除)


提出物

Medlyの制作画面(楽譜)のスクリーンショット

課題(3/3)

・ Viscuit

※ アプリの利用でネットワーク接続が必要です。NBUWiFiに接続してください。

ルールを作る (メガネで 状況A と 状況B を結びつける)

パターンマッチング (ステージから メガネの左側の 状況A を検索して 状況B に変更)


提出物:

Viscuit を実行している様子をスクリーンショットに撮る。後で、Webclassにアップロードしておくこと(眼鏡ルールもスクショに記録しておくこと)。

移動しながら増殖するルールの例)

非決定的なルール(ランダムに動く)の例) 偶然にぶつかった場合は、☆に変化させる。

非決定的なアルゴリズムについて → 複数のルール(移動方向など)を同一のオブジェクト(部品)に設定するとどうなるか試す。

※確率的アルゴリズム(乱択アルゴリズム)についても調べてみるとよい。

2進数のカウントを利用して信号機と自動車を作成した例を見つけました。

文字を回転させて模様に変換する例

ドロップ系の簡単なパズルゲームの作成例

自動演奏(オルゴール)の作成例