ページへ戻る

+ Links

 印刷 

MS-CHAT :: OSASK計画

osaskwiki:MS-CHAT

Page Top

画像のパターン仕様

表情上から右回りに

叫ぶ
笑う
喜ぶ
はにかむ
退屈
脅える
悲しむ
怒る

各10段階

平常 個数無制限
自分を指差す 一つ
他の人を指差す 一つ
手を振る 一つ
キャラクタアイコン 一つ(40*40/16色)
Page Top

コマンド

キャラの変更

# Appears as Kaos004.http://osask.hp.infoseek.co.jp/kaos004.avb
             ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
             名称    ダウンロード先

画像変更など

(#G510E049RM1)

カッコと#は固定、中身は・・

G510E049RM1
 ^

ここに画像番号っぽいものが・・・

画像の番号は0~アスキー順で0123456789:;<=>?@A・・・どこまで続くか不明。
自作キャラで番号を確認すればわかりそうだ。

コマンドのパターン、試してみると

G*10E***

みたいなパターンが多い。

Eのあとの数字も変化しているが・・・

RM1の部分、ポーズを変えたりするとRがつく。
なにも選択しないとRがない。
M1は変化したことが無い・・・固定かな?

Page Top

ほか

  • #Appears as ~を受け取ると全員が発信元にトークをつなぐようだ
  • *CTCP-query(Unknown:AWAY) rire → zakkyawy 離席を知らせる
Page Top

AVB Formatの仕様解析

この仕様書について		はなくそほじくる程度に解析した。
著作権及び配布条件		てきとうにつかって、
				いらなくなったら自動的にトイレでうん○と一緒で流す。
作成したパッケージのテスト	してません。(それより、サンプルコードができてない...)
アドバンスト・コース		Linux用のコミックちゃっとを作っておくれ。
よくあるトラブル		ご近所さんの猫がよく侵入する。(違)
謝辞				おかーちゃん、ごはんをいつも作ってくれてありがとう。
				老後の面倒は期待しないでまってておくれ。ぐすん。
Page Top

LINK:

SIGGRAPH96の論文にComicChatの解説がて載っている。
	http://grail.cs.washington.edu/pub/abstracts.html#ComicChat
	http://www.uranus.dti.ne.jp/~h-makoto/manga/manga.html
キャラデータ
	http://www.globetown.net/~kaoring/	なく子も漏らすキャラ作家
	http://www.mermeliz.com/		なく子も漏らすキャラ収集家
Page Top

この文書の用語と印の意味

(???)			この印がついているのは、納得できないもの。
(TODO)			やりのこした仕事
Page Top

Comic Mode Protocol

(#ExxxGxxxRMxT{nick})
  |||||||||||| |
  |||||||||||| o Nick		対象の名前
  |||||||||||o-- Target		動作の対象
  ||||||||||o--- BalloonType	バルーンのタイプ
  |||||||||o---- Balloon	バルーン
  ||||||||o----- RightFace(???)	顔の向き(???)
  |||||||o------ GestureVolume	表現の大きさ['0'-':']の10段階(???)
  ||||||o------- GestureType	表現の種類['0'-'8']の9段階(???)
  |||||o-------- GestureIndex	Gesture画像番号 (同じAVBを持っている人向けの情報)
  ||||o--------- Gesture	体の動きによる表現(???)
  |||o---------- EmotionVolume	表現の大きさ
  ||o----------- EmotionType	表現の種類
  |o------------ EmotionIndex	Emotion画像番号 (同じAVBを持っている人向けの情報)
  o------------- Emotion		顔の表情による表現(Expressionかも)
Target:
	Nick			アクションや囁きの相手を指定、複数指定可能(???)
				例:(#GxxxExxxM2Tnick???) (TODO)
BalloonType:
	M1	Plain		通常の枠
	M2	Whisper		点線の枠
	M3	Think		oO(考えごと)
	M4	Plain		わからんにょ
	M5	Action		[四角の枠で解説風]
RightFace:			顔の向き. 駒割りの最適化に使用(???)
GestureVolume:	10段階		AVBが異なる場合はVolumeが近い画像が適用される
GestureType:	9+3種類		AVBが異なる場合はTypeが近い画像が適用される
GestureIndex:	0から93(???)	AVBが同じな場合はTypeとVolumeを無視しIndexが使われる
EmotionVolume:	10段階		AVBが異なる場合はVolumeが近い画像が適用される
EmotionType:	9+3種類		AVBが異なる場合はTypeが近い画像が適用される
EmotionIndex:	0から93(???)	AVBが同じな場合はTypeとVolumeを無視しIndexが使われる
Volume:
	解説:			各Volumeに一つの画像を割り振れる。
	SpecialType:
	':'			Specialの場合はVolumeは変わらない(???)
	NormalType:
	':'	110%		謎(???)
	'9'	100%		大きな感情
	'8'	90%
	'7'	80%
	'6'	70%
	'5'	60%
	'4'	50%
	'3'	40%
	'2'	30%
	'1'	20%
	'0'	10%		小さな感情 (Neutral側)
Type:
	SpecialType:
	'<'	PointSelf	自分を指さす
	';'	Point Other	相手を指さす
	':'	Wave		手を振る
	NormalType:
	'9'	unkown		使ってない(???)
	'8'	laugh		笑い
	'7'	shout		叫び
	'6'	angry		怒り
	'5'	sad		悲しみ
	'4'	scared		恐れ
	'3'	bored		退屈
	'2'	coy		微笑み
	'1'	happy		喜び
	'0'	neutral		平常	※happyが混ざる(???)
Index:
	'0'	0番目の画像
	'1'	1番目の画像
	'2'	2番目の画像
	'3'	3 ...
	'4'	4
	'5'	5
	'6'	6
	'7'	7
	'8'	8
	'9'	9
	':'	11
	';'	12
	'<'	13 ... どこまでつづくんやら
###########################################################
# AVB File Format                                         #
###########################################################
type	Name		Value		Description
===========================================================
AVB::HEAD
===========================================================
uint16	Magic		0x8181		Magic number
uint16	Type		1		Avatar 顔胴体一体型
			2		Avatar 顔胴体分裂型
			3		Background 背景画
uint16	Version		2		バージョン(???)
*	*				TAGの開始、TAGデータが続く
===========================================================
AVB::TAG1::END				TAGの終了
===========================================================
uint16	Tag		0x006
===========================================================
AVB::TAG1::NAME
===========================================================
uint16	Tag		0x001
uint8	string[]	"..."\0		'\0'で終了
===========================================================
AVB::TAG1::UNKNOWN_002
===========================================================
uint16	Tag		0x002
uint16	unknown		*
===========================================================
AVB::TAG1::UNKNOWN_008
===========================================================
uint16	Tag		0x008
uint16	unknown		*
===========================================================
AVB::TAG1::POSE_A	(AVB::HEAD::Type==2: Avatar用の顔)
===========================================================
uint16	Tag		0x00a
uint16	Count		*
[Count]{
	uint32	offset0		+offset_fix	BMPの開始位置
	uint32	offset1		+offset_fix	MASK画像の開始位置 (透過処理用)
	uint32	offset2		+offset_fix	さてはて(???)
	uint16	EmotionType		感情の種類
	uint8	EmotionVolume	0-256	感情の大きさ
	uint16	NeckY			首の位置Y
	uint16	NeckX			首の位置X
	uint16	uknown0
	uint16	unkown1
	uint16	FaceY			顔の中心位置Y
	uint16	FaceX			顔の中心位置X
	uint8	unkown[6];
}
===========================================================
AVB::TAG1::POSE_B	(AVB::HEAD::Type==2: Avatar用の体)
===========================================================
uint16	Tag		0x00a
uint16	Count		*
[Count]{
	uint32	offset0		+offset_fix	BMPの開始位置
	uint32	offset1		+offset_fix	MASK画像の開始位置 (透過処理用)
	uint32	offset2		+offset_fix	さてはて(???)
	uint16	EmotionType		感情の種類
	uint8	EmotionVolume	0-256	感情の大きさ
	uint16	NeckY			首の位置Y
	uint16	NeckX			首の位置X
	uint8	unkown[6];
}
===========================================================
AVB::TAG1::POSE_C	(AVB::HEAD::Type==1: Avatar用の全身)
===========================================================
uint16	Tag		0x00c
uint16	Number		*
[Count]{
	uint32	offset0		+offset_fix	BMPの開始位置
	uint32	offset1		+offset_fix	MASK画像の開始位置 (透過処理用)
	uint32	offset2		+offset_fix	さてはて(???)
	uint16	EmotionType		感情の種類
	uint8	EmotionVolume	0-256	感情の大きさ
	uint16	FaceY			顔の中心位置Y
	uint16	FaceX			顔の中心位置X
	uint8	unkown[6];
}
===========================================================
AVB::TAG2::UNKNOWN_TAG2			不明なTAG2をスキップする
===========================================================
uint16	Tag		>= 0x100	値が0x100以上の場合はTAG2
uint16	Size		*		サイズ情報
*	unknown[]			不明なデータ
===========================================================
AVB::TAG2::ICON
===========================================================
uint16	Tag		0x100		Icon
uint16	Size		6
uint32	offset		+offset_fix	offset_fixを加えた値が本当のBMPのoffset
uint16	unknown
===========================================================
AVB::TAG2::BACKGROUND
===========================================================
uint16	Tag		0x102		(AVB::HEAD:Type==3) BACKGROUND
uint16	Size		6
uint32	offset		+offset_fix	offset_fixを加えた値が本当のBMPのoffset
uint16	unknown
===========================================================
AVB::TAG2::AUTHOR
===========================================================
uint16	Tag		0x103
uint16	Size		*
uint8	string[]	"..."\0		'\0'で終了
===========================================================
AVB::TAG2::DOWNLOAD_URL
===========================================================
uint16	Tag		0x104
uint16	Size		*
uint8	string[]	"..."\0		'\0'で終了
===========================================================
AVB::TAG2::OFFSET_FIX			画像Offsetの開始位置をずらす
===========================================================
uint16	Tag		0x107
uint16	Size		4
uint32	offset_fix	*
===========================================================
AVB::TAG2::COLORMAP
===========================================================
uint16	Tag		0x101
uint16	Size		*
uint16	RGBCount	*	RGBテーブルの大きさ
*	rgbdata[]		RGBテーブルデータ
===========================================================
AVB::BMP			Imageデータの情報部分
===========================================================
*	AVB::COLORMAP		もし先頭が0x101ならCOLORMAPのTAG
uint32	hsize		0x28	header size
uint32	width		*	pixels
uint32	hight		*	pixels
uint16	planes		1	(???)
uint16	nbit		*	pixel depth
uint32	compress	*	(???)
uint32	size		*	(???)
uint32	resH		*	(???)
uint32	resV		*	(???)
uint32	ncolorT		*	n color for table(???)
uint32	ncolorD		*	n color for display(???)
uint32	gzip_out	*	gzip output size
uint32	gzip_in		*	gzip input size
*	data[]			gzipで圧縮されている
###########################################################
# EOF                                                     #
###########################################################
Page Top

コメント

  • IRCゲーム系の共通仕様(コマンド)とかないんですかね・・・ -- nisi 2003-07-06 (日) 08:49:36
  • てか、コミックチャットのコマンド体系をすでに解析したページとかないかな・・本家はさすがに公開してないよな・・・ -- nisi 2003-07-06 (日) 08:50:30
  • 前に、AVBを解析したことがあったので、そのときのメモを載せてみました。 -- まんま1号 2003-12-14 (日) 02:57:37
  • すごい!!!! -- nisi 2003-12-14 (日) 14:25:24
  • まじで、すごいですね。ちょっといじってみたくなりました。私に出来ることなんて知れてますが。(笑) -- nisi 2003-12-14 (日) 14:26:45
  • ・・なに?もりあがらないなぁ(汗・・・いや、まじでほしくない? コミックチャット for Linux。 -- nisi 2003-12-21 (日) 17:01:07
  • いっそのこと for OSASK を(ぉ -- 名無しさん 2003-12-21 (日) 17:39:21
  • そっちかぁ(笑 ・・・Javaで作っとけば移植も近いか?他のOSでも。・・・個人的には Ruby/GTK あたりで作れたら楽しそうだと思うんですが -- nisi 2003-12-21 (日) 21:22:00
  • ほかの人はどうか解らんが、オレはホスイぞ!! >for Linux -- hideyosi 2003-12-21 (日) 21:23:31
  • これって、これで盛り上がるようなら別に場所とったほうがいいな。まじでOSASKと関係なくなるし・・ -- nisi 2003-12-21 (日) 21:25:49
  • ほかの人はどうか解らんが、オレはホスイぞ!! >for Linux -- hideyosi 2003-12-21 (日) 22:17:03
Page Top

コミックチャット for Linux 考

Page Top

提案

avbファイルって、いちいち専用エディタとかつかうのも面倒なので、プレーンテキストで設定したいなぁ・・・ってことで。

  • 使用言語
    • Ruby/GTK(ってまだやったことないけど)
  • コマンド系列
    • MSコミックチャットに準拠
  • 独自仕様
    • avbxとか拡張子つけて、プレーンテキストで設定ファイル
    • png形式のキャライメージ
    • 各パターンごとに別ファイル
    • ディレクトリでまとめる感じ
    • で、従来のavbを受信したら上記仕様にコンパイルするとか
Page Top

コメント

  • これで、forLin同士でなら新規格、MS-CHATとは上位互換というのはいかがだろう? -- nisi 2003-12-21 (日) 21:36:01
  • とりあえず、IRCクライアントでも作ってみよう・・・誰が?笑 -- nisi 2003-12-21 (日) 21:41:35
  • 関係ないけど最近GO + SDL_Net で遊んでたりする、まあwinでなんだけど。GLIBやw32apiとか使おうと思ってインクルードしたらエラーの山で退散。・・・おかげで実行ファイル本体は冗談みたいに小さくなったりして(といってもOSASK的には普通か)、これ本当に窓開くのかと思ったのは秘密。 -- 名無しさん 2003-12-22 (月) 01:03:42
  • ここに書くべきかどうか悩みつつ、レスします(あとでGO系のページか、impressionsに引っ越しさせるかもしれません)。 -- K 2003-12-22 (月) 01:20:30
  • インクルードを成功させるには、cc1の-Iオプションを使って、インクルードファイルのありかを指定してやらないといけません。これはメンドイですよねえ。gcc.exeを作ればこれは解決するでしょう。そしてインクルードファイル問題を克服しても、次はリンク時の問題が待っています。ld.exeのパラメータをきちんと書けばいいだけなんですが、これもさらにメンドイですよねえ。まあこれもgcc.exeで解決するわけですが。・・・結局gcc.exeが無いのがガン、ということですねえ。 -- K 2003-12-22 (月) 01:24:12
  • えーと、その辺はmakefile書いているのでとりあえずは大丈夫かな?ただなんか依存関係があってヘッダ足りなかったり、適当に持ってきたら重複定義だのなんかよく分からないので(ターゲット指定とかしてない関係かも?)止めたんだけど、その辺がSDLだとうまくいって、とりあえず一通りは機能あるから結構遊べるよ、逆に他に何も使わないならlinuxとかも多分共通ソースでいけるからいいかな?と。 -- 名無しさん 2003-12-22 (月) 07:01:45

Last-modified: 2009-11-17 (火) 00:00:00 (JST) (319d) by ゲスト