メイン

2007年09月09日

3Dチャット

http://www.oide.org/
また別のを見つけたよ。

2007年05月04日

Shockwave Multiuser Serverメモ

グループ名が半角60文字を超えると、そのグループに対してsendNetMessageしても伝わらないっぽい

2007年04月23日

Server-side Scripting for Nebulae

Lingoで書いたサーバサイドスクリプトをNebulae Server用にJAVAで書き直してるんだけど、けっこう面倒。
分からない箇所をTabuleiroのサポートにメールしたら、親切に教えてくれた。まだ購入してもいないのに。

サーバサイドでのDBApplication.getAttributeの取得方法は、下記のような感じ。
レスポンスはincomingMessageハンドラで受け取る。

MUSMessage mymsg = new MUSMessage();
mymsg.m_errCode = 0;
mymsg.m_timeStamp = serverObject().timeStamp();
mymsg.m_subject= new MUSMsgHeaderString("subject");
mymsg.m_senderID= new MUSMsgHeaderString(this.name());
mymsg.m_recptID = new MUSMsgHeaderStringList();
mymsg.m_recptID.addElement(new MUSMsgHeaderString("system.DBApplication.getAttribute"));
LList attributelist = new LList();
attributelist.addElement(new LSymbol("my_attribute"));
LPropList pl = new LPropList();
pl.addElement(new LSymbol("application"), new LString("my_movie"));
pl.addElement(new LSymbol("attribute"), attributelist);
mymsg.m_msgContent = pl;
postMessage(mymsg);

2007年04月15日

サーバ接続チェック

ポートチェック【外部からポート開放確認】

自宅サーバだと外部から接続できてるのか確認しづらいので
こういうサービスは助かる。

2007年04月14日

3Dチャット

Shockwaveを使った3Dチャットを新しく見つけた。Havok使ってるっぽい。
http://3d-yococho.ddo.jp/
すごいねー、隠しアイテムとかあって面白い。

球根3Dチャットも負けてられないのでそろそろバージョンアップしたいな。

Nebulae multiuser server

Shockwave Multiuser Serverは楽ちんだけど、WindowsとOS9でしか動かないのがちょっと...、ということでNebulae Multiuser Serverに手を出した。
まず普通に起動すると、日本語(マルチバイト文字)が扱えない。
解決方法は、「-Dfile.encoding=ISO-8859-1」を付けて起動すれば大丈夫。

Windowsなら

cd c:\Nebulae
java -Dfile.encoding=ISO-8859-1 -cp Nebulae.jar;C:\Nebulae net.tabuleiro.nebulae.Nebulae

Linuxなら
cd /usr/local/nebulae
java -Djava.compiler=NONE -Dfile.encoding=ISO-8859-1 -cp Nebulae.jar net.tabuleiro.nebulae.Nebulae &

Nebulaeの情報自体ほとんどないし、JavaやLinuxの知識不足で一苦労。

2007年04月05日

MUS server-side lingo

サーバサイドでsystem.group.joinを使おうとしても正しく機能しないので
ユーザをグループに参加させる時は下記のやり方を使う。

--グループオブジェクトの参照
GroupRef = pMovie.serverGroup(pRoomName)
--グループ存在しないなら作成
if GroupRef =void then
GroupRef = pMovie.createServerGroup(pRoomName)
end if
--ユーザオブジェクトをグループに追加
GroupRef .addUser(pUser)


マニュアルに載ってないサーバサイドLingo

2007年03月27日

Lingoメモ

setAttributeする時のattribute名はシンボルでないといけないが、
変数に入れてあるシンボルを使いたい場合はプロパティリストにaddPropしてから使う。
attributeName=#rooms
attributeList = [:]
attributeList.addProp(attributeName, "dummy_value")
gMultiuserInstance.sendNetMessage("system.DBApplication.setAttribute", "subject", [#application: "appli_name", #attribute: attributeList])

Database access from server-side scripts

今になってShockwave Multiuser Serverですよ。

サーバーサイドのLingoスクリプトでMUSのデータベース情報(例えばDBApplication.getAttribute)を取得したい場合は下記のような感じ。
on incomingMessage (me, movie, group, user, fullMsg)
myResult=movie.SendMessage("system.DBApplication.getAttribute","subject",[#application:"chat_appli",#attribute:[#rooms]])
put myResult
end
要はクライアント側でやる時と同じ要領でSendMessageを使って取得する。
クライアントの場合と違ってmyResultにプロパティリストが即座に返ってくる。

ドキュメントが少な過ぎというか、基本的なことがマニュアルに載ってない。

2006年03月09日

3D チャット

「オシャレ」を前面に押し出した3Dチャット「CHAKCHA」が、2月27日で閉鎖していた。
想像通りというか、1年続いただけでもがんばったねという感じ。

ついでに同じ3Dチャットつながりで、「keyaki station」というサイトが今年になって公開されてました。国内でShockwave3Dコンテンツの新作にお目にかかれるとは思わなかった。

2005年08月07日

Shockwave Multiuser Serverの立て方

Shockwave Multiuser Server(MUS)の立て方を知りたいという質問をもらったのでここに書いておきます。

■まずはMultiuser Server 3.0本体を用意
下記からダウンロードできます。
Macromedia - Support : Director Support Center
インストーラの指示に従ってインストールが終わったら、
MultiuserServer.exeを起動すればそれだけでサーバプログラムは稼動します。

起動したら、「状態」メニューの「サーバ」を選択すると、そのサーバのIPアドレスなどの情報が表示されます。(LAN内の場合、ローカルIPアドレスが表示されます)

■Multiuser Xtraを用意
とりあえずサーバの準備ができたら、クライアント側の準備です。
下記からMultiuser Xtraをダウンロードして、DirectorのXtrasフォルダに入れましょう。
このXtraの機能を使ってサーバに接続することになります。
TechNote : Director Multiuser Xtras are available for download

■試しに接続してみる
サーバもクライアントも同一パソコン上で動かしてみます。
Directorを起動し、メッセージウィンドウで下記のLingoを実行してください。

gMultiuserInstance = new(xtra "Multiuser")
put gMultiuserInstance.connectToNetServer("192.168.0.2",1626, [#userID:"myName", #password:"myPass", #movieID:"myMovie"])
--注:"192.168.0.2"の部分は、事前に調べたIPアドレスに変えて下さい
するとメッセージウィンドウには-- 0が返ります。
そこでMUSのウィンドウを見てみると、下記のような感じでログインに成功したログが表示されているはずです。
+ 2005/08/07 15:42:24 ムービー myMovie を作成しました。
+ 2005/08/07 15:42:24 myName(192.168.0.2)はムービー myMovie に接続しました。

■インターネット経由で接続できるようにする
モデムとパソコンが直結しているなら別ですが、ルータを使っている場合は外部からルータを経由してサーバPCにたどり着くようにルータの設定する必要があります。
設定の方法はルータによって異なるので省略しますが、いわゆるアドレス変換(NAT)という設定です。
WAN側IPアドレス、TCPポート1626 <---> LAN側IPアドレス(MUSサーバが稼動しているPCのローカルアドレス)
他にセキュリティソフトを入れている場合は、そちらの設定も必要になる場合があります。
これで接続先としてグローバルIPアドレスを指定すれば外部からアクセスできるようになるはずですが、LAN内から確認するのは難しいのでテスト用のムービーを作って友達にアクセスしてもらうなどしたほうが手っ取り早いです。

■ローカルから自分のグローバルIPアドレスでアクセスする
前述の「試しに接続してみる」ではローカルIPアドレスで接続してみましたが、実際公開する場合はグローバルIPアドレスでアクセスすることになります。
しかしほとんどのルータでは、LAN内から自分のグローバルアドレスを指定してもMUSが稼動しているPCにはたどり着かずルータの設定画面に行ってしまいます。
それでは自分で確認できないので、回避策としてhostsファイルを書き換えます。
hostsファイルとは、ホスト名とIPアドレスの変換をする際に参照されるファイルです。
ファイルの場所は下記です。
Windows XPの場合→「C:\WINDOWS\system32\drivers\etc」
Windows 2000の場合→「C:\WINNT\system32\drivers\etc」
Windows 95/98/MEの場合→「C:\Windows」

hosts書き換えの前に、MyDNS.JPddo.jpなどの無料ダイナミックDNSサービスでホスト名を取得しておきましょう。
そのうえで、hostsファイルをテキストエディタで開いて下記のような一文を追加します。下記は例なので、実際は環境に合わせてアドレスを記述してください。

192.168.0.2  example.ddo.jp
これで「MUSが稼動しているローカルアドレス」と「取得したホスト名」を関連付けられます。
example.ddo.jpに接続すれば、ローカル内からアクセスしてもちゃんとMUSサーバにたどり着きます。

■ポート番号
まれにポート制限をかけているプロバイダがあるかもしれません。
その場合は、MultiuserServer.exeと同階層にある「Multiuser.cfg」をテキストエディタで開いてServerPort=の項目を使用可能なポート番号に変更してみてください。

2005年08月03日

WindowsからOSXを操作

ここ数日、Mac miniでMultiuser Serverを走らせてるんですが、モニターやキーボードをつないでおくのは邪魔なので、VNCを使ってWindowsから操作してます。
これがすごく便利。
サイトの表示チェックをmacでしたい時も重宝します。

OSXVNC参考サイト
arclamp.jp アークランプ: VNCで、WindowsからMacを操作
typeholic.org: Mac miniをWindows中心環境で活用する
VNCでOSXを操作してみる

2005年02月20日

Shockwave Multiuser Serverで困った

ログイン時のユーザ名に日本語を使うと、まれにログインできない名前があって
何でかなーと思っていたけどやっとわかった。
@や#は制御文字なので元々使っちゃいけないんですが、
Shift-JISで2バイト目に@を含む文字があるのでした。
「Аァ宗后叩拭法邸如院察掘機鼻諭...など」
これらを含むユーザ名ではログインできない。

回避策としてはURLencodeしちゃえばいい。
デコードはFlashのunescape()を使って。

2004年12月31日

Shockwave Multiuser Server メモ 2

■MUSサーバ接続時の暗号化について
通常、暗号キーを指定しても暗号化されるのはログイン時のユーザー名とパスワードだけですが、キーの頭に#Allをつけると、全パケットが暗号化されます。
gInstance.connectToNetServer("user","pass","abc.com",1626,"movie",0,"#AllABCD")
とすると、ABCDがキーとなります。

"#NoEncryption"をキーとすると、ログイン時のパケットも暗号化されずに送られます。

詳しくはこちら

2004年12月30日

Shockwave Multiuser Server メモ

今になってMUSの情報を集めてみる。

英語サンプル、チュートリアル
Macromedia Director - Multiuser Overview
マニュアルには記載されていない情報
Macromedia Shcokwave Multiuser Server 3.0 リリースノート
サーバーサイドスクリプトのデバッグについて
TechNotes : dr0303 - (D8.5)Multiuser Debuggerの使用

Xtraはこちらからダウンロード可
TechNote : Director Multiuser Xtras are available for download
Multiuser Server 3.0本体はこちらからダウンロード可
Macromedia - Support : Director Support Center
Ver.1 日本語マニュアル
TechNotes : dr0177 - DR70:Multiuser Server および Xtra の使用
Ver.3 英語PDFマニュアル
Multiuser Server 3.0 documentation

以下、英語のTechNote

日本語情報が極端に少ない。
どうしてマクロメディアのサイトはNot Foundが多いんだ。