ページ内コンテンツ
コミックチャットをかいせきしる(OSASK本体とは関係なくOSASKキャラで遊ぶ会コミックチャット解析分科会編)
とりあえずわかったことから書いておく
画像のパターン仕様
表情上から右回りに
叫ぶ 笑う 喜ぶ はにかむ 退屈 脅える 悲しむ 怒る
各10段階
平常 個数無制限 自分を指差す 一つ 他の人を指差す 一つ 手を振る 一つ
キャラクタアイコン 一つ(40*40/16色)
コマンド
キャラの変更
# Appears as Kaos004.http://osask.hp.infoseek.co.jp/kaos004.avb ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 名称 ダウンロード先
画像変更など
(#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#ComicChat 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を無視し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 # ###########################################################
コメント
- 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
コミックチャット for Linux 考
提案
avbファイルって、いちいち専用エディタとかつかうのも面倒なので、プレーンテキストで設定したいなぁ・・・ってことで。
- 使用言語
- Ruby/GTK(ってまだやったことないけど)
- コマンド系列
- MSコミックチャットに準拠
- 独自仕様
- avbxとか拡張子つけて、プレーンテキストで設定ファイル
- png形式のキャライメージ
- 各パターンごとに別ファイル
- ディレクトリでまとめる感じ
- で、従来のavbを受信したら上記仕様にコンパイルするとか
コメント
- これで、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
Counter: 169,
today: 1,
yesterday: 1
初版日時: 2003-07-05 (土) 22:01:57
最終更新: 2009-11-17 (火) 00:00:00 (JST) (319d) by ゲスト
|
ぺージ情報 | 閲覧可 | 編集可 | |||
---|---|---|---|---|---|---|
ぺージ名 : | MS-CHAT | グループ : | すべての訪問者 | グループ : | すべての訪問者 | |
ページ作成 : | ゲスト | ユーザー : | すべての訪問者 | ユーザー : | すべての訪問者 | |
ページ別名 : | 未設定 |