|
現: 2024-01-08 (月) 12:58:44 ゲスト |
| + | *コミックチャットをかいせきしる(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]] SIZE(10){2003-07-06 (日) 08:49:36} |
| + | -てか、コミックチャットのコマンド体系をすでに解析したページとかないかな・・本家はさすがに公開してないよな・・・ -- [[nisi]] SIZE(10){2003-07-06 (日) 08:50:30} |
| + | -前に、AVBを解析したことがあったので、そのときのメモを載せてみました。 -- ''まんま1号'' SIZE(10){2003-12-14 (日) 02:57:37} |
| + | -すごい!!!! -- ''nisi'' SIZE(10){2003-12-14 (日) 14:25:24} |
| + | -まじで、すごいですね。ちょっといじってみたくなりました。私に出来ることなんて知れてますが。(笑) -- [[nisi]] SIZE(10){2003-12-14 (日) 14:26:45} |
| + | -・・なに?もりあがらないなぁ(汗・・・いや、まじでほしくない? コミックチャット for Linux。 -- ''nisi'' SIZE(10){2003-12-21 (日) 17:01:07} |
| + | -いっそのこと for OSASK を(ぉ -- [[名無しさん]] SIZE(10){2003-12-21 (日) 17:39:21} |
| + | -そっちかぁ(笑 ・・・Javaで作っとけば移植も近いか?他のOSでも。・・・個人的には Ruby/GTK あたりで作れたら楽しそうだと思うんですが -- [[nisi]] SIZE(10){2003-12-21 (日) 21:22:00} |
| + | -ほかの人はどうか解らんが、オレはホスイぞ!! >for Linux -- ''hideyosi'' SIZE(10){2003-12-21 (日) 21:23:31} |
| + | -これって、これで盛り上がるようなら別に場所とったほうがいいな。まじでOSASKと関係なくなるし・・ -- [[nisi]] SIZE(10){2003-12-21 (日) 21:25:49} |
| + | -ほかの人はどうか解らんが、オレはホスイぞ!! >for Linux -- ''hideyosi'' SIZE(10){2003-12-21 (日) 22:17:03} |
| + | |
| + | #comment |
| + | |
| + | *コミックチャット for Linux 考 |
| + | |
| + | **提案 |
| + | |
| + | avbファイルって、いちいち専用エディタとかつかうのも面倒なので、プレーンテキストで設定したいなぁ・・・ってことで。 |
| + | |
| + | -使用言語 |
| + | --Ruby/GTK(ってまだやったことないけど) |
| + | -コマンド系列 |
| + | --MSコミックチャットに準拠 |
| + | -独自仕様 |
| + | --avbxとか拡張子つけて、プレーンテキストで設定ファイル |
| + | --png形式のキャライメージ |
| + | --各パターンごとに別ファイル |
| + | --ディレクトリでまとめる感じ |
| + | --で、従来のavbを受信したら上記仕様にコンパイルするとか |
| + | |
| + | **コメント |
| + | -これで、forLin同士でなら新規格、MS-CHATとは上位互換というのはいかがだろう? -- [[nisi]] SIZE(10){2003-12-21 (日) 21:36:01} |
| + | -とりあえず、IRCクライアントでも作ってみよう・・・誰が?笑 -- [[nisi]] SIZE(10){2003-12-21 (日) 21:41:35} |
| + | -関係ないけど最近GO + SDL_Net で遊んでたりする、まあwinでなんだけど。GLIBやw32apiとか使おうと思ってインクルードしたらエラーの山で退散。・・・おかげで実行ファイル本体は冗談みたいに小さくなったりして(といってもOSASK的には普通か)、これ本当に窓開くのかと思ったのは秘密。 -- [[名無しさん]] SIZE(10){2003-12-22 (月) 01:03:42} |
| + | -ここに書くべきかどうか悩みつつ、レスします(あとでGO系のページか、[[impressions]]に引っ越しさせるかもしれません)。 -- [[K]] SIZE(10){2003-12-22 (月) 01:20:30} |
| + | -インクルードを成功させるには、cc1の-Iオプションを使って、インクルードファイルのありかを指定してやらないといけません。これはメンドイですよねえ。gcc.exeを作ればこれは解決するでしょう。そしてインクルードファイル問題を克服しても、次はリンク時の問題が待っています。ld.exeのパラメータをきちんと書けばいいだけなんですが、これもさらにメンドイですよねえ。まあこれもgcc.exeで解決するわけですが。・・・結局gcc.exeが無いのがガン、ということですねえ。 -- ''K'' SIZE(10){2003-12-22 (月) 01:24:12} |
| + | -えーと、その辺はmakefile書いているのでとりあえずは大丈夫かな?ただなんか依存関係があってヘッダ足りなかったり、適当に持ってきたら重複定義だのなんかよく分からないので(ターゲット指定とかしてない関係かも?)止めたんだけど、その辺がSDLだとうまくいって、とりあえず一通りは機能あるから結構遊べるよ、逆に他に何も使わないならlinuxとかも多分共通ソースでいけるからいいかな?と。 -- [[名無しさん]] SIZE(10){2003-12-22 (月) 07:01:45} |
| + | |
| + | #comment |