ページへ戻る
印刷
MS-CHAT
をテンプレートにして作成 ::
OSASK計画
osaskwiki
:MS-CHAT をテンプレートにして作成
開始行:
*コミックチャットをかいせきしる(OSASK本体とは関係なくOSA...
とりあえずわかったことから書いておく
**画像のパターン仕様
表情上から右回りに
叫ぶ
笑う
喜ぶ
はにかむ
退屈
脅える
悲しむ
怒る
各10段階
平常 個数無制限
自分を指差す 一つ
他の人を指差す 一つ
手を振る 一つ
キャラクタアイコン 一つ(40*40/16色)
**コマンド
キャラの変更
# Appears as Kaos004.http://osask.hp.infoseek.co.jp/kaos...
^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
名称 ダウンロード先
画像変更など
(#G510E049RM1)
カッコと#は固定、中身は・・
G510E049RM1
^
ここに画像番号っぽいものが・・・
画像の番号は0~アスキー順で0123456789:;<=>?@A・・・どこま...
自作キャラで番号を確認すればわかりそうだ。
コマンドのパターン、試してみると
G*10E***
みたいなパターンが多い。
Eのあとの数字も変化しているが・・・
RM1の部分、ポーズを変えたりするとRがつく。
なにも選択しないとRがない。
M1は変化したことが無い・・・固定かな?
**ほか
-#Appears as ~を受け取ると全員が発信元にトークをつなぐよ...
-*CTCP-query(Unknown:AWAY) rire → zakkyawy 離席を知らせる
**AVB Formatの仕様解析
この仕様書について はなくそほじくる程度に解析した。
著作権及び配布条件 てきとうにつかって、
いらなくなったら自動的にトイレでうん○と一緒で流す。
作成したパッケージのテスト してません。(それより、サンプ...
アドバンスト・コース Linux用のコミックちゃっとを作って...
よくあるトラブル ご近所さんの猫がよく侵入する。(違)
謝辞 おかーちゃん、ごはんをいつも作ってくれてありがと...
老後の面倒は期待しないでまってておくれ。ぐすん。
**LINK:
SIGGRAPH96の論文にComicChatの解説がて載っている。
http://grail.cs.washington.edu/pub/abstracts.html#Comic...
http://www.uranus.dti.ne.jp/~h-makoto/manga/manga.html
キャラデータ
http://www.globetown.net/~kaoring/ なく子も漏らすキャラ...
http://www.mermeliz.com/ なく子も漏らすキャラ収集家
**この文書の用語と印の意味
(???) この印がついているのは、納得できないもの。
(TODO) やりのこした仕事
**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...
EmotionVolume: 10段階 AVBが異なる場合はVolumeが近い画像...
EmotionType: 9+3種類 AVBが異なる場合はTypeが近い画像が...
EmotionIndex: 0から93(???) AVBが同じな場合はTypeとVolume...
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を加えた値が本当のB...
uint16 unknown
========================================================...
AVB::TAG2::BACKGROUND
========================================================...
uint16 Tag 0x102 (AVB::HEAD:Type==3) BACKGROUND
uint16 Size 6
uint32 offset +offset_fix offset_fixを加えた値が本当のB...
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 ...
########################################################...
**コメント
-IRCゲーム系の共通仕様(コマンド)とかないんですかね・・...
-てか、コミックチャットのコマンド体系をすでに解析したペー...
-前に、AVBを解析したことがあったので、そのときのメモを載...
-すごい!!!! -- ''nisi'' SIZE(10){2003-12-14 (日) 14:2...
-まじで、すごいですね。ちょっといじってみたくなりました。...
-・・なに?もりあがらないなぁ(汗・・・いや、まじでほしく...
-いっそのこと for OSASK を(ぉ -- [[名無しさん]] SIZE(10...
-そっちかぁ(笑 ・・・Javaで作っとけば移植も近いか?他のO...
-ほかの人はどうか解らんが、オレはホスイぞ!! >for Linu...
-これって、これで盛り上がるようなら別に場所とったほうがい...
-ほかの人はどうか解らんが、オレはホスイぞ!! >for Linu...
#comment
*コミックチャット for Linux 考
**提案
avbファイルって、いちいち専用エディタとかつかうのも面倒な...
-使用言語
--Ruby/GTK(ってまだやったことないけど)
-コマンド系列
--MSコミックチャットに準拠
-独自仕様
--avbxとか拡張子つけて、プレーンテキストで設定ファイル
--png形式のキャライメージ
--各パターンごとに別ファイル
--ディレクトリでまとめる感じ
--で、従来のavbを受信したら上記仕様にコンパイルするとか
**コメント
-これで、forLin同士でなら新規格、MS-CHATとは上位互換とい...
-とりあえず、IRCクライアントでも作ってみよう・・・誰が?...
-関係ないけど最近GO + SDL_Net で遊んでたりする、まあwinで...
-ここに書くべきかどうか悩みつつ、レスします(あとでGO系の...
-インクルードを成功させるには、cc1の-Iオプションを使って...
-えーと、その辺はmakefile書いているのでとりあえずは大丈夫...
#comment
終了行:
*コミックチャットをかいせきしる(OSASK本体とは関係なくOSA...
とりあえずわかったことから書いておく
**画像のパターン仕様
表情上から右回りに
叫ぶ
笑う
喜ぶ
はにかむ
退屈
脅える
悲しむ
怒る
各10段階
平常 個数無制限
自分を指差す 一つ
他の人を指差す 一つ
手を振る 一つ
キャラクタアイコン 一つ(40*40/16色)
**コマンド
キャラの変更
# Appears as Kaos004.http://osask.hp.infoseek.co.jp/kaos...
^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
名称 ダウンロード先
画像変更など
(#G510E049RM1)
カッコと#は固定、中身は・・
G510E049RM1
^
ここに画像番号っぽいものが・・・
画像の番号は0~アスキー順で0123456789:;<=>?@A・・・どこま...
自作キャラで番号を確認すればわかりそうだ。
コマンドのパターン、試してみると
G*10E***
みたいなパターンが多い。
Eのあとの数字も変化しているが・・・
RM1の部分、ポーズを変えたりするとRがつく。
なにも選択しないとRがない。
M1は変化したことが無い・・・固定かな?
**ほか
-#Appears as ~を受け取ると全員が発信元にトークをつなぐよ...
-*CTCP-query(Unknown:AWAY) rire → zakkyawy 離席を知らせる
**AVB Formatの仕様解析
この仕様書について はなくそほじくる程度に解析した。
著作権及び配布条件 てきとうにつかって、
いらなくなったら自動的にトイレでうん○と一緒で流す。
作成したパッケージのテスト してません。(それより、サンプ...
アドバンスト・コース Linux用のコミックちゃっとを作って...
よくあるトラブル ご近所さんの猫がよく侵入する。(違)
謝辞 おかーちゃん、ごはんをいつも作ってくれてありがと...
老後の面倒は期待しないでまってておくれ。ぐすん。
**LINK:
SIGGRAPH96の論文にComicChatの解説がて載っている。
http://grail.cs.washington.edu/pub/abstracts.html#Comic...
http://www.uranus.dti.ne.jp/~h-makoto/manga/manga.html
キャラデータ
http://www.globetown.net/~kaoring/ なく子も漏らすキャラ...
http://www.mermeliz.com/ なく子も漏らすキャラ収集家
**この文書の用語と印の意味
(???) この印がついているのは、納得できないもの。
(TODO) やりのこした仕事
**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...
EmotionVolume: 10段階 AVBが異なる場合はVolumeが近い画像...
EmotionType: 9+3種類 AVBが異なる場合はTypeが近い画像が...
EmotionIndex: 0から93(???) AVBが同じな場合はTypeとVolume...
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を加えた値が本当のB...
uint16 unknown
========================================================...
AVB::TAG2::BACKGROUND
========================================================...
uint16 Tag 0x102 (AVB::HEAD:Type==3) BACKGROUND
uint16 Size 6
uint32 offset +offset_fix offset_fixを加えた値が本当のB...
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 ...
########################################################...
**コメント
-IRCゲーム系の共通仕様(コマンド)とかないんですかね・・...
-てか、コミックチャットのコマンド体系をすでに解析したペー...
-前に、AVBを解析したことがあったので、そのときのメモを載...
-すごい!!!! -- ''nisi'' SIZE(10){2003-12-14 (日) 14:2...
-まじで、すごいですね。ちょっといじってみたくなりました。...
-・・なに?もりあがらないなぁ(汗・・・いや、まじでほしく...
-いっそのこと for OSASK を(ぉ -- [[名無しさん]] SIZE(10...
-そっちかぁ(笑 ・・・Javaで作っとけば移植も近いか?他のO...
-ほかの人はどうか解らんが、オレはホスイぞ!! >for Linu...
-これって、これで盛り上がるようなら別に場所とったほうがい...
-ほかの人はどうか解らんが、オレはホスイぞ!! >for Linu...
#comment
*コミックチャット for Linux 考
**提案
avbファイルって、いちいち専用エディタとかつかうのも面倒な...
-使用言語
--Ruby/GTK(ってまだやったことないけど)
-コマンド系列
--MSコミックチャットに準拠
-独自仕様
--avbxとか拡張子つけて、プレーンテキストで設定ファイル
--png形式のキャライメージ
--各パターンごとに別ファイル
--ディレクトリでまとめる感じ
--で、従来のavbを受信したら上記仕様にコンパイルするとか
**コメント
-これで、forLin同士でなら新規格、MS-CHATとは上位互換とい...
-とりあえず、IRCクライアントでも作ってみよう・・・誰が?...
-関係ないけど最近GO + SDL_Net で遊んでたりする、まあwinで...
-ここに書くべきかどうか悩みつつ、レスします(あとでGO系の...
-インクルードを成功させるには、cc1の-Iオプションを使って...
-えーと、その辺はmakefile書いているのでとりあえずは大丈夫...
#comment
ページ名: