VpvpVpd
MikuMikuDance Vocaloid-Pose-Data(.vpd) Parser
インストール
$ npm install vpvp-vpd --save
API
{header,bones}
vpd.parse(buffer) -> MikuMikuDanceの「ポーズデータ保存」で生成したSHIFT_JIS
の.vmd
ファイルをUTF-8
に変換して、オブジェクトを返します。
// Dependenciesvar vpd= ;var fs= ; // Mainvar vpdFile= fs;var data= vpd;console;// {// "header": [// "VocaloidPoseDatafile",// "初音ミク七葉HT.osm;//親ファイル名",// "139;//総ポーズボーン数"// ],// "bones": [// {// "id": "Bone0",// "name": "センター",// "position": [ 0.939673, -1.35, 0.129938 ],// "quaternion": [ 0, 0, 0, 1]// },// {// "id": "Bone1",// "name": "グルーブ",// "position": [ 0, 0, 0 ],// "quaternion": [ 0, 0, 0, 1 ]// },// // more 137 bones...// ]// };
{header,bones}
) -> chunks
vpd.mangle(座標の変更が必要なボーンの情報だけを配列で返します。
// Dependenciesvar vpd= ;var fs= ; // Mainvar vpdFile= fs;var chunks= vpd;console; // ['センター', 0.939673, -1.35, 0.129938, 0, 0, 0, 1, '上半身', ...]
pako
などの圧縮ライブラリを使用してbase64に変換すれば、2000文字未満に収めることも可能です。これは、webアプリケーションでデータを公開する場合に有用です。
vpd.restore(chunks) -> bones
配列をオブジェクトに戻します。
// Dependenciesvar vpd= ;var fs= ; // Mainvar vpdFile= fs;var bones= vpd;console; // [// {// name: 'センター',// position: [ 0.939673, -1.35, 0.129938 ],// quaternion: [ 0, 0, 0, 1 ],// },// ...,// ]
Related projects
- vpvp-vmd
- vpvp-vpd