Second Lifeの世界において沢山のリアルプログラマーが活躍しています。
この方のブログタイトルもモロ「エースプログラマのuki-uki 日記」と書いてあり、
私が始めた当初、SLプログラマーといえばこの方が最初に脳裏に浮かびました。


http://blog.g-up.com/hidenori_goto/


それからつい最近、SL24時間イベントの中でかき氷機を見つけ、
面白いと思って、製作者をチェックしたらこの方だったので、今回取材をしようと思いました。


本日はそんなリアルプログラマでもあるHidenori Glushenkoさんに
お話をお伺いしました!
----------------------------------------------------------------------
emo8889 Xeno: SLを始めたきっかけを教えてください。


Hidenori Glushenko: CNET Japan にLindenLabのCEOのインタビュー記事が掲載
されていたのを読んで興味を持ったのが一番初めです。

http://japan.cnet.com/interview/media/story/0,2000055959,20298467,00.htm


元々インターネット系の新しいツールを試したりするのが好きで、
何か面白そうなものが出てきたのでやってみようと思いましたね。
自分のブログ記事のネタにもなりそうでしたし。


emo8889 Xeno: 第一印象はどうでしたか?


Hidenori Glushenko: 「面白い!」と「よくわからない」が半々と言った感じだった気がします。
私自身ファミコン世代で、どちらかというとゲーム好きではあるのですが、
SecondLife をプレイするまで、ネットワーク型のゲームと言われるものは
1つもプレイしたことがありませんでした。


「世界中とつながった世界を、素直に面白いと感じました」
emo8889 Xeno: だったらSLは新鮮だったでしょう。


Hidenori Glushenko: ネットワークで世界中とつながった世界を、素直に面白いと感じました。
その反面、「何をどうしたらいいのか分からない」という印象も強かったです。
オリエンテーションアイランドやヘルプアイランドで、
基本的な操作方法やプリミティブの作り方の初歩などは分かったのですが、
そこから先の道筋などは、さっぱり情報が無いと感じました。


emo8889 Xeno: ではどんな目的を持って活動を始めたんですか?


Hidenori Glushenko: 当初から自分の中に明確な目的があったわけではありませんが、
とりあえず何か売ってみたい、ということで、単純に土地を買うということをしました。

初めは、土地にプリム数制限があることや、プレミアム会員にはFirstLandという
格安の土地を手に入れることができる権利(今は廃止されました)があることも知りませんでした。
そこで、最初にリアルマネーで1000L$だけL$を買い、
そのお金でたしか 32sqm の土地を買ったと記憶しています。


emo8889 Xeno: 32sqm!?


Hidenori Glushenko: ですが、この広さではほとんどモノを置けませんw
置けるプリム数の少なさに愕然とした事を覚えています。
で、周りの土地を買い足して、結局 320sqm くらいまで広げました。


emo8889 Xeno: 物作りはそれからスタートですね。


Hidenori Glushenko: この頃から日本の方が書いている情報サイトを見つけて、
Ivory Tower などの存在を知り、プリムのいじり方などを練習したりして、
初めて作ったのが以下の椅子です。




ただこの椅子、形を作ったのはいいのですが、何故か上手く座ってくれないんです。
きちんと sitさせるのにスクリプトを仕込まないといけない事を知らなかったんですよねw。


emo8889 Xeno: それがLSLの第一歩となるわけですね。


Hidenori Glushenko: はい。幸いフリーでもらったRelax Chairというのが編集可能だったので、
それを分解して調べたりしていました。
結局は透明になったプリムにsitスクリプトが仕込んであったのですが、
しばらくその透明プリムの存在に気づかず、必死で悩んでましたね。


その後、Poserで自前の座りアニメをアップして座らせるようにしてみたり、
ダンスアニメーションを作ったりもしていました。
建物製作や、LSLでラジコンを作ろうとしていたのも、このあたりの時期でしょうか。
自分一人だけでコソコソとやっていました。


emo8889 Xeno: Hidenoriさんは友人が多そうなので意外ですね。


Hidenori Glushenko: 今年の年明けくらいに、以前からチェックしていた Lico さんのブログで
「住人たちで作っていく島 TWINKLE」が住人を募集しているということを知りました。

当時はSecondLife スキルは何もないに等しかったのですが、思い切って参加してみました。


emo8889 Xeno: そこではどんな経験をされたんでしょうか?


Hidenori Glushenko: TWINKLE での活動は今思えばすごく短い期間なのですが、
TWINKLEがあったからこそ、様々な知識を深めることもできましたし、
SecondLife の可能性もより大きく感じることができました。

この活動を通して良い意味でお互いに刺激しあえる仲間と出会えたという事が、
今でも大きな財産となっていると感じています。


emo8889 Xeno: ということは今のHidenoriさんのルーツとも言えるんですね。
例えばどんな知識を得たんですか?


Hidenori Glushenko: SecondLife に関連するあらゆる知識を深められたと思います。
スクリプトの知識はもちろん、建物を作る際に細かく位置あわせする事や、
アバターのサイズと比較してどのような大きさで建築するべきなのかとか。
TWINKLE以前は、オブジェクト編集時のグリッドの使い方すら知りませんでしたからw


それ以外にも、自分でSIMなんて持ったことありませんでしたから
SIMの地形をいじることや、ランディングポイントをどう設計するとか
そういったビルディングに関わる全般的なことは、相当学び、またお互い研究していました。


その他、TWINKLEではサンドボックスを運営していたのですが、
サンドボックスにいらっしゃるちょっと元気な方々に対して、実際に何をしたら警告し、BANにするのか、
BANにしていい規準は何なのか、などを話し合ったりもしました。
他のコミュニティがどういった運営をしているのかと言った事も調べたりしていました。


単純に一緒にやっていた仲間が皆さん刺激的な方々だったので
しゃべっているだけでもいろいろな周辺知識を深められたと思ってます。


emo8889 Xeno: なるほど、他にはどんな活動をされてたんですか?


Hidenori Glushenko: TWINKLE の後は、Accuraさんの英会話教室に参加してみたり、
無謀にもスキンを作る練習などしてみたり、
Second JOBさんの展示会に Asimonさんと一緒にブースを出してみたり、
Microsoft のキャンペーンの卵探しに必死になったりと、
あまり方向性も定まらないままグダグダとやって今に至っています。


emo8889 Xeno: ではHidenoriさんの得意分野、LSLを利用した製作物を教えてください。


Hidenori Glushenko: 色と布(テクスチャ)をHUDで変更できる椅子があります。



「カスタマイズ可能な製品」というと、ダイアログで選択するタイプの物が一般的ですが、
ダイアログの場合、色を直感的に選ぶ事ができません。
もっと分かりやすいインターフェイスをつければ、
付加価値を高められるのではないか、というコンセプトで作りました。
ちなみにこの椅子のオブジェクトのモデリングは Asimon さんで、
私が作ったのは純粋にスクリプトだけですw。


emo8889 Xeno: これ凄いですね!でもどういった手法で?


Hidenori Glushenko: 使っているLSLの機能としては、llListen での通信、
llMessageLinked での通信、llSetColor や llSetTexture での色やテクスチャの変更、
といったあたりがメインです。スクリプトをやっている方であれば大体の実装は想像が
つくのではないかと思います。


emo8889 Xeno: いくつか方法はありそうですね。


Hidenori Glushenko: 色やテクスチャの変更処理で一番単純に思いつくのは、
椅子のルートプリムに仕込んだスクリプトでループを回し、
各子プリム(プリムによっては面指定)の色やテクスチャを順番に変えていくという実装です。
しかしこのように実装すると、1回のボタン操作で色やテクスチャが変更されるのに
結構時間がかかってしまいます。


特に llSetTexture の場合は1回の呼び出しごとにディレイが0.2秒発生しますので、
ループで複数回処理すると見た目のレスポンスが非常に悪くなります。

このレスポンスを改善するために、ルートプリムに処理をまとめるのではなくて、
各子プリムに実際に色やテクスチャを変更する処理を記述しておき、
ルートからは llMessageLinked で変更メッセージをすべての子プリムに向け
て送信するだけ、といった実装にしてあります。


emo8889 Xeno: うん、それだと解決できますね。


Hidenori Glushenko: 細かい部分では、一部私の想像で「この方が多少速いかもしれない」という
ような最適化も実験的に取り入れたりしています。

最適化については、実際にサーバー上でどういった命令が実行されて、
どの命令がどの程度の負荷なのかが分からないと、正確なことはいえません。

たとえば比較処理では、ビット演算<数値比較<文字列比較の順で処理が重くなることが想像できます。

したがって、スクリプトの中で使用するフラグでも、実行頻度の高い箇所で
使用するものはビットフラグや数値のフラグで処理できるようにして、
文字列比較は最小限になるようにしたりしています。


emo8889 Xeno: 他にはどのような物を作られたんですか?


Hidenori Glushenko: この椅子以外でたいしたものを作っていないのですが、
作りかけのものの中では、自分のオンライン状況を表示するブログパーツと言うのがあります。

こちらのスクリプトで工夫している箇所は、登録端末のダイアログで英語と
日本語を切り替えられるようにしている点でしょうか。



言語ごとに別の state として実装したり、ベタにゴリゴリと実装することも
できますが、このダイアログの場合、後で別の言語も容易に追加できるように、
言語と、それに対応する、ボタンやメッセージごとの文言をリストで管理して
いて、現在選択されている言語インデックスにあわせて、表示される文言が
自動的に選択されるようになっています。


emo8889 Xeno: 完成が楽しみですねー。
そんなLSLを使用してみてどんな感想をお持ちですか?


Hidenori Glushenko: LSL があるおかげで、SecondLife の「自由度」というのが、
段違いに大きく見えるのは確かです。
コレがなければ、私は SecondLife を始めていなかったかもしれません。


ただ、私が現在 LSL に対して持っている感想は

 1.プログラミング言語自体の機能が貧弱
 2.SecondLife の各種情報に対してのアクセスに対して制限が多すぎる
 3.インターフェイス構築機能が貧弱

というものです。


emo8889 Xeno: まさにLSLの弱点ですね。


Hidenori Glushenko: 今は LSL の機能が貧弱すぎる事と、パフォーマンスが低すぎるので、
非常に非効率でパフォーマンス重視な、割とベタな書き方をしないといけない。
かつ、書き方にあまり選択肢がないため、オリジナリティを表現できる余地が
非常に少ないと感じています。


また、現在のLSLでは、オブジェクトを操作する為の機能が中心となっていますが、
それ以外の情報、例えば土地の値段だとか、
販売設定になっているオブジェクトの値段等は、LSLから取得できません。


emo8889 Xeno: 見える部分だけでも取得できたら良いですよね。


Hidenori Glushenko: もちろんプライバシーやセキュリティの問題で、
何でも取得できるようにするわけには行かないでしょうけれど、
既に誰でも見れる状態になっている情報は、
LSL からもっと取得出来るようになって欲しいです。


3つめに、今の LSL(とプリミティブ)では、ユーザーと対話するようなインターフェイスは作りづらい。
特に多くの文字情報をユーザーに読ませるようなインターフェイスは、
ノートカードか巨大なテクスチャにびっしりと書き込むなどしか方法がありません。

私は以前、無理やりスクロールバーなどを作ろうとしたことがありますが、
今のLSLではそれも実現できませんでした。


emo8889 Xeno: そういった機能の実装があれば表現が膨らみますよね。


Hidenori Glushenko: プリムの表面にHTMLをレンダリングする機能も、
この先の実装予定に入っているようです。
しかし私は、外部サーバーにHTMLを用意するのではなくて、あくまで SecondLife の中の LSL の機能のみで、
HTML に近いテキストレイアウトやプルダウンなどの要素を作れたら、
出来る事の幅がもっと広がるだろうなと思います。


「住人が便利だと思ってくれるツールやサービスを作りたい」

emo8889 Xeno: では今後はどのような物を作りたいと思っていますか?


Hidenori Glushenko: 多くの SecondLife 住人が「便利」だと思ってくれるような、
ツールやサービスを作りたいと思っています。


今の SecondLife では検索が特に不便だと私は思っています。
この部分を便利にする仕組みは作りたいですね。
サングラスが欲しい、といった時、現状では SLExchange で探すのがもっとも効率が良い。


http://www.slexchange.com/index.php

SLExchangeが便利なのは、よくあるショッピングサイトのように数多くの商品が横断的に
カテゴライズされていて、素早く探せるからですが、
SLの中の世界だと、検索では「店」や「モール」という単位なので、
その先は自分の足で時間をかけて商品を見て回らないといけません。


emo8889 Xeno: 確かに買い物に不便を感じる時があります。


Hidenori Glushenko: もちろん、自分の足で見て回る楽しさというのもあるのですが
「こういうものが欲しい」というイメージが先にある場合、
今のセカンドライフの検索では思うように商品を見つけられません。


これは、ユーザーにとって不便なだけでなくて、商品を作っているクリエイターにとっても、
本当に商品を欲しいと思っている人とめぐり合う可能性が低くなっているわけで
このあたりをもっと便利に出来たらなぁと思います。


emo8889 Xeno: それが出来たらめちゃくちゃ便利ですね!


Hidenori Glushenko: また、私にとっての SecondLife を大きく変えるきっかけとなった、
TWINKLE プロジェクトのように、住人同士が話し合って意見を出し合って
SIM を作っていくという活動ができる場を提供したりもしたいですね。

それ以外では、LSLを書いたりサービスを作ったりするのと合わせて、
いろいろな情報提供活動も積極的にやっていきたいです。


emo8889 Xeno: Akibaに公園を作ってますが、それも活動の一環?


Hidenori Glushenko: 単なる公園ですw。
今でもそうなのですが、何か目的があって広場にしているわけではないです。
初めは本当に池だけがあって、ご存知の方もいらっしゃるかもしれませんが、
池は実は深くて、中に落ちると、一番底にちょっとしたスクリプトの仕掛けがあって
それで脱出出来るようになっています。


Akibaの土地を借りて数日で、何も考えずにこの仕掛けを作りました。
すると、当時Akibaの住人だったpoipoiさんに気にいっていただけたようで
その仕掛けで脱出後に上手く着地する、という単純な遊び方まで発明されたんですw


とても単純なことなのですが、そういう単純な事でもSLでは結構面白かったりw
そういうことがあって、あそこは私にとってちょっとした友達作りの場という位置づけではあります。



http://slurl.com/secondlife/Akiba/182/84/22


emo8889 Xeno: フリーアイテムも置いていますよね。


Hidenori Glushenko: ええ。たくさんのクリエイターの方にフリーアイテムを置いていただいています。
なぜか雑誌に取り上げられたりもしていますし、私がフラフラと公園に顔を出すと
必ず「最近始めたばかりです」という方とお会いできるので、
多少の認知度はあるのかもしれません。


emo8889 Xeno: ではSLでの一番の思い出を教えてください。


Hidenori Glushenko: 一番記憶に残っているのは、
今ではすっかり有名ブランドになってしまった「LicoLico」の Lico さんに
Second Life 内で初めてお会いした時のことでしょうか。


実はLicoさんは、私がSecondLife 内で初めて会った日本人プレイヤーなんです。

当時私のフレンドリストには日本人は一人もいなくて、
一人でこもってコソコソやっているだけでしたが、
ウェブで情報を探しているうちに Lico さんのブログを見つけました。


その頃は Lico さんもまだ初めの服と目玉あたりを作ったばかりで、
メインランドのお店を準備しているような時でした。


私は本当に何も知識がなかったのですが、Lico さんのブログに書いてあった
SLURL をおもむろにクリックしてテレポートしたら、
目の前に描画されたお店の中に一人のアバターがいて、何か作業してたんです。

それが Lico さんご本人だったんですよ。


emo8889 Xeno: ご本人とご対面ですねw


Hidenori Glushenko: いつも読んでいるブログを書いている人が、
目の前にいて何かしている!

これが私にはとても衝撃的でした。


この、「相手が今そこにいる!」という感覚・体験は、ブログなどのように、
相手と時間を共有することの無いメディアでは味わえないと思います。


emo8889 Xeno: 他にSLへ感じている魅力を教えてください。


Hidenori Glushenko: 思い出の部分でもお話した、相手と時間を共有する体験の魅力は
非常に大きいと思います。

また LSL のように、SecondLife の情報をユーザーが操作できる、
いわば「API」が用意されていたり、クライアントがオープンソースになっていたりすることは、
私に限らず多くのプログラマが惹きつけられる部分ではないでしょうか。


emo8889 Xeno: プログラムの世界ではSLはメジャー?


Hidenori Glushenko: プログラマーの世界という立場でコメント出来るほど、
プログラマの知り合いが沢山いるわけでもありませんのでなんともいえませんw。
ただ、はてなブックマークされていたり、IT系ニュースサイトで多く紹介されていますので
「知っている人の数」という意味では、他の職業の方よりも
プログラマーなどのIT系の職業の方の方が多いとは思います。
実際にプレイしている方はまだまだ少ない気がします。



「SLは簡単にプログラマーとしての第1歩を踏み出せます」

emo8889 Xeno: ところで私のような素人がLSLを始めるには何かコツあります?


Hidenori Glushenko: SLの場合、LSLで自分の書いた結果でプリムの大きさや見た目が変わったりして、
結果が分かりやすいという特徴があります。


自分でLSLを書いてみて、プリムを移動させる。
結構単純なことですが、1から自分で書いたLSLでプリムが動いた時、
もしかすると「動いたーっ!」という感動があるかもしれません。


これは極端な例ですが、自分が作ったものでオブジェクトに動きが付く。これは面白いことだと思います。
そういう「面白そう」ということを見つけて、そこを基点に自分なりに調べてみたり、
ポイントだけをスクリプターからアドバイスをもらったりしながら、あくまで自分で作る。

そういう事をしていけば、文法を自然にマスターしていけるのはもちろん、
「スクリプトの楽しさ」を感じてもらえるはずです。


スクリプトの知識を深める・上達させるには
この「面白いと思う」気持ちが一番重要だと思ってます。


emo8889 Xeno: では最後に読者の方にメッセージをお願いします。


Hidenori Glushenko: プログラミング言語を学んだことが無い方は、
プログラミング言語と聞くと、凄く難しいものだと思われるかもしれませんが、
本当は、英語などを勉強するよりも圧倒的にシンプルで習得しやすいものだと私は考えています。
(賛否両論ありそうですが)


これまでプログラミング言語を学んだことが無い方でも、SecondLife の中では
プログラミングをするための環境が初めから整っていて、簡単にプログラマーとしての第1歩を踏み出せます。


emo8889 Xeno: SLを通じて知識を深めていければ良いですよね!


Hidenori Glushenko: 最初は既存の簡単なサンプルスクリプトの改造などからチャレンジして、周り
のスクリプターの方などに聞きながらでも少しずつスクリプトのことを理解し、
そして「スクリプトやプログラミングって面白い!」と思う方が増えてくれ
ればいいなぁと思っています。


emo8889 Xeno: ありがとうございました!
----------------------------------------------------------------------
今回の取材では私からお願いして、スプリクトを詳しく書いた記述をしていただきました。
といいますのも、この方はリアルでもプロフェッショナルで、そんな方が
どのような視点と考えで、オブジェクト製作に取り組んでいるのかを伺いたかったからです。


もちろんその他にもSLならではの出会いや、活動が含まれており
LSLでの活動を中心に色々な世界が膨らんでらっしゃると感じる事ができました。


この方の活躍はご自身のブログにもあります、是非みなさんもその記事を見て
プログラマとしての活動をチェックしてみてはいかがでしょうか?