投稿日 : 2015/09/22 5:37:37
「とある言語の開発記録Ⅱ」プロジェクト始動!
なんてかっこいいタイトルつけてますが、
単にまだ最初なので記事が何も無いだけでつw

とりあえずHTML形式で記述出来るので、
ふつうにボールド体カラー文字の指定とか、
そしてテーブルも可能。
ヘッダ1 ヘッダ2
テーブルタグを 手で打つのは面倒w

そして画像。


ってかHTML形式だと改行に<BR>打つのがメンドクサイwww



で、肝心のプログラムコードはこんな感じ。
#ifndef _MORPH_H
#define _MORPH_H
///////////////////////////////////////////////////////////////////////////////////
// Morph : モーフィング用定義
//
// [MRV] モーフィング頂点データ
//    MRPVERTEXHEADER                         モーフィング頂点情報ファイルヘッダ
//    MRPVERTEX[n]                            ベース頂点リスト
//    MRPTYPE_MAX {                           モーフィングタイプ全て
//        MRPVERTEXTYPEHEADER[type]           モーフィングタイプヘッダ
//            TYPECOUNT {                     タイプ内にあるモーフ全て
//                MRPVERTEXOFFSETHEADER[v]    オフセットヘッダ
//                    MRPVERTEX[n]            オフセットリスト
//            }               
//    }
//
// [MRA] モーフィングアニメーションデータ
//    MRPANIMEHEADER                          モーフィングアニメーションヘッダ
//    MORPHCOUNT {                            モーフアニメーション全て
//        MRPFRAMEHEADER[morph]               モーフィングキーフレームデータヘッダ
//        MRPFRAME[n]                         モーフィングキーフレームリスト
//    }
//
///////////////////////////////////////////////////////////////////////////////////
#include <winsock2.h>
#include <windows.h>

// バージョン
#define MRPVERSION      0x00000100

// モーフィングタイプ
enum MRPTYPE {
    MRPTYPE_EYEBROW,                            // 眉
    MRPTYPE_EYE,                                // 目
    MRPTYPE_RIP,                                // 口
    MRPTYPE_ETC,                                // その他

    MRPTYPE_MAX,
};


// 1バイト境界とする
#pragma pack(push)
#pragma pack(1)

// モーフィング頂点情報ファイルヘッダ
typedef struct _MRPVERTEXHEADER {
    char        mHead[4];                       // "MRV�"
    DWORD       dwSize;                         // 全データサイズ(ヘッダ含む)
    DWORD       dwVersion;                      // ファイルバージョン
    DWORD       dwBaseVertexCount;              // 変換対象の基本となる頂点数
//    DWORD       dwMorphCount[MRPTYPE_MAX];      // 各モーフタイプのデータ数
} MRPVERTEXHEADER,*LPMRPVERTEXHEADER;

// モーフィング用頂点情報
typedef struct _MRPVERTEX {
    int         iID;                            // base時は頂点リストのインデックス、それ以外はbaseリスト内のインデックス
    float       x,y,z;                          // base時は頂点のワールド座標、それ以外はbaseからのオフセット
} MRPVERTEX,*LPMRPVERTEX;

// モーフィングタイプヘッダ
typedef struct _MRPVERTEXTYPEHEADER {
    char        mHead[4];                       // "TYPE"
    MRPTYPE     dwType;                         // MRPTYPE_****
    DWORD       dwCount;                        // このタイプに含まれるオフセットデータ数
} MRPVERTEXTYPEHEADER,*LPMRPVERTEXTYPEHEADER;

// モーフィングオフセットヘッダ
typedef struct _MRPVERTEXOFFSETHEADER {
    char        mHead[4];                       // "OFST"
    WCHAR       mName[32];                      // モーフ名
    DWORD       dwCount;                        // このモーフのオフセット頂点数
} MRPVERTEXOFFSETHEADER,*LPMRPVERTEXOFFSETHEADER;



// モーフィングアニメーションヘッダ
typedef struct _MRPANIMEHEADER {
    char        mHead[4];                       // "MRA�"
    DWORD       dwSize;                         // 全データサイズ(ヘッダ含む)
    DWORD       dwVersion;                      // ファイルバージョン
    DWORD       dwMaxFrame;                     // 最大フレーム数(キーの中で一番大きな値)
    DWORD       dwCount;                        // モーフィングデータ数
} MRPANIMEHEADER,*LPMRPANIMEHEADER;

// モーフィングキーフレームデータヘッダ
typedef struct _MRPFRAMEHEADER {
    char        mHead[4];                       // "MKDT"
    WCHAR       mName[32];                      // モーフ名
    DWORD       dwCount;                        // キーフレーム数
} MRPFRAMEHEADER,*LPMRPFRAMEHEADER;

// モーフィングキーフレーム
typedef struct _MRPFRAME {
    DWORD           dwFrame;                    // フレーム番号
    float           fValue;                     // 表情値(0~1)
} MRPFRAME,*LPMRPFRAME;

#pragma pack(pop)


#endif
※MMDのモーションをXファイルにした時に、一緒に書き出す独自モーション形式のプログラムの一部

とりあえずCSSは鬼門だorz
1.管理人 投稿日:2015/09/22 5:40:36
コメントを書くとこんな感じ。
コメントする
名前
コメント
※タグは使用出来ません
この記事に関連するタグ
MMD