スクイーク e-トイ入門
このページは 2006年に書きかけたもので、その内容は必ずしも現状やその後の変化を反映したものにはなっていません。整合性を持って正しい情報にアップデートし続けるコストをかけられないのでやむを得ずこのまま放置していますので、どうぞあしからず。特に外部サイトへのリンク切れなどはご不便をおかけするかと思いますが、他の情報サイトや脳内置換を駆使しつつ、ご対応いただければ幸いです。--sumim
ここはスクイーク、特にその“目玉”ともいえるビジュアルプログラミング機能の「スクイーク e-トイ」を学びたい人のためのページです。Smalltalk環境としてのスクイークをこよなく愛する私自身はというと、いちプログラミング言語としてのスクイーク e-トイやその取り上げられかたはあまり好きではありませんが、世の大半の人がスクイークをスクイーク e-トイ専用アプリだと思っている現状を鑑みて、また、スクイーク環境における第二のユーザースクリプティング言語としての位置づけでそれを活用するにやぶさかではないので、こうしたページを用意しました。あまり初心者に優しい内容にはなっていませんが、なにかの参考になればさいわいです。
旧トップページ「Morphic レッスン(もうひとつの Squeak 入門)」はこちらからどうぞ。
目次
スクイーク(Squeak)とは…
1970 年代よりアラン・ケイが模索し続けている理想のコンピュータ環境の暫定的位置づけのもので“コンピュータを既存の道具に見立てるのではなく、「コンピュータ」という道具として積極的に活用するための仕組み”をコンピュータに持たせるためのソフトウエアです。具体的には次のような要素をコンピュータに与えます。
- 子供にも簡単にいじれる簡易さ。しかし、その子が大人になっても使い続けられる本格さも併せ持つ。
- データだけでなく、アプリやシステムも利用者が容易にいじれる柔軟な構造。(オブジェクト化による一元管理)
- 直感的操作が可能なグラフィカル UI 。(オブジェクトの視覚化)
- 安易にいじっても致命的な障害を起こさない保護機構。機能拡張の容易さ。(構成要素がオブジェクトである利点)
- 改変により不都合が生じても元に戻せる安全機構。(処理単位のログ機能、改変履歴・復帰機能)
- 改変、追加された機能は環境のどこででも即座に使える、普遍性、即時性。(動的バインド、動的メモリ管理)
- システムの基本的な枠組みをも変えられるメタ機能。
したがって、スクイークはよく言われるように、
- 単純
- 子供向け
- “アプリケーション開発”を目的とした環境
ではありません。Win/Mac とも、UNIX とも異なる仕組みを持つコンピュータ環境。OS(Win や Mac、あるいは UNIX )の上で動く別の OS 。理解が進めば進むほど深みを知ることになるソフトウエア。それ自体が粘土でできた粘土細工用の作業台。コンピュータを科学しながら遊ぶ場。ソフトウエアが真に“ソフト”になるための進化の過程。ソフトウエア工学が真に“工学する”ことができるようになるための実験台、などなど。それが「スクイーク」です。
ポイント
- スクイークは特定の OS で動作する応用ソフトではなく、むしろ“OS”や“環境”そのもの。
- スクイークは使い勝手と同時に、既存の OS や環境には類を見ない自由度を持っている。
- スクイークはときとして、単純な子供向け開発環境に見えることもあるが、そうだとしてもそれは仮の姿である。
- スクイークは案外息が長く、昔見た何かに似ている…と思っても、実は似ているのはその“何か”のほうであることが多い。
スクイーク e-トイ(Squeak eToys)とは…
スクイーク e-トイは、スクイーク環境に組み込まれたビジュアルプログラミング機能です。SqueakToys とも呼ばれます。上の全ての要素を満足するものではありませんが、そのいくつかを際立たせる役割りをスクイークの看板機能として担っています。処理を表わすタイル状のパーツをドラッグ&ドロップするだけでプログラムが組めるので、従来のプログラミング環境に馴染まなかった人や子供でも直感的なプログラミングが可能です。また、タイプする必要がないので、文法エラーやスペルミスなどにわずらわされることなく、プログラミングに集中して楽しめるという特性もあります。
残念ながら、ブラウザプラグイン版スクイーク(www.squeakland.org から入手可能なインストーラでインストールされるスクイーク)や日本語版スクイーク(後述)には、スクイークをこのスクイーク e-トイ専用のプログラミング環境、あるいはそのためのアプリケーションソフトというように分かりやすく見せかけるために、スクイーク環境で本来提供されている機能やデータのロックもしくは不可逆的削減処置が施されています。公式版(同後述)を用いる場合と、これら機能限定版を用いる場合では、スクイーク環境に対する印象がかなり異なるものになる(有り体にいえば、スクイークが単純で、子供向けの、開発を目的としたものに見えてしまいがちである)ことを認識しておく必要があります。
Smalltalk とからめてスクイーク環境、スクイーク e-トイに興味を持たれたかたへ…
スクイーク e-トイは、スクイーク環境で使用できる Smalltalk(スモールトーク。なお“SmallTalk”はよくある誤った表記)という言語で記述されスクイーク自身に組み込まれた機能のひとつですが、Smalltalk とはまったく別のプログラミング言語です。したがって、スクイーク e-トイをマスターしてもプログラミング言語としての Smalltalk、ひいては、充実した開発用ツールを備えた Smalltalk の処理系としてのスクイーク環境に精通することは決してできません。Smalltalk やその処理系、開発環境の学習をしたいときは、別のアプローチをとってください。本ページではスクイーク環境と切っても切れない関係にある Smalltalk の話題をあえて避けることはしていませんが、Smalltalk の系統だった学習を目的とはしないのでこの点、あらかじめご留意ください。
Smalltalk とスクイークの関係
「Smalltalk」という言葉は、環境構築、データ記述、ユーザースクリプティング言語としての呼び名の他に、環境それ自体の呼称としても用いられます。ただ、Smalltalk 環境は、当初の暫定 Dynabook 環境としての '70 年代の姿は原則非公開だったため、その後に Dynabook 色を排して整備、'83 年以降に販売されたプロ開発者向けの統合化開発環境(IDE)として世間一般には認知されることになったという経緯があります。なお滅んでしまったとの誤解があるようですが、この“ IDE 版”Smalltalk 環境は後に VisualWorks と名前を変えて現在も Cincom により精力的な販売・開発が続けられています。
スクイークは、Smalltalk 環境販売前に当時の主要メーカーにライセンスされた Smalltalk のうち、Apple が Lisa/Mac 向けに手を入れて開発者向けに販売した、モノクロ表示の MC68000 マシン用の Apple Smalltalk を、'96 年になってからカラー表示の PowerPC マシンでも利用できるように移植したのがその始まりです。したがって、 IDE 版 Smalltalk としてみれば、VisualWorks は「最新機能を備えた真の後継者」であるのに対し、スクイークは非常に古い Smalltalk からの派生物、に過ぎません。ただ、Apple Smalltalk が古かったがゆえにまだ Dynabook の香りを失っていなかったと捉えれば、スクイークは“暫定 Dynabook 環境としての Smalltalk”の精神的・実質的な後継者であると考えることもできます。
同時に、そのベースが '80 年代初期のもので、'96 年以降の開発も系統立てて行なわれなかったスクイークには、'83 年以降 IDE 版 Smalltalk(Smalltalk-80、VisualWorks)が蓄積してきた、オブジェクト指向プログラミング言語/環境の雄としての実績や“デザインパターンの宝庫”と賞されるまで洗練・整備されたクラスライブラリなどに対する評価は適用できないことを頭の片隅においておかなければいけません。よく“Smalltalk を学ぶのには、スクイークは相応しくない”と言われる所以はここにあります。
Smalltalk について今、知ったばかりのかたへ…
Smalltalk は、スクイーク環境構築用、データ記述用であると同時に、環境内でのユーザースクリプティングにも用いることができるプログラミング言語です。スクイーク e-トイと併用すると、より細やかな表現や複雑な作業をこなすことが可能になります。スクイーク e-トイを含めて、環境内のあらゆる機能はこの言語を使って記述されているので必要なら Smalltalk を使ってスクイーク e-トイの機能拡張も可能です。このように、スクイーク環境が提供するものをフルに活用しようとするなら習熟しておく必要がありますが、スクイーク e-トイの使用にかぎるなら、Smalltalk に関する知識は役立つことはあっても必須ではないので安心してください。
ポイント
- スクイーク e-トイはスクイークに備えられたビジュアルプログラミング機能。
- 同じ環境内で同じユーザースクリプティング用として使用できるが、スクイーク e-トイと Smalltalk は別言語。
- IDE 版 Smalltalk として見たときのスクイークは、古く低質で Smalltalk 教材には向かない。
- Smalltalk に関する知識はスクイーク e-トイを使ううえで役立つことはあっても必須ではない。
スクイークの入手とインストール
スクイークにはいくつかのバージョンがあります。常に変化し、完成をみないことが分かっているソフトなので、新し過ぎず(実験的要素が少ない)、古すぎない(既知の障害が修正されている)ものを選ぶ必要があります。本稿執筆時点では 3.2 がよいと思います。Squeak 3.2 は、以下のリンクから入手可能です。
Win、Mac ともに、圧縮ファイルを展開すればインストールは完了です。このほかのプラットフォーム用は、公式サイトのダウンロードページの記述を参考に入手、インストールを試みてください。追記:最新版は常に、こちら のページなどから入手可能です。
ポイント
- バージョンはたくさんあるので、新しすぎず、古すぎないものを選ぶ。
- Win/Mac 環境なら圧縮ファイルを解凍するだけで使える。
日本語版スクイークについて
主に大島さん、阿部さんのご尽力により、スクイークは今、多国語化を経て日本語も扱うことができるようになっています。本ページ執筆時点での日本語版スクイークは英語版 3.2 をベースに、日本語の表示、入力、データとしての取扱いを可能にする機能拡張を施したものですが、特に、スクイーク e-トイに関しては積極的な日本語化がなされており、すべてのタイル名および大多数のメニュー項目を日本語で読むことができます。ただ、ボランティア的作業の産物であることと、開発途上の技術を用いているため、公式版にくらべて動作が不安定だったり、期待される動きをしなかったり、メニュー項目の日本語化が完全でなかったりすることがあります。日本語版スクイークのホームページの注意書きをよく読んで納得した上で入手、使用するのがよいでしょう。
また、日本語版スクイークは、その主な使用目的からスクイーク e-トイ専用アプリに積極的に見せるようにスクイーク本来の機能が一部ロックされたり、意識して削除されて使えない状態になっています。具体的には、公式版で起動時に表示される左右のタブ、デスクトップクリック時のメニューが表示されない、サンプルデータが大幅に削除されている、などです。ロックを解除すればかなりの機能は復旧できますが、削除により失われたデータを復活することは難しく、完全に公式版のようにすることはできません。プラグイン版と明確な区別がなされている公式版のある米国の事情と異なり、日本では、こうした機能限定版でのみスクイーク“日本語版”を知ることになる人が多くなることを意識しておく必要がありそうです。
すでに前述の手順で公式版(英語版)スクイークを入手およびインストールしてある場合は、次の日本語版スクイーク圧縮ファイルを入手して展開し、含まれるファイルを公式版スクイークフォルダに移動しておしまいです。
ここでは以降、原則として日本語版を使った解説を続けます。
ポイント
- 日本語版はボランティア的活動の産物。不都合はクレームでではなく協力的姿勢で解決しよう。
- 日本語版はスクイーク e-トイ専用アプリにみせかける処置を施した機能限定版。
- インストールは公式版フォルダに SqueakNihongo4a.zip を展開して得られるファイルを移動するだけでよい。
Mac で日本語版スクイークを使うときの注意
カーボン版スクイークは(別途配布されているココア版も)インプットメソッド(IM)経由の日本語入力に対応していません。日本人の OS X ソフト開発者のスクイーク環境への理解と積極的なコミットメントが望まれるところです。ただ、スクイークコミュニティでも大島さん林さんの後押しで、ここのところ急速に多国語化対応の気運が高まっていますので、これらの仮想マシンも多国語化の流れからのIM経由入力への対応が期待できそうです。しかし、現状ではIM経由で日本語の入力を行なうために唯一対応しているクラッシック版を用いる必要があります。したがって、マシンを Mac OS 9 で起動するか、スクイークをクラッシック環境で起動するような手続きが必要です。
スクイークをクラッシック環境で起動するには、Squeak 3.x.app パッケージを展開し、クラッシック版スクイークを複製して別ファイル化しておきます。具体的には、Squeak 3.x.app アイコンのコンテキストメニューから「パッケージの内容を表示」を選択してフォルダとして開き、Contents → MacOSClassic → Squeak 3.x Classic を Squeak 3.x.app と同階層にコピー(option-ドラッグ)します。
追記:最新版日本語スクイークでは、林さんご提供の専用の Squeak VM の助けを借りて日本語入力が可能になっています。
ポイント
- OS X では日本語入力ができない。入力には Mac OS 9 が(クラッシック環境、もしくは起動用として)必要。
- OS X 環境では、パッケージからクラッシック版を取り出して使用する。
スクイークが動作するのに必要なファイルとその取り扱いについて
大事なのは「仮想イメージ」と呼ばれる .image ファイルと、それと同名の「チェンジファイル」、.changes です。仮想イメージとチェンジファイルは常に同名のものをセットで扱います。名称を変える時は拡張子の前がセットで必ず同じ名前になるように注意します。この2つのファイルにスクイークの世界(オブジェクトたち、すなわちシステムやアプリやデータ)が封じ込められています。スクイークでは、データもアプリもシステムも区別がないのと、アプリやシステムが独立した実行型のファイルであったり、データをひとつの文書ファイルとして保存する仕組みにはなっていないので、すべてが一緒くたになってこのファイルの中に収められます。この2つのファイルをバックアップしておけば、環境が正常に機能しなくなった場合でも、最後のバックアップの状態まで簡単に(スクイーク環境についての特別な知識なしで)戻ることができます。
Squeak.exe(Win)や Squeak 3.x.app(Mac)は「仮想マシン」と呼ばれる実行型のファイルで、スクイーク環境とそれが動作する OS との橋渡しをするソフトです。さらに「プラグイン」と呼ばれるファイル群(Mac OS 9 用は拡張子なし、OS X 用は .bundle 、Win 用は .dll )は、まだ開発途上で将来安定したら仮想マシンに含める予定だったり、マシン依存的(たとえば、AppleScript スクリプトをスクイーク環境内で使えるようにするための TestOSAPlugin は Win では意味をなさない)などの理由でとりあえず別ファイルで供給された機能拡張用プログラムが収められたファイルです。仮想マシンもプラグインもスクイーク環境を動かす OS 専用のものを用意しなければいけません。
最後は、ソースファイル、.sources です。ソースファイルはよく仮想マシンのソースファイル(別に配布されています)と取り違えられて必要のないファイルだと思われがちですが、これは誤りです。ソースファイルには、仮想イメージに収められたオブジェクトの定義(設計図のようなもので具体的には Smalltalk のプログラム)が収められています。チェンジファイルとソースファイルの内容を合わせると、チェンジファイルとペアを組んでいる仮想イメージに封じ込められた全オブジェクトの定義が揃うようになっています。
ソースファイルとチェンジファイルはプレーンなテキストファイルなのでテキストエディタなどで内容を見ることができ(見ることはできますが編集したりしてはいけません!)、どの OS でも共通して使えます。仮想イメージファイルは、仮想マシンでしか内容を見ることはできませんが、やはりどの OS でも共通して利用可能です(バイナリ互換)。したがって、自分の立ち寄る先のマシンに仮想マシンとプラグイン、ソースファイルを用意しておけば、あとは仮想イメージとチェンジファイルのペアを持ち歩くだけで、OS の違いを気にせず、作業を続けることができます。さらに、各種 OS 用の仮想マシン、プラグインをフォルダに収めたディスクやメモリーデバイスなどのボリュームを持ち歩けば(そのボリュームを読み書きできるマシンを見つけられれば)、文字通り、どこでも“スクイークする”ことが可能になります。
ポイント
- .image と .changes は名前が同じ物をペアで使う。バックアップや名称変更は同時に。
- .image と .changes と .sources はどのマシンでも使える。
- .chagnes と .sources はただのテキストファイルでエディタなどで開けるが、編集して保存したりしてはいけない。
- 仮想マシンとプラグインはスクイークを使用する OS 環境専用のものを用意しよう。
スクイークの起動とセットアップ
スクイークを起動するには、仮想イメージ( .image ファイル)を仮想マシン( Squeak.exe か Squeak 3.x.app )にドロップインします。拡張子の関連付けがきちんとできていれば、仮想イメージ(仮想マシンではない!)のダブルクリックで起動することもできます。日本語版スクイークの場合、初回起動時には次のような画面になります。ウインドウの中がスクイーク環境です。ここでは、いくつかの設定の変更方法と、それを次回起動時にも反映させる方法を紹介します。
ウインドウ表示と全画面表示の切り替え
スクイーク環境には2つの表示モードがあります。ひとつは初回起動時のような「ウインドウ表示モード」です。もうひとつは「全画面表示モード」です。ウインドウ表示モードは、スクイーク環境と OS の標準環境を自由に行き来できるのでデータのやりとりなどに便利な反面、ウインドウの端にあるオブジェクトを操作する際、誤ってウインドウに影響が及んでしまう(大きさや位置の変更を行なう操作だと勘違いされる)というデメリットもあります。全画面表示モードではこうしたウインドウに絡むトラブルから解放される反面、スクイーク環境に精通していないと終了すらできなくなる…といった不都合があります。
表示モードの切り替えは、画面右下にある「ナビゲータ」タブをクリックして呼び出される“フラップ”と呼ばれる引き出しのようなものから「全画面に飛び出す」(ウインドウ表示時)あるいは「ブラウザに戻す」(全画面表示時)ボタンをクリックします。
使用言語、あるいは日本語の低学年用、中高学年以上用の切り替え
esc キーを押すと「ワールド」(world)と名前が付いたメニューが表示されます(この「ワールド」はデスクトップの別名)。ここから「ヘルプ…」(help...)→「言語を設定」(choose language)とたどって表示されるメニューから「英語」を選ぶと公式版と同じメニューやメッセージ表示にすることができます。
また「日本語」(Japanese) もしくは「日本語(子供用)」(Japanese(children)) で日本語表記にできます。後者で低学年用に一部をひらがな表記にすることも可能です。ただ、日本語モードであっても、メニュー項目すべてが的確な日本語になるわけではありません。また、専門の教育者による作業ではないので、低学年者向け日本語教材として必ずしも十分な水準にはないことを受け入れる必要があります。逆に、低学年教育者のスクイーク環境に対する理解と協力を得て、スクイーク日本語化スタッフもしくはそれに準ずる開発者とともに、低学年者が安心して学べる環境構築プロジェクトの立ち上げが強く望まれるところです。
以降の説明は「日本語」が選択されていることを前提とします。
スクイーク e-トイ専用モードの解除
主にデスクトップをクリックしたときにデスクトップメニューを表示できるようにするか、しないかをこのモードを解除することで行なえます。デスクトップメニューには環境をいまのまま保存するためのメニュー項目「保存」などがあるので、環境の状態を頻繁に変えてそれを次回起動時も保持したいユーザーはスクイーク e-トイ専用モードは解除しておいたほうがよいでしょう。また、日本語版を公式版的に使うときにも同じことが言えます。
スクイーク e-トイ専用モードを解除するには、次の手順を踏みます
- 「部品」フラップから「オブジェクトのカタログ」をデスクトップにドラッグ&ドロップ
- Tools ボタンをクリック
- 下のアイコン一覧から Preferences をデスクトップにドラッグ&ドロップ
- scripting をクリック
- eToyFriendly の ■ をクリックして選択を解除(□)
- Preferences ウインドウの左上の × をクリックして閉じる
- オブジェクトカタログの左上の ○ をクリックして閉じる
次の手順を踏むことで、もっと本格的に公式版の使い勝手に近づけることもできます。
- デスクトップメニュー →「外観…」→ choose theme... → outOfTheBox を選択。
- 二回現われる確認(注意喚起)に対して「了解」
この作業は具体的には Preferences の次の設定を変更するのと同じです。デフォルトまま残しておきたい設定があれば、Preferences モーフ呼び出し時、あるいは ? で表示される画面の Search Preferences for: で検索して個別に設定することもできます。デフォルトにあって気に入っていたのに、outOfTheBox にしたら使えなくなった…などということがあったら、これらの設定を見直して検討してみてください。
- classicNavigatorEnabled → オフ(変化なし。本来は showProjectNavigator と連動してナビゲータフラップの形状を変更)
- debugHaloHandle → オン(Smalltalk プログラマ向けの灰色ハローを表示)
- eToyFriendly → オフ(デスクトップのクリックでデスクトップメニューを表示可能に)
- haloTransitions → オフ(ハロー表示時の視覚効果オフ)
- honorDesktopCmdKeys → オン(フォーカスがデスクトップにあるときにキーショートカットを使えるように)
- alt/cmd-o …… オブジェクトのカタログ表示
- alt/cmd-shift-f …… 共有フラップの表示・非表示
- includeSoundControlInNavigator → オフ(ナビゲータフラップに設置された音量調節を削除)
- magicHalos → オフ(ポインタがハローに乗るまで半透明表示にする機能をオフ)
- mouseOverHalos → オフ(モーフにマウスポインタを合わせたときに自動的にハローを表示)
- projectViewsInWindows → オン(プロジェクトをモーフではなくウインドウで表示)
- propertySheetFromHalo → オフ(マジェンタハローの挙動を変える。プロパティシート呼び出しはshift 時のみに)
- showDirectionHandles → オフ(モーフ選択時に、その向きを示す矢印の表示をオフに)
- soundQuickStart → オフ(別の音声データの再生中は、別の音声データ再生は待つ)
- uniTilesClassic → オン(変化なし。universalTiles と連動する旧バージョンとの互換用設定)
- uniqueNamesInHalos → オフ(モーフ名の重複を避ける措置を講じない)
- unlimitedPaintArea → オフ(ペイントツール使用時に、その描画可能エリアを限定)
- warnIfNoChangesFile → オン(チェンジファイル不明時に警告)
- warnIfNoSourcesFile → オン(ソースファイル不明時に警告)
なお、Prefrences にはこのほかにもいろいろな設定がありますが、見た目の変化が分かりにくいものや中には操作を困難にしたり、障害を起こしかねないものもあります。むやみに変えるのはやめましょう。これらの設定の本当の意味や影響の及ぶ範囲を正確に知るには、環境の動作のしくみや Smalltalk プログラムの読み方を学ぶ必要があります。本サイトでは、こうした情報も含めて、環境としてのスクイークを使いこなすために必要なノウハウを公開できればと思っています。
追記:最新日本語版を公式英語版の使い勝手に近づける手順は こちら にまとめてあります。
環境の状態を保存する
スクイーク e-トイ専用モードのままなら esc キーで、モード解除後ならデスクトップをクリックしてデスクトップメニュー(ワールドメニュー)を呼び出し、そこの「保存」を選択します。この操作(具体的には仮想イメージの保存)で、これまでの環境の設定が次回以降の起動時にも反映されます。
スクイーク e-トイ専用アプリとしてのスクイークの終了操作
Win では alt + F4 で「保存なしに終了してよいか?」を尋ねるダイアログボックスが表示されるので、Yes ボタンで終了します。Mac ではウインドウ表示モードにして File メニューから Quit do not save を選ぶか、デスクトップメニューから「終了」を選択し「終了する前に保存しますか?」の問いに「いいえ」と答えます。いずれも最後に保存してから加えられた環境の設定などの変更は無視されるので、必要な設定や作業を行なった場合は改めて保存操作をしてから終了するよう心がけてください。
ちなみに、スクイークを環境として捉え、作業中のデスクトップをそのまま保存して次回の起動時に反映させたいときは、常にデスクトップメニューから「保存して終了」を選びます。最後に保存したときの環境の状態、つまり現在の仮想イメージファイルはバックアップとして温存しつつも、今の作業状態も保存したいときには「新しい版として保存」もしくは「別名で保存…」で別名称を与えて保存してから「終了」します。
ポイント
- 全画面表示にすると、OS 環境と切り離した“スクイーク・マシン”にできる。
- 使用言語は切り換え可能。デフォルトは子供用の日本語。
- 設定を変えてそれを次回起動時にも保持したければデスクトップメニューから「保存」。
- デスクトップメニューはスクイーク e-トイ専用モードでも esc キーで呼び出せる。
モーフについてと、その基本的な操作方法
スクイーク環境は、通常のコンピュータ環境と異なり、データとアプリとシステムの区別がありません。すべては「オブジェクト」という“プログラムを内包したデータ”を組み合わせることで構築されています。オブジェクトの多くは抽象的で、電子的に存在していても目には見えないのが普通ですが、その中でも特に自分の姿を持ち、それを画面に表示するための特殊な能力を与えられたオブジェクト(可視化されたオブジェクト)をスクイーク環境では「モーフ」と呼びます。スクイークの画面、つまり目に見える物はすべてこのモーフ、あるいはその組み合わせによって構成されています。
目に見えるすべてはモーフ
組み込みのペイントツールで描いた絵も、矩形や楕円、星形、テキストといったドロー系の基本図形もすべてこのモーフです。また、メニューやフラップ(タブ)も基本図形モーフの組み合わせでできています。デスクトップさえも(他のモーフと異なり、移動、複製、拡大縮小、回転などははできませんが)やはりモーフです。
モーフの選択
モーフは alt/cmd-クリックで選択することができます。一回に選択できるのは原則としてモーフひとつだけです。他のモーフを選択しようとすると選択されているモーフの選択は解除されます。モーフは選択されるとその周りに「ハロー」と呼ばれる●型のボタンのようなものを表示します。“ハロー”(Halo) は聖人画や仏像などで、その頭部や全身に放射されるように表現される後光、あるいは自然現象の暈輪のようなものを表わす言葉です。
モーフ選択時に現われるハローについて
ハローの数は、モーフの種類によって変化します。一番少ないのはその性格からモーフとしての機能が制限されているデスクトップでしょう。デスクトップを alt/cmd-クリックするとその周囲に、モーフに依存したメニュー項目を出すための赤いハローと、絵を描くためのグレイのハロー、スクイーク e-トイ用の水色とオレンジの二つのハローの計4つだけ表示します。その他のモーフは、たいてい10個以上のハローを自分の周りに表示します。
モーフの移動
モーフはハローを使って、移動(黒、茶色)、複製(緑)、拡大縮小(黄色)、回転(青)、最小化(薄い黄土色)、削除(ピンク)することができます。この中で特に移動のための黒と茶色のハローは覚えておきましょう。スケッチやドロー系の基本図形の多くは、クリックでピックアップしそのまま移動できますが、他のモーフは、例えば部品フラップからデスクトップにドロップインするとそのままこの方法では動かせなくなってしまいます。こんなときは、alt/cmd-クリックして選択し、黒または茶色のハローを使って移動させなくてはいけません。
黒ハローと茶色ハローの違い
1回の alt/cmd-クリックで選択できるモーフは黒(クリックしてピックアップ後、移動先で再びクリック)でも茶色(ドラッグ)でも同じように移動できます。ただ中には、1回の alt/cmd-クリックでは選択できないものがあります(複数回 alt/cmd-クリックするか、shift-alt/cmd-クリック )。たとえば、入れ物モーフの中に入れたモーフや、本モーフのパーツになったモーフなどがそうです。このようなモーフを選択したとき、黒はその“入れ物”や“本”からモーフを取り出す作業も移動と同時に行なわれます。茶色を使えば、移動だけを行なえますが、そのときはその“入れ物”や“本”の枠から大きくはみ出す位置までは移動できません。
モーフとスクイーク e-トイ・プログラミング
スクイーク e-トイによるプログラミングは、このモーフひとつひとつに個性を与える作業だと言い換えることができます。この“個性”というのも抽象的で目には見えませんが、実はやはりスクイーク環境内に作られるオブジェクトで、正確には「プレイヤー」と呼ばれます。プレイヤーは指定したモーフを“まとって”、我々が組んだプログラムにしたがって動いたり機能を持ったりします。プレイヤーはその「コスチューム」として自由なモーフをまとうことができるので、コスチュームをリアルタイムで取り替えるプログラムを組めば、簡単なアニメーションも実現できます。
ポイント
- 画面に表示されて、操作できるものはすべて「モーフ」。
- モーフは alt/cmd-クリックで選択可能。選択時にはハローが出る。
- 複数回 alt/cmd-クリックしないと選択できないモーフは、黒(ピックアップ&ドロップ)と茶色(単なる移動)の区別が大切。
- スクイーク e-トイ・プログラミングは、モーフに個性である「プレイヤー」をプログラムする作業。
- プレイヤーは特定のモーフに縛られず「コスチューム」としてそれを着替えられる。
スクイーク e-トイ・レッスン
スクイーク e-トイ・プログラミングは開発が目的ではなく、作る過程やそのときの工夫を楽しむものなので、他人が作ったものをもらってただ動かしてみるだけというスタイルを決め込んでしまってはいけません。下手でもいいので、どんどん作って人にみせびらかして苦労したところや自慢のアイデアを説明してあげましょう。とはいえ、何ごとも先達はあらまほしきこと、とも申します。他人の作ったものは、スクイーク e-トイでどんなものを作れるのか、どうやったら作れるのかの両面でおおいに参考になるものです。ここでは、代表的なプログラムの作成の手順をステップ・バイ・ステップで示すことで、皆さんがそのとおりに操作してスクイーク e-トイの基本操作や基本的な考え方に馴れたり、自分で発展・応用させていくときの手助けになるような情報を提供できればと思います。
ドライビング・シミュレータは、スクイーク e-トイの紹介によく使われるデモンストレーション用の題材です。ドラッグ&ドロッププログラミングの基礎や、プレイヤー間の連携、センサー機能の活用などスクイーク e-トイ・プログラミングで最初に知っておくと役に立つ情報が詰め込まれているとてもバランスよくできたプロジェクトです。ぜひ一度、実際に手順を踏みながら作ってみるとよいと思います。作品(プロジェクト)のファイルへの保存のしかたなども紹介します。
アラン・ケイ博士の講演で使われるドライビング・シミュレータでは最後にかならずアニメ機能を付け加えて終わるのですが、上の例ではそれは含まれていません。アニメの作り方、兄弟と複製の区別、乱数パネルの使い方などを含んだプロジェクトを作成してみましょう。
砲撃ゲーム
プレイヤーには自分の軌跡を描く機能が備わっています。これを使うといわゆるタートルグラフィックのようなことができます。また、プレイヤーの自分自身を複製したり消したりする機能、タートルグラフィックのレイヤーに絵を追加する機能、スケッチ同士がふれあっているかどうかを確認する機能の使い方などを学びましょう。
スクイーク e-トイ・プログラマの情報交換の場
梅澤さんの自宅サーバーのご提供を受けて、日本語版の作者のひとりである阿部さんが運営しているプロジェクト交換のためのサイトと掲示板は、スクイーク e-トイ・プログラミングを楽しむ上で、またスクイーク環境をより使い勝手のよいものとするために役立つ情報が得られるはずです。作品を公開して自慢をしたり苦労話をするのには格好の場だと思います。
「プロジェクト置き場」 http://swikis.ddo.jp/abee/3
「SqueakToys掲示板」 http://swikis.ddo.jp/abee/4
このページを編集 (29253 bytes)
This page has been visited 78027 times.