エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

[連載:五十嵐悠紀⑤] なぜ「ステンシル下絵生成ソフト」ができたのか? 日常の”思いつき”を実用化する研究者の眼

公開

 
天才プログラマー・五十嵐 悠紀のほのぼの研究生活
先読み(5)五十嵐さん_100px.jpg

筑波大学  システム情報工学研究科  コンピュータサイエンス専攻  非数値処理アルゴリズム研究室(NPAL)
五十嵐 悠紀

2004年度下期、2005年度下期とIPA未踏ソフトに採択された、『天才プログラマー/スーパークリエータ』。筑波大学 システム情報工学研究科 コンピュータサイエンス専攻 非数値処理アルゴリズム研究室(NPAL)に在籍し、CG/UIの研究・開発に従事する。プライベートでは二児の母でもある

前回は、現場のニーズに合わせて共同研究をした例を挙げました。それでは、自分で研究テーマを考える時はどうするのでしょう?

「既存研究を調べて、やられていないことをする」

言ってしまえばこれだけですが、そう簡単ではありません。まったく新しい技術を思いつくのが研究者としてかっこいいのは言うまでもありません。ただ、例えば、2次元で成功した技術を3次元に拡張したり、静止画用の技術を動画で使えるように拡張したり…と、既存研究を発展させたり、拡張したりする研究も大事です。

今回は新しいテーマを始めた時の裏話をしてみます。

「不便を感じる⇒ソフトでの代用」が発想のスタート地点

これはうちの息子が誕生したころの話です。生まれたての赤ちゃんが着る新生児服は真っ白なものが多いのですが、(最近はカラフルな新生児服も多いみたいですが)これを準備していたわたしは、「真っ白でつまらないから、刺しゅうでもしてかわいらしくしてしまおう」と考えました。ところが、里帰りしていたわたしは、母に止められたのです。
 
「赤ちゃんの肌は敏感だから、刺しゅうなんてダメ。玉どめが肌にあたってしまうのは良くないし、縫い目だってなるべく肌に直接当たらないように工夫されているのよ」

新生児用肌着

新生児用肌着。画像からは分かりにくいが、縫い代が外側にある

確かに新生児服は縫い代が外側に来るように作られており、肌に当たらないような工夫がされています(裏表に着せているような感じです)。

そこでわたしは「じゃあ、ステンシルしたらどうかな? 布用のインクもあるみたいだし」と考えました。

“ステンシル”はみなさんご存知でしょうか? 穴の空いた紙の上からインクをぺたぺたとのせて絵を描いていきます。ちょうど年賀状の時期だったこともあり、かつてステンシルで年賀状を1枚1枚ぺたぺた作ったのを思い出したのです。

せっかくなら、自分でオリジナルの図柄をステンシルしたい、と思い、紙と鉛筆を持ってきてステンシルの型をデザインしてみたところ、ステンシルは「1枚の紙でつながった形状」という制約があるため、実は難しい。

穴のあいた1枚の紙の上からインクをのせて絵を描いていく

穴のあいた1枚の紙の上からインクをのせて絵を描いていく”ステンシル”。これはシステムを開発してオリジナルな図柄のステンシルをデザインした例

インターネットで「ステンシル」と検索をしたりして、いろいろ試してみること数時間……。

「これはステンシル用のお絵かきソフトを作った方が早いかも!」と思い立って始めたのが、ステンシルデザインのためのドローエディタの研究の始まりです。

このシステムはマウスやペンタブレットで線を描いていくだけでシステムが自動的に「1枚の紙でつながった型紙」という制約を満たすようにリアルタイムに処理を施していきます。ユーザは「1枚の紙につながった」ということを一切気にせずに図柄をデザインしていけばよい、というコンセプトです。

既存研究を調べると、1枚の絵を入力としてステンシルに変換する技術は論文発表されているものの、ユーザが描く絵を対話的にステンシルとしての処理を施していく技術はまだ発表されていません。

「次の研究テーマはこれだー!」

ビビビとくる瞬間です。

最初のユーザーは自分。まずは自分が満足できるものをつくる

このようにして始まったステンシル専用お絵かきソフト。お絵かきソフトというと、一般にはベクター形式とラスタ形式に大きく分かれます。どちらにするかも当然悩みました。ユーザー(開発当初の時点ではわたし自身)から見たら、1度描いた線を消したり、ひっぱったり、順番を入れ替えたりしたいのでベクター形式のソフトがいい。

でもシステムで「1枚の紙につながった」という処理を施すにはラスタ形式で演算処理した方がいい。悩んだ末、結局システムの内部で両方の形式を持たせたまま開発していきました。これも最終的にはこのソフトの技術的なポイントになりました。

ブタのシッポ例

ソフトを使って「ブタのシッポ」や「魚のウロコ」を描いてみた例

ぶたのしっぽも作りたい。コピー機能を作ってみたら、魚のうろこが作れて楽しいだろうな――

など、自分が描きたいものに合わせて機能を追加していきます。機能を追加する際には、システム内部に様々な工夫、技術が盛り込む必要があり、何日もうんうん頭をひねることになるのですが、これが楽しいのでやめられません。

このCraftROBOは一般家庭で普及しているプリンタと同程度のサイズ、価格なのでお手軽です

ちなみにこの『Craft ROBO』は、一般家庭で普及しているプリンタと同程度のサイズ、価格でお手軽です

システムでデザインした絵をカッティングプロッタ『Craft ROBO』を使って切り出せば,オリジナルなステンシル型のできあがりです。

わたし自身がデザインしていて楽しかったので、ワークショップを開催して子どもたちにも意見を聞いてみることに。日本科学未来館にて、オリジナルなステンシルをデザインしてエコバッグを作るワークショップを開催しました。

ワークショップの様子

ワークショップで小学生がデザインしたオリジナルなステンシル

これは連載②でも少し紹介しました。当日配布したこのエコバッグに最初からついていた未来館のロゴも「これもステンシルだー!」などと子どもたちははしゃぎながらもオリジナルなステンシルデザインを楽しんでくれました。

個人個人が既成のものではなく、オリジナルなデザインを楽しむ。まさにこれがわたしがこれまでやってきたことであり、これからも注目していきたいことなのですが、別の視点に目を向けてコメントをくださった方もいました。

「面で絵を描く体験」ができるシステムでもある。

この絵のように、「面で絵を描く体験」ができるシステムでもある

普通の鉛筆やクレヨンなどの画材だと、線で絵を描いていきますが、このステンシルシステムでは、ブラシを内部塗りつぶしモードに切り替えることで「面で」絵を描いていくことができます。これは子どもたちにとっても非常に貴重な体験。例えば、以下のアリの例。このように”面で絵を描く体験”ができるシステムとしても有意義だというお話でした。

このような経緯を経てステンシルシステムの研究開発は進んで行きました。

研究はオープンに。それがインタフェースを進化させる

社会に出てくる製品はもちろん完成されたものですが、研究も論文として発表される時にはすでにある程度、方向性も固まっていたり、完成されていることがほとんどです。「どのようにしてその研究が始まったのか?」という部分は意外と人に知られることはありません。けれど、わたしはそのフェーズこそが一番面白い部分でもあり、一番大変な部分だと思うのです

まだ発展途上の段階、議論の余地がある段階でたくさんの人からのコメントをもらいながら研究・開発を進めていけるような場(コミュニティ)は必要です。特に大学などにおける研究は論文発表前は研究室内での議論のみになりがちです。しかし、そこへ研究とは関係のない子どもたちや一般の人の意見が入るようになることで、今までとはまた違った良い方向へと発展していくのではないでしょうか。

わたしは自分で開発してきたさまざまな初心者向け支援ソフトを使ってワークショップを行っていますが、子どもたちから出された貴重な意見を大事にしながら、このような場が増えていくことを願っています。

撮影/小林 正(人物のみ)