[編集者のメモ: この記事で取り上げたIBM Lotus SametimeとSecond Lifeの結合は、US環境以外での検証を行っていません。この記事は、US環境以外で動作を保障するものではありません。また、この記事は2007年5月時点の情報に基づき執筆しています。]
このチュートリアルでは、Second Lifeゲーム内からSametimeチャットを行う(および、その逆方向に行う)方法を説明します。Sametimeボットの使い方をもっと知りたい開発者、またはSecond Lifeでのアニメーションが関与しない基本的なスクリプトを知りたい開発者向けの内容です。
このチュートリアルを進めるには、Java™ プログラミングの一般的な概念に習熟している必要があります。サーブレットおよびスレッドなどの概念に習熟していると役に立ちますが、必須ではありません。このチュートリアルは、Second Lifeのスクリプト言語であるLinden Script Languageでのプログラミングに必ずしも習熟していないことを前提としています。
また、特定の状況では、PHPベースのプロキシーが必要となる場合がありますが(詳細については、システム要件のセクションを参照してください)、PHPの知識は不要です。必要なことはチュートリアルですべて説明します。
Second Lifeは大規模なマルチプレーヤー・オンライン・ロールプレイング・ゲーム(MMORPG: Massively Multiplayer Online Role-Playing Game)として知られ、ユーザーはゲームの世界に没頭することができます。ユーザーは、ゲーム内で個々のユーザーとチャットをして何時間も(それ以上も!)過ごせます。しかし、ビジネスの世界がSecond Lifeの存在を知り始めると、「仕事をしながら、どのようにしてゲームの世界での存在を保つのか」という自明の疑問が生じます。
一方、Lotus Sametimeは、チャット・ウィンドウを常に見続けていなくても、組織間でリアルタイムに連絡を取り合うことを可能にするチャット環境です。
このチュートリアルでは、2つの世界を最大限に活用する環境の作成方法を説明します。読者は、Second LifeのチャットをLotus Sametimeに(およびその逆方向に)中継するSametimeオブジェクトの作成方法を学びます。言い換えると、Lotus Sametimeを使用して、Second Lifeにログインせずに内部のゲーム・プレイヤーとの会話ができ、またSecond Life内で通常のチャットを行い、これを労力なしに外部に中継することができます。
このチュートリアルでは、以下のことを学習します:
- Sametimeボットを作成する方法
- Lotus Sametime Connectの外部からLotus Sametimeと通信する方法
- SametimeボットをJavaサーブレットと統合する方法
- 基本的なSecond Lifeスクリプトを作成する方法
- Second Life内で話したり聞いたりする方法
- Second LifeでHTTP要求を使用する方法
- 接続の問題を解決するPHPプロキシーの作成方法
何らかの言語でのプログラミングの基礎知識が必要です。イベントおよびベクトル代数の経験は役に立ちますが、必須ではありません。
このチュートリアルを進めるには、以下のツールがインストールされ、利用できることが必要です。
- Lotus Sametime 7.5 : このチュートリアルでは、専用のSametimeサーバーは必要はありません。Sametime 7.5 Demoサーバー(US)を使用できます。ただし、Lotus Sametimeのトライアル・バージョン(US)をダウンロードできます。
- Lotus Sametime SDK 7.5(US) : このツールキットには、さまざまな環境からLotus Sametimeと対話するために必要なサポート・クラスおよびファイルが含まれています。このチュートリアルでは、Lotus Sametime Connect JavaクライアントのJARファイルを使用します。
- Lotus Sametime Connect(US) : Second Life内のアバターと通信するためにSametimeクライアントが必要です。
- Second Life(*1): http://www.secondlife.com(*2) でフリー・アカウントを申し込んだ後、Second Lifeクライアントを無料でダウンロードできます(このチュートリアルのすべての手順は、フリー・アカウントで実行されています)。Second Life用のシステム要件(*3) を参照してください。この執筆時点では、Microsoft® Windows® Vistaのサポートがちょうどオンラインで提供されるところでした。
*1 Second Life(US) : Second Lifeのシステム要件
*2 http://www.secondlife.com(US) : Second Lifeのフリー・アカウントのお申し込み
*3 Second Life用のシステム要件 (US) : IBMサイト
- IBM Rational Application Developer(US) または他のEclipseベースのIDE:JavaクラスおよびJavaサーブレットを作成します。このため、Rational Application Developerなどのツールを使用すると、作業がたいへん簡単になります。
- 接続 : SametimeボットはJavaサーブレットを通じて通信します。外部からアクセスできるJavaベースのホスティングをお持ちの場合は、これでインストールは完了です。「概要」に移動できます。お持ちでない場合、たとえば、ローカル・マシンでサーブレットを実行する場合は、会社のファイアウォールの外部からはアクセスできないため、以下に示すもう1セットのソフトウェアが必要です。
- PHP/Apache : このチュートリアルでは、実際にはアドレスを指定しなくてもSametimeボットが外部世界と通信できるようにするPHPベースのプロキシーの作成方法を学習します。これを実現する最も簡単な方法は、WAMPパッケージを入手することです。これには、あらかじめインストールされたPHPとともにApache HTTPサーバーが含まれています。サンプル・ファイルに含まれているプロキシーには、インターネットからアクセスできるPHPサーバーが必要です(プロキシーはソース・コードとともに提供されますが、このチュートリアルでは触れません)。
IBM Lotus Sametimeなどのビジネス指向のツールとゲームとの組み合わせを論じることは、まったく新しく画期的なことです。しかし、世界は変化しつつあり、Second Lifeはゲームをはるかに超えた存在です。まず、パズルの各ピースを見た上で、全体の絵を見ることにしましょう。
Lotus Sametimeは、表面的にはAOL® Instant Messenger™ やMSN Messenger™ などの他のインスタント・メッセージング・プログラムと似ていますが、より企業中心の視点を持つ点が異なります。Lotus Sametimeは、インスタント・メッセージングを可能にするだけでなく、IBM Lotus Notesなどの他のIBM Lotus製品群と統合し、よりリッチなメッセージングおよびコラボレーション環境を提供します。Lotus Sametimeを使用すると、誰が応答できるのか、できないのか(連絡先に登録されている場合)、そのユーザーがどこにいるのかを知ることができ、現在の問題をリアルタイムに処理できる人を効率よく見つけられます。
Second Lifeは技術的にはゲームです。そして、ゲームと呼ばれています。これは、World Of Warcraft、Everquest、および後のStar Wars Galaxiesといったファンタジー・ゲームによって表される世界では想像もできないアプローチにより、1993年にリリースされた大規模マルチプレーヤー・オンライン・ゲームです。以前のゲームは現実からの逃避を提供したのに対し、Second Lifeは現実そのものです。
いわば、少しねじれたバージョンの現実です。人々は飛ぶことができますが、移動の手段に過ぎません。また、人々は自分自身をどのような外観にすることもできます。たとえば、ウサギの頭と蝶の羽を持つことも可能です。しかし、せっかく別の現実に入るのであれば、常に望んでいる姿にするとよいでしょう(どうしてウサギの頭がいいのかは、質問しないでください。まだ、その答えを見つけていません)。
しかし、Second Lifeの神髄は、創造物を殺したり、ミステリーを解いたりというような、ただのゲームではないということです。Second Lifeの理念は、参加し、人々と対話し、楽しむことです。
また、考えられるあらゆるものを構築することができ、これを実際の通貨で売ることもできます。
Second Lifeには、ユーザーにあらゆるものの作成を可能にするモデリングおよびスクリプト用のツールが用意されています。ユーザーはこのツールを使用して、自由に環境を構築できます。たとえば、土地を買って家を建てることができ、自動車や他のおもちゃを購入できます。また、Second Lifeは多くの企業を魅了する新しい対話方法も提供します。IBMはパビリオンを持ち、Toyotaは人々が仮想のPriusesを作成およびカスタマイズできるようにしています。また、新たなビジネスは、活躍の場を常に探し求めています。Reutersはフルタイムのスタッフ・メンバーがいるSecond Life支局を持ち、H&R Blockは現実の社会の納税手続きをこの仮想環境でできるようにしています。
これはお客様(200万人を超えています)とコミュニケートする新しい環境であり、企業はこの機会を失いたくない、と考えています。そして、活動を通じてその結果を出そうと決断し、現在参加しているのです。
しかし、本当に面白いのはビジネスにしたいと思っている個人です。アーティスト、プログラマー、および優れたアイデアを持っているその他の人々は、Second Lifeの世界で商品を作成し、Second Lifeの架空の通貨であるLindenドルでこれを販売できます。Lindenドルは実際のUSドルと交換できるので、人々は非常に強い作成意欲を持っています。
それでは、店舗または他の存在をSecond Life内にセットアップし、物を販売したり、現実の世界のブランドで情報を提供したりすることにしましょう。では、どうすればよいでしょうか。来客に備えて画面に釘付けになり、仮想の店舗に1日中座っているわけにはいきません。もし、誰かが仮想店舗に入ってきたときに、現実のデスク上のベルを鳴らすような方法があればいいと思いませんか。お店のドアが開けられると、ベルが鳴るように。
それが、このプロジェクトの目的です。Lotus Sametimeに話しかけるSecond Lifeオブジェクトを構築することにより、誰かがSecond Lifeオブジェクトに話しかけると、Lotus Sametimeでその会話がポップアップ表示されます。そして、Lotus Sametimeでそれに応答すると、会話はSecond Lifeへと送られていきます。
実際には、Second Lifeアバターを表すSametimeボットを作成します。そして、Second Lifeから話しかけられるように、そのボットをセットアップします(図1参照)。
図1. Second Lifeアバターを表すSametimeボットの構築
各パーツを相互に対話できるようにする前に、すべてのパーツを準備する必要があります。すでにSametimeアカウントおよびSecond Lifeアカウントの両方を持っている場合は、「開発環境のセットアップ」に移動できます。
Lotus Sametimeを使用するには、Sametimeアカウントが必要です。まだアカウントを持っていない場合は、Lotus管理者に問い合わせてください。Sametimeをまだインストールしていない場合は、トライアル・ダウンロードへのリンクが「前提条件」にあります。また、Lotus Sametime 7.5 Demoを使用できます(もちろん、開発用のみ)。
- ブラウザーを開き、http://stdemo3.dfw.ibm.com/welcome.nsf に移動します。
- 「First, then Register to use this IBM DEMOnet system」をクリックします。
- ユーザー情報をフォームに入力します。これには、Sametimeユーザーとして使用する姓、名も含まれます。
この例では、2つのSametimeアカウントが必要です。1つは、デスクに座って生産的に仕事をするユーザー用のアカウントです。もう1つは、アバター用、つまりSecond Lifeユーザー用のアカウントです。これは、Sametimeボットがゲーム内から通信するために使用します。たとえば、筆者は自分用の「Nick Chase」と、アバター用の「Chase Marellan」という2つのアカウントを持っています。
次に、ログイン・リンクをクリックし、自分のアカウント用の名前およびパスワードを入力します(アバター用ではありません)。ログイン後のページに、いくつかのオプションが表示されています。スケジュール、ミーティングへの参加、他の機能の操作などがあります。自由に試すことができますが、ここではLotus Sametime Connectをダウンロードします。「ダウンロード」リンクをクリックし、オペレーティング・システムの適切なバージョンを選択し、インストーラーをハード・ディスクに保存します。
Lotus Sametime Connectをインストールするには、以下の手順にしたがいます。
- インストーラーを開始します。
- セットアップ用の言語を選択します。
- 「Next」をクリックし、実際のインストーラーを開始します。
- ライセンス同意書を読み、同意します。
- インストールする場所を入力します。また、使用するSametimeサーバーのホスト名も入力する必要があります。この情報については、Lotus管理者に問い合わせてください。デモ・システムを使用している場合は、図2に示すように、サーバーは「stdemo3.dfw.ibm.com」となります。
- 「インストール」をクリックし、インストールを完了させます。
- 終了したら、「終了」をクリックし、インストーラーを消します。
図2. 場所とサーバーの指定
「Sametime Connectの起動」チェック・ボックスを選択したまま残した場合は、Lotus Sametimeが自動的に開始されます。それ以外の場合は、「スタート」->「すべてのプログラム」->「IBM」->「IBM Lotus Sametime Connect 7.5」 を選択することによって開始します。最初の画面で、ユーザー情報の入力が求められます。アバター用ではなく、実際のユーザーの情報を入力します。筆者は図3のように入力しました。
図3 実際のユーザー用のLotus Sametimeの構成
「ログイン」ボタンをクリックし、サーバーに接続します。ここで、ロケーションを設定することもできますが、このチュートリアルでは使用しないため、その手順を進めるかどうかは、自分自身で判断してください。
ログインすると、連絡先のリストが示されたメインのSametimeウィンドウが表示されます。(AIM®ユーザーのために説明すると、これはバディ・リストです。)
これでSametimeチャットを行うことができますが、先に進む前に、アバターのアカウントを連絡先として追加する必要があります。これを行うには、「追加」をクリックし、「連絡先の追加」を選択します(図4参照)。
図4. 新規連絡先の追加
コミュニティー用に適切なサーバーが選択されていることを確認し、他のSametimeユーザー名を入力し、「追加」をクリックします(図5参照)。
図5. 他のSametimeアカウントの追加
この時点で、他のアカウントがメインのSametimeウィンドウに表示されます。しかし、それは太字ではなく、また小さい緑色のボックスも表示されていないはずです。この緑色のボックスは、ユーザーが応答可能であることを示します。このため、図6の状態では、ユーザーはまだログインしていません。
図6. 新規ユーザーはまだ応答できない状態
それでは、等式の一方の側を準備しましょう。
Second Lifeを開始することは、簡単に説明できるトピックではありませんが、その手順はそれほど複雑ではありません。ブラウザーで「http://www.secondlife.com/」に移動し、「Join Now」ボタンをクリックして新規アカウントを作成します。
http://www.secondlife.com/(US)
この状態で、「http://secondlife.com/community/downloads.php」からソフトウェアをダウンロードできます。クライアントにログインすると、Orientation Islandを探索することで、この世界がどのように機能するのかを理解できます。ここで時間をかけるとよいでしょう。先へ進むと、戻れなくなります。
http://secondlife.com/community/downloads.php(US)
Orientation Islandの利点は、新しいオブジェクトを作成できる場所がたくさんあることです。地面を右クリックし、表示された「パイ・メニュー」に「Create」オプションがあると、このような場所であることがわかります(図7参照)。
図7. 新しいオブジェクトの作成
まだOrientation Islandにいる場合は、簡単にスポットを見つけられます。しかし、実際にはここはプライベートではないので、あまり適した場所ではありません。Orientation Islandを離れ、正式にゲームを始めると、オブジェクト作成の許可が指定されている土地を探す必要があります。
ほとんどの場所では、一定の期間が過ぎると、システムによってオブジェクトが自動的に在庫に戻されます。場所に応じて、この期間はログアウトした後、または作成してから2分後になります。このプロジェクトを長期間使用する場合は、場所を借りることに投資するとよいでしょう。通常、この投資はかなり安価に行うことができます。このチュートリアルの準備をするために、筆者はショッピング・プラザでお店をレンタルしました。費用は1週間110 Lindenドルで、約40セント(USドル)となり、申し込みのときに得た250 Lindenドルでまかないました。
これで、実際の開発環境をセットアップする準備が整いました。何を使用するのかは、適切なサポート・ファイルを持っている限り、読者が決められます。説明を簡単にするために、このチュートリアルでは、IBM Rational Application DeveloperなどのEclipseベースのIDEを使用するものとします。開発環境をセットアップするには、以下の手順にしたがいます。
- Lotus Sametime SDK 7.5(US) をダウンロードし、ローカル・マシンからアクセスできる場所にその内容を抽出します。
- IDEを開始し、ワークスペースを作成するか、既存のワークスペースのいずれかを選択します。
- ワークベンチで、「ファイル」->「新規」->「プロジェクト」を選択します。
- 「ウィザードの選択」ウィンドウで、「Web」->「動的Webプロジェクト」を選択します。「次へ」をクリックします。
- プロジェクト名を入力し、「次へ」をクリックします。
- Javaバージョンが、実際にインストールされているJavaと一致することを確認します。特に、このバージョンが6.0に設定されていて、Java 6.0が利用できない場合は、後で問題が発生します。
- 「終了」をクリックします。
- サーブレットに関するスキーマのライセンス同意書が表示された場合は、同意書を読み、「I Agree」(同意する)をクリックします(もちろん、同意する場合です)。
- 「はい」をクリックしてJ2EEパースペクティブに変更します。
次に、プロジェクトの依存関係をセットアップします。
このプロジェクトを機能させるには、ツールキットのJARファイルをプロジェクトに追加する必要があります。
- プロジェクト・エクスプローラーで、新規作成したプロジェクトを右クリックし、「プロパティー」を選択します。
- 左側の列で「Javaのビルド・パス」をクリックし、「ライブラリー」タブを選択します。「外部JARの追加」をクリックします。
- SDKからのファイルを抽出した場所へ移動します。そこからst75sdk/client/stjava/binディレクトリーに移動し、CommRes.jar、STComm.jar、stcommsrvrtk.jar、およびstjavatk.jarの各ファイルを選択します。「開く」をクリックし、これらのファイルへの参照をプロジェクトに追加します。
- 「OK」をクリックします。
- プロジェクト・エクスプローラーで、WebContent/WEB-INF/libディレクトリーが表示されるまでプロジェクトを展開します。このディレクトリーを右クリックし、「インポート」を選択します。
- 「一般」->「ファイル・システム」をクリックし、「次へ」をクリックします。
- 「参照」をクリックし、手順13で使用したディレクトリーに移動します。4つのファイルをすべてこのディレクトリーにインポートし、「終了」をクリックします。
これで、構築を開始できます。
第1回は、チュートリアルをはじめるための手順を説明しました。第2回は、基本的なボットと Second Lifeスクリプトの作成について説明します。
| 内容 | ファイル名 | サイズ | ダウンロード形式 |
|---|---|---|---|
| チュートリアルのソース・コード | sourcecode.zip | 6KB | HTTP |
学ぶために
- developerWorks Japan: Lotus: Lotusの日本の技術情報サイトです
- developerWorks: Lotus(US) : Lotusの英語の技術情報サイトです
- Lotus Sametimeの詳細については、developerWorksのLotus Sametimeページ(US)を参照してください。
- Lotus Sametime 7.5.1のトライアル・バージョン(US) をダウンロードできます。
- バージョン7.5の新機能については、developerWorksの記事「Taking a tour of the new features and technology in IBM Lotus Sametime 7.5(US)」(developerWorks、2006年11月)を参照してください。
- Lotus Sametime SDK 7.5の詳細については、developerWorksの記事「Extending IBM Lotus Sametime Connect 7.5(US)」(2006年8月)を参照してください。
- Sametimeボットの詳細については、developerWorksのシリーズ「Building your own Sametime bots(US)」(2003年1月)を参照してください。
- Lotus Sametime 7.5デモ・アカウント(US)を登録できます。
- Second Lifeアカウントの申し込みおよびクライアントのダウンロードは、http://www.secondlife.com/で行うことができます。
http://www.secondlife.com/(US) - 公式に運用されているLSL wikiには、品質の高い資料が含まれています。ただし、いくつかのセクションがなく、良いサンプルも不足しています。
LSL wiki (公式) (US) - コミュニティーで運用されているLSL wikiがあります。公式wikiよりも完全で、より詳細な例が掲載されています。
LSL wiki (コミュニティー) (US) - これまでにプログラミングの経験のない初心者の方には、LSL101コースが基本として役に立ちます。
LSL101(US)
製品や技術を入手するために
- IBM Lotus Sametime SDK 7.5(US) をダウンロードできます。
- IBM Lotus Sametime Connect クライアント(US) をダウンロードできます。
- このチュートリアル内の 手順のデモ(US) を参照してください。
議論するために
- ディスカッション・フォーラムに参加できます。(US)
- developerWorksブログ(US) を通じてdeveloperWorksコミュニティーに参加できます。

Nicholas Chase has been involved in Web site development for companies such as Lucent Technologies, Sun Microsystems, Oracle, and the Tampa Bay Buccaneers. Nick has been a high school physics teacher, a low-level radioactive waste facility manager, an online science fiction magazine editor, a multimedia engineer, and an Oracle instructor. More recently, he was the Chief Technology Officer of Site Dynamics Interactive Communications in Clearwater, Florida, and is the author of three books on Web development, including Java and XML From Scratch (Que) and the upcoming Primer Plus XML Programming (Sams).