特集JVRSJ Vol.13 No.3 September, 2008

インタラクション技術の新展開

27
159

特集 ■インタラクション技術の新展開

万人のためのプログラミング

原田康徳

NTT

HARADA YASUNORI

インターネット／コンピュータが広く普及し，小学1．はじめにビスケットというビジュアル言語を開発している．こ生でも使いこなす時代である．しかし，まだ発展途上の研究の目的は三つある．
1) 子供を中心に，誰でもプログラミングのエッセンスのインターネットやコンピュータには，非常に多くのを理解してもらう．
2)「例による書き換え」という新しいプログラミング技育といった，ルールやお作法が盛んに教育されている．

術を，様々なメディアに応用する．
3) コンピュータを本質的に創造的な表現手段として捉ピュータに対する直感を身につけて，その結果ルールえ，その基礎技術を確立する．
現在の研究ステージは 1) の途中くらいである．2)，3)

ば，自転車を例にしよう．自転車は便利な乗り物だが，は未着手ではあるが，本解説で，これまでの到達点と，はブレーキが利かないかもしれない．スピードを出し方向性について整理したい．

すぎたら急には止まれないかもしれない．その危険と危険が存在する．そこで，ネチケット，情報モラル教
しかし，ルールを闇雲に丸暗記するのではなく，コンが必要なんだという理解をするべきだと考える．例え
乗り方によっては危険でもある．例えば急な下り坂での境界線を認識しているのは，我々が運動方程式を理解しているからではなく，ましてや自転車を乗るとき

2．プログラミング教育
そもそも，子供にプログラミングを教える必要があるのルールとして暗記しているからでもない．物理世界のだろうか．プログラミングなどは専門家がやればいいへの直感を持っているから，どこまでが安全でどこかことで，一般ユーザには使いやすいコンピュータを提供らが危険かという線引きができるのである．もし物理していればよい，という考え方もある．
2008 年春に公開された文部科学省の新しい学習指導

世界への直感がなければ，どうなるだろう．20 度の下り坂では乗るのは危険です，曲がりたいときは 15m 先要領によると，技術家庭の「D 情報に関する技術」におからブレーキをかけましょう，ただし，速度が 15km/ 時以上のときは 20m 先からブレーキをかけましょう，といて，(3) プログラムによる計測・制御について，次の事項をいった，細かなルールを沢山暗記しなければ怪我をする人が続出するだろう．

指導する．
アイ

コンピュータやインターネットの一つの欠点は目に見コンピュータを利用した計測・制御の基本的な仕組みを知ること．

えないことである．そのため，仕組みを理解するには，数情報処理の手順を考え，簡単なプログラムが作成

学の理解と同様に抽象的な物事を理解する能力が必要であできること．

る．そのため，直感を持てている人は非常に少ない．しかという項目が追加された．子供にプログラミングを教えも，まだ技術的に発展途上である．これはブレーキがほとたいという立場からすると，このような決定は一つの追んど効かない自転車のようなものである．安全に使うには，い風ではある．しかし，国が決めたからやるという消極非常に多くのルールを暗記しないといけないだろう．
一般ユーザにとって，コンピュータは便利ではあるけ的な理由ではなく，我々はもっと積極的な意見として，れど，中身のまったくわからないことへの恐怖感はない

プログラミングを教える必要性を感じている．

27

28
160

日本バーチャルリアリティ学会誌第 13 巻 3 号 2008 年 9 月

特集

インタラクション技術の新展開のだろうか．コンピュータに対する直感は，プログラミングをして，コンピュータを自分で制御する，という経験で身につくだろう．積み木遊びで物理世界への直感を身につけて行くように，コンピュータによるプログラミング遊びで直感が身につけばよいと考える．コンピュータ，インターネットを安全に使うためにはまだまだルールに頼らなければならないだろうけれど，このような直感があると非常にルールも教えやすいだろう ( そんなに堅苦し
い理由だけではなく，プログラミングがこれほど楽しいものである，という秘密を，誰にでも味わってもらいたい，という理由もある )．

図3

前置きが非常に長くなったが，それがビスケットというビジュアル言語を開発している直接的な動機である．
3．ビスケットビスケットの説明をする．しかし，紙面による説明には限界があるので，ぜひビスケットのサイトをご覧になっていただきたい．
図 1 はもっとも基本的なプログラムの例である．二つの円の並びは，ルールというプログラミングの単位である．これは，左辺の絵を右辺の絵に書き換える，という

図4意味である．この例で，左辺と右辺の絵を比較すると，車が少し前にずれている．ビスケットでは一定間隔でこ

図 4 は，アヒルの行列である．上のルールでアヒルはのルールを実行するので，これによって車が前進する．
図 2 はこのバリエーションで，ルールの右側の車が斜め同じ場所をぐるぐると回っている．何かのタイミングでアヒルが 1 列に並んだとき，下のルールが選択される．になっている．その結果車は回転する．ここまでは，単純に変化の可視化であるから，それほど難しい話ではない．
図 3 は，三つのルールからなる．一つは図 1 と同じ車

このルールは，アヒルが 2 羽並ぶと前身する，という意が前進するルール，他の二つは車が人にぶつかりそうにのアヒルに近づくごとにそれを隊列に引き込む．長い時なったら避ける，というルールである．システムはアニ間実行を続けると，最終的には全体が一つの列になる．

メーションの各ステップにおいて，この三つのルールの中からもっとも適したルールを選択して，それを実行す

以上の例は，ルールの左右で絵の個数が変化しないものだった．しかし次の例 ( 図 5) では，1 人が 5 人に変化る．このとき，厳密な絵の配置のマッチングを行うのでする，というルールである．これを実行すると，人の数はなく，並び方が大体近ければマッチする．また，選択が指数関数的に増大する．非常に危険なルールである．

されたルールの実行も，その並び方の近さに応じて変形

今のシステムでは，このように絵の個数が変化するタさせる．すなわちルールとほぼ同じ配置ならば，結果もイプのルールは，特殊なモードでのみ実行を許すことにほぼ同じ結果になるのに対し，かなり配置は違っているしている．それは，ユーザが簡単に間違えてしまって，が，他のルールよりも配置が近いという場合には，そのすぐに画面が絵でいっぱいになってしまうからである．

ずれに応じた変形になる．

しかし，この例は非常に教育的でもある．これはチェー味である．隊列を組んだアヒルは画面内を歩き回り，他ンメールはなぜいけないことか，というのを直接説明している．一人の人がメールを 5 人に送ることを，みんながいっせいに続ければ，すごい勢いでメールが増えていってしまう．我々が普段，直感的に体験している「物が増える」という感覚は，ほとんどの場合，線形な範囲である．指数関数的な増え方は，一般人の想像をはるか
図1に超える速度なのである．
図 4 程度までの，ビスケットのプログラミングを体験

図228

特集

JVRSJ Vol.13 No.3 September, 2008

インタラクション技術の新展開

29161

する技術である．これは計算式が，この技術によって推測可能な範囲であれば成功する．複雑な式や，そもそも式で正確に表現できないような場合は難しい．
一方でビスケットの原理である「例による書き換え」
は y=x*x というプログラムの表現形式を求めない．その代わりに，ここで欲しい計算をそのつど直接実行してしまうのである．
例で説明しよう．最初に1->1

図5という計算例を与える．これに対して，2->?

した子供ならば，図 5 のプログラムの意味はすぐに理解できよう．ここが，重要な点である．指数関数の計算やという質問を出すと，システムは今の知識で値を推測して，たぶん 2 という答えを返すだろう．この答えは求めグラフによる理解は数学の基礎が必要であり，多くの子供が落ちこぼれる．しかし，ビスケットを使えば，そのているものとは違うので，2->4

ような難しい基礎なしに，重要な考え方を理解させることができるのである．という新しい計算例を教える．システムには二つの例が与えられて，入力が 1 や 2 の周辺では求めているものに4．例による書き換え近い答えが返るだろう．それ以外の入力では，システムビスケットの中心技術を「例による書き換え」と呼んの内部モデルにも依存するが，2 点を通る直線というモデル化 P して，それにしたがって答えを返すかもしれでいる．動きの実例を与えて，それを状況に応じて拡大解釈し，動かす．得られた動きが気に入らなければ，さない．それで次の実行，3->?

らに実例を追加し，動きを修正する．ここでは，「例にでは 7 を返してしまう．この値も求めているものとは違よる書き換え」を一般化してその応用を試みる．例として，図 6 のようなグラフが与えられたとき，その計算をうので，計算例として3->9するプログラムを考えてみよう．
従来のプログラミングでは，このグラフを計算する式をy = x*x;を新たに与える．システムのモデルが，2 次式の場合でのように直接与える．これは対象のモデルと計算式が明あれば，これらの知識で完全な解に到達できる．
しかし，内部モデルが 1 次式でしか推測しない場合で確に定義できる場合に有効で，計算結果も正確である．

も，例が二つのときよりはよい振る舞いをするだろう．

それに対して，「例によるプログラミング」という技術

例えば，2.9 の入力に対して，入力が最も近い二つの計算例 2->4, 3->9 を選ぶ．この 2 点を通る直線として 2.9がある．これは，1->1の入力に対して，8.5 を得る．求めている答えは 8.41 で2->4あるから，まあ近い．

3->9

重要な点は内部のモデルの正確さではなく，与えた例という入力と出力の組を与えて，y=x*x という式を推測の周辺ではいい答えを返すということである．この例では，我々が精密な取り扱いに慣れている数値を用いたので，精密なモデルを使うほうが良いように思える．しかし，ビスケットのような図形の配置書き換えでは精密さはそれほど必要としていない．実は，ビスケットの内部モデルは 1 次式ですらない．それでも十分な動きをするのが面白い．
ビスケットの絵の配置に対する書き換えを説明する．
簡単のため，2 枚の絵がルールの左右にそれぞれ入れられている場合を考える．1 枚の絵は位置と角度による 3自由度，2 枚の絵の場合には 6 自由度，しかし，マッチングでは平行移動を無視するので 2 自由度減って，2 枚の絵の配置は 4 自由度である．ルールは 4 次元空間の 1点から，別の 4 次元空間への 1 点への写像と考えること

図629

30162

日本バーチャルリアリティ学会誌第 13 巻 3 号 2008 年 9 月

特集

インタラクション技術の新展開

もコンピュータを使った芸術作品が数多く見られるものの，まだ従来のメディアの延長線上でしか捉えられていないように思われる．専門家だけでなく，一般ユーザにとってもコンピュータによる新しい表現の追求はまった
く手付かずである．
ビスケットは，動く絵本，アニメーションを簡単に作ることができるツール，として認知されている面もある．ある特定のタイプのアニメーションに関して，ビス
図7ケットが非常に手軽に作成できることは事実である．し＊口絵にカラー版掲載

かし，アニメーションという従来から存在している表現ができる．
書き換えられる対象も同じ 4 次元空間の 1 点で，左辺の点の周辺を右辺の点の周辺に写像される ( 図 7)．この視点から見ただけでは，ビスケットの特徴は捉えきれの技術は連続的な値を持つ対象であれば，何にでも適用く伝わっていない．ていない．プログラミングの楽しさという視点がまったできる．例えば，ロボットにダンスを教えることを考える．ロボットの自由度が N であれば，ロボットのあるポー粘土はどんな形でも作ることができる．しかし粘土で作った歯車では大きな機械は作れない．強度的，精度的，ズは N 次元空間の 1 点として捉えられる．ポーズの変化は N 次元から N 次元への写像である．いくつかのポー物性的に様々な問題があるからである．コンピュータは，ズの変化を教えることで，ポーズの時系列 ( ダンス ) を教えることができる．関節の時間変化 ( 角速度 ) も考慮れたものはそのまま完璧にその対象内で動作する．素材

し，2N 次元空間の 1 点として捉えると，より滑らかな由自在に形を作れるようなインタフェース，言語機構はダンスが得られるだろう．対象が多少離散的であってもまだ発明されていない．

対象を限定するけれども，プログラミングによって作らとしての性質は申し分ないのだけれど，粘土のように自可能である．ピアノにフレーズの例を教えて，延々と新絵を描く，写真を撮る，日記を書く，といった創造的なしいフレーズを生成させよう．時間的につながった二つ活動と同様にプログラミングが捉えられる日がくるであろのフレーズを複数個システムに教える．1 曲まるまる与えて，1 小節を一つの単位として，つながった 2 小節をう．プログラミングの定義，解釈は今よりもさらに広く捉フレーズの組としても良いかもしれない．フレーズに対ング技術が発明されるだろう．それらによって，人間の創して，フレーズ間の距離と生成の計算方法が定義されて造性はさらに大きく発揮できることを願っている．

えられ，「例による書き換え」の他にも様々なプログラミいるとしよう．生成の計算方法とは，A->B という変化があったとき，A に近い A' を与えたとき B に近い B' を求めることである．単純な方法では，フレーズ間の距

参考文献[1] 文部科学省：新しい学習指導要領

離は音程の時間的変化の違いと，絶対的な音程の違いを[2]http://www.mext.go.jp/a_menu/shotou/new-cs/index.htm

ミックスしたもの，生成の計算は，各時間ごとのずれをそのまま適用したもので良いだろう．例えば A' は A とSoft Program Semantics for Children --,HCC 2003, IEEE.

Yasunori Harada, Richard Potter : Fuzzy Rewriting --比べて 3 拍目が半音高ければ，B' は B の 3 拍目を半音(2003)

高くする，ということである．このようにして，ある程[3] 原田康徳，加藤美由紀，Richard Potter : Viscuit: 柔軟

度複雑な例を与えたら，延々と新しいフレーズを生成しな動作をするビジュアル言語，WISS 2003.(2003/12/4)

続けるピアノができる．
以上，ビスケットの基本的な動作原理である「例によ【略歴】

る書き換え」の中身とその応用の可能性について述べて原田康徳（HARADA Yasunori）

きた．これらの応用に関しては，可能性は感じられるが，日本電信電話株式会社
NTT コミュニケーション科学基礎研究所

まだ，どれも実装してはいない．構想のみである．

主任研究員
1963 年生まれ．1992 年 北海道大学大学院 工学研究科
情報工学専攻博士後期課程卒業， 博士 ( 工学 )．同年日
本電信電話株式会社 NTT 基礎研究所入社．1998 年〜

5．創造的な表現手段としてのコンピュータ
さらに，構想の範囲を超え，妄想に近い話をお許し願2001 年科学技術振興事業団さきがけ研究員．2004 年〜

いたい．

2006 年 IPA 未踏ソフトウェア創造事業プロジェクトマ

油絵の具や，写真の発明と同様に，コンピュータは新しい表現のメディアとしても発展してきた．これまでに

ネージャ．2000 年より現職．

30