mirror of
https://github.com/rvtr/TwlIPL_commit-99.git
synced 2025-10-31 06:21:11 -04:00
1617 lines
60 KiB
C
Executable File
1617 lines
60 KiB
C
Executable File
/*---------------------------------------------------------------------------*
|
||
Project: NITRO-System - include - nnsys - g3d - binres
|
||
File: res_struct.h
|
||
|
||
Copyright 2004-2008 Nintendo. All rights reserved.
|
||
|
||
These coded instructions, statements, and computer programs contain
|
||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||
Company Ltd., and are protected by Federal copyright law. They may
|
||
not be disclosed to third parties or copied or duplicated in any form,
|
||
in whole or in part, without the prior written consent of Nintendo.
|
||
|
||
$Revision: 172 $
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
//
|
||
// AUTHOR: Kenji Nishida
|
||
//
|
||
|
||
#ifndef NNSG3D_BINRES_RES_STRUCT_H_
|
||
#define NNSG3D_BINRES_RES_STRUCT_H_
|
||
|
||
#include <nnsys/g3d/config.h>
|
||
#define NNS_G3D_RES_INLINE NNS_G3D_INLINE
|
||
|
||
#ifdef NNS_FROM_TOOL
|
||
// VC++
|
||
typedef u32 NNSGfdTexKey;
|
||
#else
|
||
#include <nnsys/gfd.h>
|
||
SDK_COMPILER_ASSERT(sizeof(NNSGfdTexKey) == sizeof(u32));
|
||
#endif
|
||
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
An overview of relation between NNS_G3D_DATABLK_MDLSET structs
|
||
(NNSG3dResMdlSet as a root)
|
||
|
||
.... -- 1:N relation(referenced by name/index, using NNSG3dResDict)
|
||
---> -- 1:1 relation(own/refer by offset)
|
||
|
||
NNSG3dResMdlSet .... NNSG3dResMdl ---> NNSG3dResMdlInfo
|
||
---> NNSG3dResNodeInfo
|
||
---> Structure Byte Code
|
||
---> NNSG3dResMat
|
||
---> NNSG3dResShp
|
||
|
||
NNSG3dResMdlInfo ---> NNSG3dSbcType/NNSG3dScalingRule/NNSG3dTexMtxMode etc.
|
||
|
||
NNSG3dResNodeInfo .... NNSG3dResNodeData ---> NNSG3dSRTFlag etc.
|
||
|
||
NNSG3dResMat .... NNSG3dResMatData
|
||
|
||
NNSG3dResShp .... NNSG3dResShpData ---> Display List
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Signatures for G3D's binary files
|
||
|
||
*---------------------------------------------------------------------------*/
|
||
#define NNS_G3D_SIGNATURE_NSBMD '0DMB'
|
||
#define NNS_G3D_SIGNATURE_NSBTX '0XTB'
|
||
#define NNS_G3D_SIGNATURE_NSBCA '0ACB'
|
||
#define NNS_G3D_SIGNATURE_NSBVA '0AVB'
|
||
#define NNS_G3D_SIGNATURE_NSBMA '0AMB'
|
||
#define NNS_G3D_SIGNATURE_NSBTP '0PTB'
|
||
#define NNS_G3D_SIGNATURE_NSBTA '0ATB'
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Signatures for G3D data blocks
|
||
|
||
*---------------------------------------------------------------------------*/
|
||
#define NNS_G3D_DATABLK_MDLSET '0LDM'
|
||
#define NNS_G3D_DATABLK_TEX '0XET'
|
||
#define NNS_G3D_DATABLK_JNT_ANM '0TNJ'
|
||
#define NNS_G3D_DATABLK_VIS_ANM '0SIV'
|
||
#define NNS_G3D_DATABLK_MATC_ANM '0TAM'
|
||
#define NNS_G3D_DATABLK_TEXPAT_ANM '0TAP'
|
||
#define NNS_G3D_DATABLK_TEXSRT_ANM '0TRS'
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
<20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>E<EFBFBD>V<EFBFBD>F<EFBFBD>C<EFBFBD>v<EFBFBD>̎<EFBFBD><CC8E>ʃC<CA83><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X
|
||
|
||
<20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>E<EFBFBD>V<EFBFBD>F<EFBFBD>C<EFBFBD>v<EFBFBD>ɂ<C982><C282>Ă̓f<CD83>[<5B>^<5E>t<EFBFBD>H<EFBFBD>[<5B>}<7D>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82>邱<EFBFBD>Ƃ<EFBFBD><C682>\<5C>Ȃ悤<C882><E682A4>
|
||
<20><><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD>_<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD>ߒ<EFBFBD><DF92>_<EFBFBD>f<EFBFBD>[<5B>^<5E><><EFBFBD>C<EFBFBD><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>悤<EFBFBD>ȃV<C883>F<EFBFBD>C<EFBFBD>v<EFBFBD><76>
|
||
<20>K<EFBFBD>v<EFBFBD><76><EFBFBD>A<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꍇ<EFBFBD>̊g<CC8A><67><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD>肵<EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
|
||
NOTICE:
|
||
<20><EFBFBD><D690>e<EFBFBD>[<5B>u<EFBFBD><75><EFBFBD>ւ̃C<CC83><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X<EFBFBD>ɂȂ<C982><C882>Ă<EFBFBD><C482><EFBFBD><EFBFBD>̂ŁA
|
||
<20><><EFBFBD>p<EFBFBD>\<5C>Ȓl<C892>͊<CD8A><D690>e<EFBFBD>[<5B>u<EFBFBD><75><EFBFBD>̃T<CC83>C<EFBFBD>Y<EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef u16 NNSG3dItemTag;
|
||
#define NNS_G3D_ITEMTAG_MAT_STANDARD 0
|
||
#define NNS_G3D_ITEMTAG_SHP_STANDARD 0
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: NNSG3dResFileHeader
|
||
|
||
Description: A header of a resouce file
|
||
|
||
signature = (sigVal = NNS_G3D_SIGNATURE_XXXX)
|
||
byteOrder = 0xfeff
|
||
version = described in u8.u8 style
|
||
fileSize = size of a data file
|
||
headerSize = always 16
|
||
dataBlocks = the number of blocks
|
||
(the number of datablock header)
|
||
Following 'dataBlocks' words are the indices to the blocks.
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResFileHeader_
|
||
{
|
||
union
|
||
{
|
||
char signature[4];
|
||
u32 sigVal;
|
||
};
|
||
u16 byteOrder;
|
||
u16 version;
|
||
u32 fileSize;
|
||
u16 headerSize;
|
||
u16 dataBlocks;
|
||
}
|
||
NNSG3dResFileHeader;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: NNSG3dResDataBlockHeader:
|
||
|
||
Description: A header of a data block
|
||
|
||
kind = the kind of a data block
|
||
size = size of a data block
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDataBlockHeader_
|
||
{
|
||
union
|
||
{
|
||
u32 kind;
|
||
char chr[4];
|
||
};
|
||
u32 size;
|
||
}
|
||
NNSG3dResDataBlockHeader;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: NNSG3dResDictTreeNode:
|
||
|
||
Description: A node of a patricia tree
|
||
|
||
refBit = an index to a referred bit(0-127)
|
||
idxLeft = go left if the bit is zero
|
||
idxRight = go right if the bit is one
|
||
idxEntry = an index to a data entry
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictTreeNode_
|
||
{
|
||
u8 refBit;
|
||
u8 idxLeft;
|
||
u8 idxRight;
|
||
u8 idxEntry;
|
||
}
|
||
NNSG3dResDictTreeNode;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: NNSG3dResDict:
|
||
|
||
Description: <20><><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>̎<EFBFBD><CC8E><EFBFBD><EFBFBD>w<EFBFBD>b<EFBFBD>_
|
||
<20>C<EFBFBD><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X<EFBFBD><58>&NNSG3dResDict<63><74><EFBFBD><EFBFBD><EFBFBD>̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDict_
|
||
{
|
||
u8 revision; // revision of dictionary
|
||
u8 numEntry; // num of entry(not that of tree node)
|
||
u16 sizeDictBlk; // size of this block
|
||
u16 dummy_;
|
||
u16 ofsEntry; // (NNSG3dResDictEntryHeader*) ((u8*)this + idxEntry)
|
||
|
||
// patricia tree and its data entry
|
||
NNSG3dResDictTreeNode node[1]; // variable size
|
||
}
|
||
NNSG3dResDict;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: NNSG3dResName
|
||
|
||
Description: A structure for a resouce name
|
||
'\0' must be filled if the length of string is less than 16.
|
||
*---------------------------------------------------------------------------*/
|
||
#define NNS_G3D_RESNAME_SIZE (16)
|
||
#define NNS_G3D_RESNAME_VALSIZE (NNS_G3D_RESNAME_SIZE / sizeof(u32))
|
||
|
||
typedef union NNSG3dResName_
|
||
{
|
||
char name[NNS_G3D_RESNAME_SIZE];
|
||
u32 val[NNS_G3D_RESNAME_VALSIZE];
|
||
}
|
||
NNSG3dResName;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: NNSG3dResDictEntryHeader
|
||
|
||
Description: <20><><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>̎<EFBFBD><CC8E><EFBFBD><EFBFBD>G<EFBFBD><47><EFBFBD>g<EFBFBD><67><EFBFBD>w<EFBFBD>b<EFBFBD>_
|
||
<20><><EFBFBD>O<EFBFBD>̌<EFBFBD><CC8C><EFBFBD>sizeUnit-16<31>o<EFBFBD>C<EFBFBD>g<EFBFBD>̃f<CC83>[<5B>^<5E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictEntryHeader_
|
||
{
|
||
u16 sizeUnit; // <20>f<EFBFBD>[<5B>^<5E>G<EFBFBD><47><EFBFBD>g<EFBFBD><67>1<EFBFBD><EFBFBD><C295>̃T<CC83>C<EFBFBD>Y<EFBFBD>i<EFBFBD>o<EFBFBD>C<EFBFBD>g<EFBFBD>j
|
||
u16 ofsName; //
|
||
u8 data[4]; // NNSG3dResDictEntryItem<65>̕<EFBFBD><CC95><EFBFBD>(1<><EFBFBD><C282><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̑傫<CC91><E582AB><EFBFBD><EFBFBD>sizeUnit)
|
||
}
|
||
NNSG3dResDictEntryHeader;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// Texture Image
|
||
//
|
||
//
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dTexImageParam
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>u<EFBFBD><75><EFBFBD>b<EFBFBD>N<EFBFBD><4E><EFBFBD>̃e<CC83>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>W<EFBFBD><57><EFBFBD><EFBFBD>
|
||
<20><><EFBFBD>f<EFBFBD><66><EFBFBD>̃}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>Ɗ֘A<D698>t<EFBFBD><74><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>Ƃ<EFBFBD><C682>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>̏<EFBFBD><CC8F>R<F182AA83>s<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_TEXIMAGE_PARAM_TEX_ADDR_MASK = 0x0000ffff,
|
||
NNS_G3D_TEXIMAGE_PARAM_S_SIZE_MASK = 0x00700000,
|
||
NNS_G3D_TEXIMAGE_PARAM_T_SIZE_MASK = 0x03800000,
|
||
NNS_G3D_TEXIMAGE_PARAM_TEXFMT_MASK = 0x1c000000,
|
||
NNS_G3D_TEXIMAGE_PARAM_TR_MASK = 0x20000000,
|
||
|
||
NNS_G3D_TEXIMAGE_PARAM_TEX_ADDR_SHIFT = 0,
|
||
NNS_G3D_TEXIMAGE_PARAM_S_SIZE_SHIFT = 20,
|
||
NNS_G3D_TEXIMAGE_PARAM_T_SIZE_SHIFT = 23,
|
||
NNS_G3D_TEXIMAGE_PARAM_TEXFMT_SHIFT = 26,
|
||
NNS_G3D_TEXIMAGE_PARAM_TR_SHIFT = 29
|
||
}
|
||
NNSG3dTexImageParam;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dTexImageParamEx
|
||
|
||
ORIGW<47><57>ORIGH<47>̓e<CD83>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>s<EFBFBD><73><EFBFBD>̌v<CC8C>Z<EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>ĕK<C495>v
|
||
NNSG3dTexImageParam<61>̒l<CC92>Ɠ<EFBFBD><C693><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>Όv<CE8C>Z<EFBFBD><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>̂ŁA
|
||
<20>t<EFBFBD><74><EFBFBD>O(WHSAME)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_TEXIMAGE_PARAMEX_ORIGW_MASK = 0x000007ff,
|
||
NNS_G3D_TEXIMAGE_PARAMEX_ORIGH_MASK = 0x003ff800,
|
||
NNS_G3D_TEXIMAGE_PARAMEX_WHSAME_MASK = 0x80000000,
|
||
|
||
NNS_G3D_TEXIMAGE_PARAMEX_ORIGW_SHIFT = 0,
|
||
NNS_G3D_TEXIMAGE_PARAMEX_ORIGH_SHIFT = 11,
|
||
NNS_G3D_TEXIMAGE_PARAMEX_WHSAME_SHIFT = 31
|
||
}
|
||
NNSG3dTexImageParamEx;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictTexData
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̃f<CC83>[<5B>^<5E>G<EFBFBD><47><EFBFBD>g<EFBFBD><67>
|
||
<20>ʏ<EFBFBD><CA8F>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>̃f<CC83>[<5B>^<5E>ɂ͉ϒ<C295><CF92>f<EFBFBD>[<5B>^<5E>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>邱<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A
|
||
<20>Œ蒷<C592>̏ꍇ<CC8F>͎<EFBFBD><CD8E><EFBFBD><EFBFBD>̃G<CC83><47><EFBFBD>g<EFBFBD><67><EFBFBD>Ƃ<EFBFBD><C682>ē<EFBFBD><C493>ꍞ<EFBFBD>ނ<EFBFBD><DE82>Ƃ<EFBFBD><C682>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictTexData_
|
||
{
|
||
// 31 30 29 28 26 25 23 22 20 19 16 15 0
|
||
// Pltt0 TexFmt TSize SSize 3bit<69>E<EFBFBD>V<EFBFBD>t<EFBFBD>g<EFBFBD><67><EFBFBD>ꂽ<EFBFBD>I<EFBFBD>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
u32 texImageParam; // NNSG3dTexImageParam
|
||
|
||
// 31 30 22 21 11 10 0
|
||
// SameBit OrigH OrigW
|
||
u32 extraParam; // NNSG3dTexImageParamEx
|
||
}
|
||
NNSG3dResDictTexData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResTexFlag
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>W(4x4<78>t<EFBFBD>H<EFBFBD>[<5B>}<7D>b<EFBFBD>g<EFBFBD>ȊO)<29><><EFBFBD>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>W<EFBFBD>X<EFBFBD><58><EFBFBD>b<EFBFBD>g<EFBFBD>Ƀ<EFBFBD><C983>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ɁA
|
||
NNS_G3D_RESTEX_LOADED<45><44><EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ɂ̓<C982><CD83>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
NNSG3dResTexInfo::flag<61>p<EFBFBD>̒l<CC92>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_RESTEX_LOADED = 0x0001
|
||
}
|
||
NNSG3dResTexFlag;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResTexInfo
|
||
|
||
NNSG3dResTex<65><78><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD><4C><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD>́B
|
||
4x4COMP<4D>t<EFBFBD>H<EFBFBD>[<5B>}<7D>b<EFBFBD>g<EFBFBD>ȊO<C88A>̃e<CC83>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>W<EFBFBD>Ɋւ<C98A><D682><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ێ<EFBFBD><DB8E><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
nsbmd/nsbtx<74>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>Ƀe<C983>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>W<EFBFBD>f<EFBFBD>[<5B>^<5E>͂P<CD82>ɂ܂Ƃ߂<C682><DF82><EFBFBD><EFBFBD>Ă<EFBFBD><C482>āA
|
||
<20>܂Ƃ܂育<DC82>ƂɃ<C682><C983>[<5B>h<EFBFBD>^<5E>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>悤<EFBFBD>ɂȂ<C982><C882>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResTexInfo_
|
||
{
|
||
NNSGfdTexKey vramKey; // gfd<66><64><EFBFBD>C<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD>l<EFBFBD><6C>VRAM<41>L<EFBFBD>[<5B><><EFBFBD>i<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>B
|
||
u16 sizeTex; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>f<EFBFBD>[<5B>^<5E>̃T<CC83>C<EFBFBD>Y<EFBFBD><59><EFBFBD>E<EFBFBD><45>3bit<69>V<EFBFBD>t<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD><CC82>\<5C>ߓ<EFBFBD><DF93><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD>
|
||
u16 ofsDict;
|
||
u16 flag; // NNSG3dResTexFlag
|
||
u16 dummy_;
|
||
u32 ofsTex; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>f<EFBFBD>[<5B>^<5E>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g(&NNSG3dResTexImage<67><65><EFBFBD><EFBFBD><EFBFBD>̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g)
|
||
}
|
||
NNSG3dResTexInfo;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResTex4x4Flag
|
||
|
||
4x4COMP<4D>t<EFBFBD>H<EFBFBD>[<5B>}<7D>b<EFBFBD>g<EFBFBD>̃e<CC83>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>W<EFBFBD><57><EFBFBD>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>W<EFBFBD>X<EFBFBD><58><EFBFBD>b<EFBFBD>g<EFBFBD>Ƀ<EFBFBD><C983>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ɁA
|
||
NNS_G3D_RESTEX4x4_LOADED<45><44><EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ɂ̓<C982><CD83>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
NNSG3dResTex4x4Info::flag<61>p<EFBFBD>̒l<CC92>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_RESTEX4x4_LOADED = 0x0001 // VRAM<41>Ƀ<EFBFBD><C983>[<5B>h<EFBFBD><68><EFBFBD>ꂽ<EFBFBD><EA82BD><EFBFBD>ǂ<EFBFBD><C782><EFBFBD>
|
||
}
|
||
NNSG3dResTex4x4Flag;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResTex4x4Info:
|
||
|
||
NNSG3dResTex<65><78><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD><4C><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD>́B
|
||
4x4COMP<4D>t<EFBFBD>H<EFBFBD>[<5B>}<7D>b<EFBFBD>g<EFBFBD>̃e<CC83>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>W<EFBFBD>Ɋւ<C98A><D682><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ێ<EFBFBD><DB8E><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
nsbmd/nsbtx<74>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>Ƀe<C983>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>W<EFBFBD>f<EFBFBD>[<5B>^<5E>͂P<CD82>ɂ܂Ƃ߂<C682><DF82><EFBFBD><EFBFBD>Ă<EFBFBD><C482>āA
|
||
<20>܂Ƃ܂育<DC82>ƂɃ<C682><C983>[<5B>h<EFBFBD>^<5E>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>悤<EFBFBD>ɂȂ<C982><C882>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResTex4x4Info_
|
||
{
|
||
NNSGfdTexKey vramKey; // gfd<66><64><EFBFBD>C<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD>l<EFBFBD><6C>VRAM<41>L<EFBFBD>[<5B><><EFBFBD>i<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>B
|
||
u16 sizeTex; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>f<EFBFBD>[<5B>^<5E>̃T<CC83>C<EFBFBD>Y<EFBFBD><59><EFBFBD>E<EFBFBD><45>3bit<69>V<EFBFBD>t<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>C<EFBFBD><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X<EFBFBD>̏ꍇ<CC8F><EA8D87>2bit)
|
||
u16 ofsDict;
|
||
u16 flag; // 0<>r<EFBFBD>b<EFBFBD>g<EFBFBD>ڂ̓e<CD83>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD><EFBFBD>VRAM<41>Ƀ<EFBFBD><C983>[<5B>h<EFBFBD><68><EFBFBD>ꂽ<EFBFBD><EA82BD><EFBFBD>ǂ<EFBFBD><C782><EFBFBD><EFBFBD>̃t<CC83><74><EFBFBD>O
|
||
u16 dummy_;
|
||
u32 ofsTex; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>f<EFBFBD>[<5B>^<5E>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g(&NNSG3dResTexImage<67><65><EFBFBD><EFBFBD><EFBFBD>̃o<CC83>C<EFBFBD>g)
|
||
u32 ofsTexPlttIdx; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>C<EFBFBD><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X<EFBFBD>f<EFBFBD>[<5B>^<5E>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g(&NNSG3dResTexImage<67><65><EFBFBD><EFBFBD><EFBFBD>̃o<CC83>C<EFBFBD>g)
|
||
}
|
||
NNSG3dResTex4x4Info;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictPlttData
|
||
|
||
<20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̃f<CC83>[<5B>^<5E>G<EFBFBD><47><EFBFBD>g<EFBFBD><67>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictPlttData_
|
||
{
|
||
u16 offset; // <20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>f<EFBFBD>[<5B>^<5E>̋N<CC8B>_<EFBFBD>ɑ<C991><CE82><EFBFBD><EFBFBD>I<EFBFBD>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67>3bit<69>E<EFBFBD>V<EFBFBD>t<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
u16 flag; // 0<>r<EFBFBD>b<EFBFBD>g<EFBFBD>ڂ<EFBFBD>Tex4Pltt<74><74><EFBFBD>ǂ<EFBFBD><C782><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>O
|
||
}
|
||
NNSG3dResDictPlttData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResPlttFlag
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>X<EFBFBD><58><EFBFBD>b<EFBFBD>g<EFBFBD>Ƀ<EFBFBD><C983>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682><EFBFBD>
|
||
NNS_G3D_RESPLTT_LOADED<45><44><EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ɂ̓<C982><CD83>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
NNS_G3D_RESPLTT_USEPLTT4<54>́A<CD81>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>f<EFBFBD>[<5B>^<5E><>4<EFBFBD>F<EFBFBD>J<EFBFBD><4A><EFBFBD>[<5B>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>܂܂<DC82><DC82>Ă<EFBFBD><C482><EFBFBD>
|
||
<20>ꍇ<EFBFBD>ɃZ<C983>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B4<42>F<EFBFBD>J<EFBFBD><4A><EFBFBD>[<5B>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>̃<EFBFBD><CC83>[<5B>h<EFBFBD><68><EFBFBD>ɂ͐<C982><CD90><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>邩<EFBFBD><E982A9><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_RESPLTT_LOADED = 0x0001, // VRAM<41>Ƀ<EFBFBD><C983>[<5B>h<EFBFBD><68><EFBFBD>ꂽ<EFBFBD><EA82BD><EFBFBD>ǂ<EFBFBD><C782><EFBFBD>
|
||
NNS_G3D_RESPLTT_USEPLTT4 = 0x8000 // <20>u<EFBFBD><75><EFBFBD>b<EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD>4<EFBFBD>F<EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>邩<EFBFBD>ǂ<EFBFBD><C782><EFBFBD>
|
||
}
|
||
NNSG3dResPlttFlag;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResPlttInfo
|
||
|
||
NNSG3dResTex<65><78><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD><4C><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD>́B
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>Ɋւ<C98A><D682><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ێ<EFBFBD><DB8E><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
nsbmd/nsbtx<74>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>Ƀe<C983>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>f<EFBFBD>[<5B>^<5E>͂P<CD82>ɂ܂Ƃ߂<C682><DF82><EFBFBD><EFBFBD>Ă<EFBFBD><C482>āA
|
||
<20>܂Ƃ܂育<DC82>ƂɃ<C682><C983>[<5B>h<EFBFBD>^<5E>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>悤<EFBFBD>ɂȂ<C982><C882>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResPlttInfo_
|
||
{
|
||
NNSGfdTexKey vramKey; // gfd<66><64><EFBFBD>C<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD>l<EFBFBD><6C>VRAM<41>L<EFBFBD>[<5B><><EFBFBD>i<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>B
|
||
u16 sizePltt; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>̃f<CC83>[<5B>^<5E>T<EFBFBD>C<EFBFBD>Y<EFBFBD><59><EFBFBD>E<EFBFBD><45>3bit<69>V<EFBFBD>t<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD><CC82><EFBFBD><EFBFBD><EFBFBD>
|
||
u16 flag; // NNSG3dResPlttFlag
|
||
u16 ofsDict;
|
||
u16 dummy_;
|
||
u32 ofsPlttData;
|
||
}
|
||
NNSG3dResPlttInfo;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResTex
|
||
|
||
<20>i<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>e<EFBFBD><65><EFBFBD>I<EFBFBD>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>́AVRAM<41><4D><EFBFBD>̃X<CC83><58><EFBFBD>b<EFBFBD>g<EFBFBD>ɑ<C991><CE82><EFBFBD><EFBFBD>I<EFBFBD>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>f<EFBFBD>[<5B>^<5E>ȊO<C88A>́A
|
||
&NNSG3dResTex<65><78><EFBFBD>x<EFBFBD>[<5B>X<EFBFBD>ɂ<EFBFBD><C982>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResTex_
|
||
{
|
||
NNSG3dResDataBlockHeader header;
|
||
NNSG3dResTexInfo texInfo;
|
||
NNSG3dResTex4x4Info tex4x4Info;
|
||
NNSG3dResPlttInfo plttInfo;
|
||
NNSG3dResDict dict; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD>
|
||
// <20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD>
|
||
// <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>f<EFBFBD>[<5B>^(4x4<78>ȊO)
|
||
// <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>f<EFBFBD>[<5B>^(4x4)
|
||
// <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>C<EFBFBD><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X<EFBFBD>f<EFBFBD>[<5B>^
|
||
// <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>f<EFBFBD>[<5B>^
|
||
// <20>Ƒ<EFBFBD><C691><EFBFBD>
|
||
}
|
||
NNSG3dResTex;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41>
|
||
//
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictMatData
|
||
|
||
<20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD>[<5B>^<5E>B
|
||
<20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>f<EFBFBD>[<5B>^<5E>͉ϒ<C295><CF92>Ȃ̂<C882>NNSG3dResMatData(<28><>)<29>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictMatData_
|
||
{
|
||
u32 offset; // &NNSG3dResMat<61><74><EFBFBD><EFBFBD><EFBFBD>̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>f<EFBFBD>[<5B>^
|
||
}
|
||
NNSG3dResDictMatData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictTexToMatIdxData
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD><EFBFBD>-><3E>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>C<EFBFBD><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X<EFBFBD><EFBFBD><F18EAB8F>f<EFBFBD>[<5B>^
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictTexToMatIdxData_
|
||
{
|
||
u16 offset; // NNSG3dResMat<61><74><EFBFBD><EFBFBD><EFBFBD>̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
u8 numIdx; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD><EFBFBD><EFBFBD>ɑΉ<C991><CE89><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>h<EFBFBD>c<EFBFBD>̐<EFBFBD>
|
||
u8 flag; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><-><3E>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>̃o<CC83>C<EFBFBD><43><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>ꂽ<EFBFBD><EA82BD><EFBFBD>ǂ<EFBFBD><C782><EFBFBD><EFBFBD>̃t<CC83><74><EFBFBD>O
|
||
}
|
||
NNSG3dResDictTexToMatIdxData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictPlttToMatIdxData
|
||
|
||
<20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD><67>-><3E>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>C<EFBFBD><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X<EFBFBD><EFBFBD><F18EAB8F>f<EFBFBD>[<5B>^
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictPlttToMatIdxData_
|
||
{
|
||
u16 offset; // NNSG3dResMat<61><74><EFBFBD><EFBFBD><EFBFBD>̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
u8 numIdx; // <20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>ɑΉ<C991><CE89><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>h<EFBFBD>c<EFBFBD>̐<EFBFBD>
|
||
u8 flag; // <20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<-><3E>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>̃o<CC83>C<EFBFBD><43><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>ꂽ<EFBFBD><EA82BD><EFBFBD>ǂ<EFBFBD><C782><EFBFBD><EFBFBD>̃t<CC83><74><EFBFBD>O
|
||
}
|
||
NNSG3dResDictPlttToMatIdxData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dMatFlag
|
||
|
||
<20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>Ɋւ<C98A><D682><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>
|
||
<20>r<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>AX<41><58><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>O<EFBFBD>ɂȂ<C982><C882>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɁA<C981>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>f<EFBFBD>[<5B>^<5E>Ɗ֘A<D698>t<EFBFBD><74><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682>ɑ<EFBFBD><C991>삳<EFBFBD><EC82B3><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_MATFLAG_TEXMTX_USE = 0x0001, // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD><70><EFBFBD>邩<EFBFBD>ǂ<EFBFBD><C782><EFBFBD>
|
||
NNS_G3D_MATFLAG_TEXMTX_SCALEONE = 0x0002, // <20>X<EFBFBD>P<EFBFBD>[<5B><><EFBFBD><EFBFBD>1.0<EFBFBD>Ȃ<EFBFBD>ON(<28>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>s<EFBFBD><73><EFBFBD>g<EFBFBD>p<EFBFBD><70>)
|
||
NNS_G3D_MATFLAG_TEXMTX_ROTZERO = 0x0004, // <20><><EFBFBD>]<5D><><EFBFBD>Ȃ<EFBFBD><C882>Ȃ<EFBFBD>ON(<28>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>s<EFBFBD><73><EFBFBD>g<EFBFBD>p<EFBFBD><70>)
|
||
NNS_G3D_MATFLAG_TEXMTX_TRANSZERO = 0x0008, // <20><><EFBFBD>s<EFBFBD>ړ<EFBFBD><DA93><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>Ȃ<EFBFBD>ON(<28>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>s<EFBFBD><73><EFBFBD>g<EFBFBD>p<EFBFBD><70>)
|
||
NNS_G3D_MATFLAG_ORIGWH_SAME = 0x0010, // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD><EFBFBD>Width/Height<68><74><EFBFBD>V<EFBFBD>X<EFBFBD>e<EFBFBD><65><EFBFBD>Ɠ<EFBFBD><C693><EFBFBD><EFBFBD>ꍇ<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
NNS_G3D_MATFLAG_WIREFRAME = 0x0020, // <20><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD>\<5C><><EFBFBD>Ȃ<EFBFBD>ON
|
||
NNS_G3D_MATFLAG_DIFFUSE = 0x0040, // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD>diffuse<73><65><EFBFBD>w<EFBFBD>肷<EFBFBD><E882B7><EFBFBD>Ȃ<EFBFBD>ON
|
||
NNS_G3D_MATFLAG_AMBIENT = 0x0080, // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD>ambient<6E><74><EFBFBD>w<EFBFBD>肷<EFBFBD><E882B7><EFBFBD>Ȃ<EFBFBD>ON
|
||
NNS_G3D_MATFLAG_VTXCOLOR = 0x0100, // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD>vtxcolor<6F>t<EFBFBD><74><EFBFBD>O<EFBFBD><4F><EFBFBD>w<EFBFBD>肷<EFBFBD><E882B7><EFBFBD>Ȃ<EFBFBD>ON
|
||
NNS_G3D_MATFLAG_SPECULAR = 0x0200, // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD>specular<61><72><EFBFBD>w<EFBFBD>肷<EFBFBD><E882B7><EFBFBD>Ȃ<EFBFBD>ON
|
||
NNS_G3D_MATFLAG_EMISSION = 0x0400, // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD>emission<6F><6E><EFBFBD>w<EFBFBD>肷<EFBFBD><E882B7><EFBFBD>Ȃ<EFBFBD>ON
|
||
NNS_G3D_MATFLAG_SHININESS = 0x0800, // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD>shininess<73>t<EFBFBD><74><EFBFBD>O<EFBFBD><4F><EFBFBD>w<EFBFBD>肷<EFBFBD><E882B7><EFBFBD>Ȃ<EFBFBD>ON
|
||
NNS_G3D_MATFLAG_TEXPLTTBASE = 0x1000, // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>x<EFBFBD>[<5B>X<EFBFBD>A<EFBFBD>h<EFBFBD><68><EFBFBD>X<EFBFBD><58><EFBFBD>w<EFBFBD>肷<EFBFBD><E882B7><EFBFBD>Ȃ<EFBFBD>ON
|
||
NNS_G3D_MATFLAG_EFFECTMTX = 0x2000 // effect_mtx<74><78><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82><EFBFBD><EFBFBD>Ȃ<EFBFBD>ON
|
||
}
|
||
NNSG3dMatFlag;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResMatData
|
||
|
||
<20>X<C281>̃}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>̃f<CC83>[<5B>^<5E>B
|
||
<20>f<EFBFBD>[<5B>^<5E><><EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꍇ<EFBFBD>́AitemTag<61>̒l<CC92><6C><EFBFBD>ς<EFBFBD><CF82>āA<C481>\<5C><><EFBFBD>̂̌<CC82><CC8C><EFBFBD><EFBFBD>Ƀf<C983>[<5B>^<5E><><EFBFBD>z<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD>
|
||
<20>悤<EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResMatData_
|
||
{
|
||
NNSG3dItemTag itemTag; // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>ʔF<CA94><46><EFBFBD>^<5E>O(<28><><EFBFBD>̍\<5C><><EFBFBD>̂̏ꍇ<CC8F><EA8D87>NNS_G3D_ITEMTAG_MAT_STANDARD<52>ł<EFBFBD><C582><EFBFBD><EFBFBD>K<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||
u16 size; // <20>T<EFBFBD>C<EFBFBD>Y
|
||
u32 diffAmb; // MaterialColor0<72>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>ւ̃p<CC83><70><EFBFBD><EFBFBD><EFBFBD>^
|
||
u32 specEmi; // MaterialColor1<72>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>ւ̃p<CC83><70><EFBFBD><EFBFBD><EFBFBD>^
|
||
u32 polyAttr; // PolygonAttr<74>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>ւ̃p<CC83><70><EFBFBD><EFBFBD><EFBFBD>^
|
||
u32 polyAttrMask; // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>Ŏw<C58E>肷<EFBFBD><E882B7><EFBFBD>r<EFBFBD>b<EFBFBD>g<EFBFBD><67>1<EFBFBD>ɂȂ<C982><C882>Ă<EFBFBD><C482><EFBFBD>
|
||
u32 texImageParam; // TexImageParam<61>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>ւ̃p<CC83><70><EFBFBD><EFBFBD><EFBFBD>^
|
||
u32 texImageParamMask; // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>Ŏw<C58E>肷<EFBFBD><E882B7><EFBFBD>r<EFBFBD>b<EFBFBD>g<EFBFBD><67>1<EFBFBD>ɂȂ<C982><C882>Ă<EFBFBD><C482><EFBFBD>
|
||
u16 texPlttBase; // TexPlttBase<73>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>ւ̃p<CC83><70><EFBFBD><EFBFBD><EFBFBD>^
|
||
u16 flag; // NNSG3dMatFlag<61>փL<D683><4C><EFBFBD>X<EFBFBD>g
|
||
u16 origWidth, origHeight; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƀe<C983>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>C<EFBFBD><43><EFBFBD>[<5B>W<EFBFBD><57><EFBFBD><EFBFBD><EFBFBD>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
fx32 magW; // <20>o<EFBFBD>C<EFBFBD><43><EFBFBD>h<EFBFBD><68><EFBFBD>ꂽ<EFBFBD>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>̕<EFBFBD>/origWidth
|
||
fx32 magH; // <20>o<EFBFBD>C<EFBFBD><43><EFBFBD>h<EFBFBD><68><EFBFBD>ꂽ<EFBFBD>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>̍<EFBFBD><CC8D><EFBFBD>/origHeight
|
||
// fx32 scaleS, scaleT; // exists if NNS_G3D_MATFLAG_TEXMTX_SCALEONE is off
|
||
// fx16 rotSin, rotCos; // exists if NNS_G3D_MATFLAG_TEXMTX_ROTZERO is off
|
||
// fx32 transS, transT; // exists if NNS_G3D_MATFLAG_TEXMTX_TRANSZERO is off
|
||
// fx32 effectMtx[16]; // exists if NNS_G3D_MATFLAG_ENV_EFFECTMTX is on
|
||
}
|
||
NNSG3dResMatData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResMat
|
||
|
||
<20>P<EFBFBD>̃<C282><CC83>f<EFBFBD><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>̏W<CC8F><57><EFBFBD>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResMat_
|
||
{
|
||
u16 ofsDictTexToMatList; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><>-><3E>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41>ID<49><EFBFBD><F18EAB8F>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
u16 ofsDictPlttToMatList; // <20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g-><3E>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41>ID<49><EFBFBD><F18EAB8F>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
NNSG3dResDict dict; // NNSG3dResDictMatData<74>ւ̎<D682><CC8E><EFBFBD>
|
||
// NNSG3dResDict dictTexToMatList; // (u8*)this + idxDictTexToMatList
|
||
// NNSG3dResDict dictPlttToMatList; // (u8*)this + idxDictPlttToMatList
|
||
// u8[] matIdxData; // (u8*)this + idxMatIdxData
|
||
// seq of NNSG3dResMatData matData // (u8*)this + idxMatData
|
||
}
|
||
NNSG3dResMat;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20>V<EFBFBD>F<EFBFBD>C<EFBFBD>v
|
||
//
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictShpData
|
||
|
||
<20>V<EFBFBD>F<EFBFBD>C<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD>[<5B>^<5E>B
|
||
<20>V<EFBFBD>F<EFBFBD>C<EFBFBD>v<EFBFBD>f<EFBFBD>[<5B>^<5E>͉ϒ<C295><CF92>Ȃ̂<C882>NNSG3dResShpData(<28><>)<29>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictShpData_
|
||
{
|
||
u32 offset; // (u8*)&NNSG3DResShp + offset -> NNSG3dResShpData&
|
||
}
|
||
NNSG3dResDictShpData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dShpFlag
|
||
|
||
<20>V<EFBFBD>F<EFBFBD>C<EFBFBD>v<EFBFBD>̃f<CC83>B<EFBFBD>X<EFBFBD>v<EFBFBD><76><EFBFBD>C<EFBFBD><43><EFBFBD>X<EFBFBD>g<EFBFBD>̓<EFBFBD><CC93>F<EFBFBD><46><EFBFBD>\<5C><><EFBFBD>t<EFBFBD><74><EFBFBD>O<EFBFBD>ł<EFBFBD><C582>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_SHPFLAG_USE_NORMAL = 0x00000001, // DL<44><4C><EFBFBD><EFBFBD>Normal<61>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82>܂<EFBFBD><DC82>B
|
||
NNS_G3D_SHPFLAG_USE_COLOR = 0x00000002, // DL<44><4C><EFBFBD><EFBFBD>Color<6F>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82>܂<EFBFBD><DC82>B
|
||
NNS_G3D_SHPFLAG_USE_TEXCOORD = 0x00000004, // DL<44><4C><EFBFBD><EFBFBD>TexCoord<72>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82>܂<EFBFBD><DC82>B
|
||
NNS_G3D_SHPFLAG_USE_RESTOREMTX = 0x00000008 // DL<44><4C><EFBFBD><EFBFBD>RestoreMtx<74>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82>܂<EFBFBD><DC82>B
|
||
}
|
||
NNSG3dShpFlag;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResShpData
|
||
|
||
<20>X<C281>̃V<CC83>F<EFBFBD>C<EFBFBD>v<EFBFBD>f<EFBFBD>[<5B>^<5E>B
|
||
<20>قȂ<D982><C882>f<EFBFBD>[<5B>^<5E>\<5C><><EFBFBD>ŃV<C583>F<EFBFBD>C<EFBFBD>v<EFBFBD><76><EFBFBD>L<EFBFBD>q<EFBFBD><71><EFBFBD><EFBFBD><EFBFBD>ꍇ<EFBFBD>ł<EFBFBD><C582>AitemTag<61><67>size<7A><65><EFBFBD><EFBFBD><EFBFBD>͏<EFBFBD><CD8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>K<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResShpData_
|
||
{
|
||
NNSG3dItemTag itemTag; // <20>V<EFBFBD>F<EFBFBD>C<EFBFBD>v<EFBFBD><76><EFBFBD>ʔF<CA94><46><EFBFBD>^<5E>O(<28><><EFBFBD>̍\<5C><><EFBFBD>̂̏ꍇ<CC8F><EA8D87>NNS_G3D_ITEMTAG_SHP_STANDARD<52>ł<EFBFBD><C582><EFBFBD><EFBFBD>K<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||
u16 size; // <20>T<EFBFBD>C<EFBFBD>Y
|
||
u32 flag; // NNSG3dShpFlag
|
||
u32 ofsDL; // <20>f<EFBFBD>B<EFBFBD>X<EFBFBD>v<EFBFBD><76><EFBFBD>C<EFBFBD><43><EFBFBD>X<EFBFBD>g<EFBFBD>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
u32 sizeDL; // <20>f<EFBFBD>B<EFBFBD>X<EFBFBD>v<EFBFBD><76><EFBFBD>C<EFBFBD><43><EFBFBD>X<EFBFBD>g<EFBFBD>̃T<CC83>C<EFBFBD>Y
|
||
}
|
||
NNSG3dResShpData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResShp
|
||
|
||
<20>P<EFBFBD>̃<C282><CC83>f<EFBFBD><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V<C283>F<EFBFBD>C<EFBFBD>v<EFBFBD>̏W<CC8F><57><EFBFBD>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResShp_
|
||
{
|
||
NNSG3dResDict dict; // NNSG3dResDictShpData<74>ւ̎<D682><CC8E><EFBFBD>
|
||
// NNSG3dResShpData[] shpData;
|
||
// u32[] DL;
|
||
}
|
||
NNSG3dResShp;
|
||
|
||
|
||
typedef struct NNSG3dResEvpMtx_
|
||
{
|
||
MtxFx43 invM;
|
||
MtxFx33 invN;
|
||
}
|
||
NNSG3dResEvpMtx;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// ModelInfo
|
||
//
|
||
//
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dSbcType
|
||
|
||
<20><><EFBFBD>f<EFBFBD><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Structure Byte Code<64>̃^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>w<EFBFBD>肷<EFBFBD><E882B7>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_SBCTYPE_NORMAL = 0 // <20><><EFBFBD>݂̂Ƃ<CC82><C682><EFBFBD><EFBFBD>P<EFBFBD><50><EFBFBD>̃^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD>
|
||
}
|
||
NNSG3dSbcType;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dScalingRule
|
||
|
||
<20><><EFBFBD>f<EFBFBD><66><EFBFBD>̃X<CC83>P<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><4F><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>w<EFBFBD>肷<EFBFBD><E882B7>
|
||
<20><><EFBFBD>ԃt<D483>@<40>C<EFBFBD><43><EFBFBD>t<EFBFBD>H<EFBFBD>[<5B>}<7D>b<EFBFBD>g<EFBFBD><67><model_info>::scaling_rule<6C>ɑΉ<C991><CE89><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_SCALINGRULE_STANDARD = 0, // <20><><EFBFBD>ʓI<CA93>ȍs<C88D><73><EFBFBD>v<EFBFBD>Z<EFBFBD>ł悢
|
||
NNS_G3D_SCALINGRULE_MAYA = 1, // Maya<79><61>Segment Scaling Compensate<74>̍l<CC8D><6C><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><73><EFBFBD>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD>Ȃ<CE82><C882>Ȃ<EFBFBD><C882>m<EFBFBD>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82><EFBFBD>
|
||
NNS_G3D_SCALINGRULE_SI3D = 2 // Softimage3D<33>̃X<CC83>P<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD>v<EFBFBD>Z<EFBFBD><5A><EFBFBD>s<EFBFBD><73><EFBFBD>Ȃ<EFBFBD><C882>Ă͂Ȃ<CD82><C882>Ȃ<EFBFBD>
|
||
}
|
||
NNSG3dScalingRule;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dTexMtxMode
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>s<EFBFBD><73><EFBFBD>̌v<CC8C>Z<EFBFBD><5A><EFBFBD>@<40><><EFBFBD>w<EFBFBD>肷<EFBFBD><E882B7>
|
||
<20><><EFBFBD>ԃt<D483>@<40>C<EFBFBD><43><EFBFBD>t<EFBFBD>H<EFBFBD>[<5B>}<7D>b<EFBFBD>g<EFBFBD><67><model_info>::tex_mtx_mode<64>ɑΉ<C991><CE89><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_TEXMTXMODE_MAYA = 0x00, // Maya<79>̌v<CC8C>Z<EFBFBD><5A><EFBFBD>@<40><><EFBFBD>K<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD>B
|
||
NNS_G3D_TEXMTXMODE_SI3D = 0x01, // Softimage3D<33>̌v<CC8C>Z<EFBFBD><5A><EFBFBD>@<40><><EFBFBD>K<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD>B
|
||
NNS_G3D_TEXMTXMODE_3DSMAX = 0x02, // 3dsMax<61>̌v<CC8C>Z<EFBFBD><5A><EFBFBD>@<40><><EFBFBD>K<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD>B
|
||
NNS_G3D_TEXMTXMODE_XSI = 0x03 // XSI<53>̌v<CC8C>Z<EFBFBD><5A><EFBFBD>@<40><><EFBFBD>K<EFBFBD>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD>B
|
||
}
|
||
NNSG3dTexMtxMode;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
Name: NNSG3dResMdlInfo
|
||
|
||
Description: <20><><EFBFBD>f<EFBFBD><66><EFBFBD>̕t<CC95><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResMdlInfo_
|
||
{
|
||
u8 sbcType; // Structure Byte Code<64>^<5E>C<EFBFBD>v<EFBFBD><76><EFBFBD>ʎq(NNSG3dSbcType)
|
||
u8 scalingRule; // <20>X<EFBFBD>P<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><4F><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ʎq(NNSG3dScalingRule)
|
||
u8 texMtxMode; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>s<EFBFBD><73><EFBFBD>v<EFBFBD>Z<EFBFBD><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʎq(NNSG3dTexMtxMode)
|
||
u8 numNode;
|
||
|
||
u8 numMat;
|
||
u8 numShp;
|
||
u8 firstUnusedMtxStackID;
|
||
u8 dummy_;
|
||
|
||
// <20><><EFBFBD>_<EFBFBD>ʒu<CA92><75><EFBFBD>W<EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>P<EFBFBD>[<5B><><EFBFBD>l<EFBFBD>Ƃ<EFBFBD><C682>̋t<CC8B><74>
|
||
// FX32_ONE<4E>ȊO<C88A><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꍇ<EFBFBD>A<EFBFBD>W<EFBFBD>I<EFBFBD><49><EFBFBD>g<EFBFBD><67><EFBFBD>G<EFBFBD><47><EFBFBD>W<EFBFBD><57><EFBFBD>̃X<CC83>P<EFBFBD>[<5B><><EFBFBD>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>𗘗p<F0979897><70><EFBFBD><EFBFBD>
|
||
// <20><><EFBFBD>_<EFBFBD>ʒu<CA92><75><EFBFBD>W<EFBFBD><57><EFBFBD><EFBFBD><EFBFBD>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD>V<EFBFBD>F<EFBFBD>C<EFBFBD>v<EFBFBD>̃f<CC83>B<EFBFBD>X<EFBFBD>v<EFBFBD><76><EFBFBD>C<EFBFBD><43><EFBFBD>X<EFBFBD>g<EFBFBD><67><EFBFBD>ōs<C58D><EFBFBD><F182AA83>X<EFBFBD>g<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD>
|
||
// (<28>G<EFBFBD><47><EFBFBD>x<EFBFBD><78><EFBFBD>[<5B>v<EFBFBD><76><EFBFBD>p)<29>ꍇ<EFBFBD>A<EFBFBD><41><EFBFBD>X<EFBFBD>g<EFBFBD>A<EFBFBD><41><EFBFBD>AposScale<6C>ŃX<C583>P<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>悤<EFBFBD>ɂȂ<C982><C882>Ă<EFBFBD><C482><EFBFBD>
|
||
fx32 posScale;
|
||
fx32 invPosScale;
|
||
|
||
u16 numVertex; // IMD<4D>t<EFBFBD>@<40>C<EFBFBD><43><output_info>::vertex_size<7A>̒l
|
||
u16 numPolygon; // IMD<4D>t<EFBFBD>@<40>C<EFBFBD><43><output_info>::polygon_size<7A>̒l
|
||
u16 numTriangle; // IMD<4D>t<EFBFBD>@<40>C<EFBFBD><43><output_info>::triangle_size<7A>̒l
|
||
u16 numQuad; // IMD<4D>t<EFBFBD>@<40>C<EFBFBD><43><output_info>::quad_size<7A>̒l
|
||
|
||
fx16 boxX, boxY, boxZ; // boxPosScale<6C>ł<EFBFBD><C582><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǝ<EFBFBD><C68E>ۂ̍<DB82><CC8D>W<EFBFBD>ɂȂ<C982>
|
||
fx16 boxW, boxH, boxD; // boxPosScale<6C>ł<EFBFBD><C582><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǝ<EFBFBD><C68E>ۂ̍<DB82><CC8D>W<EFBFBD>ɂȂ<C982>
|
||
|
||
fx32 boxPosScale;
|
||
fx32 boxInvPosScale;
|
||
}
|
||
NNSG3dResMdlInfo;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20>m<EFBFBD>[<5B>h
|
||
//
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictNodeData
|
||
|
||
<20>m<EFBFBD>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD>[<5B>^<5E>B
|
||
NNSG3dResNodeData<74>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictNodeData_
|
||
{
|
||
u32 offset; // &NNSG3dResNodeInfo<66><6F><EFBFBD><EFBFBD><EFBFBD>̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>f<EFBFBD>[<5B>^
|
||
}
|
||
NNSG3dResDictNodeData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dSRTFlag
|
||
|
||
<20>m<EFBFBD>[<5B>h<EFBFBD><68>SRT<52>f<EFBFBD>[<5B>^<5E>Ɋւ<C98A><D682><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD>
|
||
<20><><EFBFBD>̃t<CC83><74><EFBFBD>O<EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Č㑱<C48C>ɂǂ̂悤<CC82>ȃf<C883>[<5B>^<5E><><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82>邩<EFBFBD><E982A9><EFBFBD><EFBFBD><EFBFBD>肷<EFBFBD><E882B7><EFBFBD>B
|
||
<20>f<EFBFBD>[<5B>^<5E>ʂ̍팸<CC8D>Ɨ]<5D><><EFBFBD>Ȍv<C88C>Z<EFBFBD>̏ȗ<CC8F><C897><EFBFBD><EFBFBD>ړI<DA93>Ƃ<EFBFBD><C682>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_SRTFLAG_TRANS_ZERO = 0x0001, // Trans=(0,0,0), <20>ړ<EFBFBD><DA93>f<EFBFBD>[<5B>^<5E>̏o<CC8F>͂<EFBFBD><CD82>ȗ<EFBFBD><C897><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
NNS_G3D_SRTFLAG_ROT_ZERO = 0x0002, // Rot=Identity, <20><><EFBFBD>]<5D>s<EFBFBD><73><EFBFBD>f<EFBFBD>[<5B>^<5E>̏o<CC8F>͂<EFBFBD><CD82>ȗ<EFBFBD><C897><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
NNS_G3D_SRTFLAG_SCALE_ONE = 0x0004, // Scale=(1,1,1), <20>X<EFBFBD>P<EFBFBD>[<5B><><EFBFBD>f<EFBFBD>[<5B>^<5E>̏o<CC8F>͂<EFBFBD><CD82>ȗ<EFBFBD><C897><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
NNS_G3D_SRTFLAG_PIVOT_EXIST = 0x0008, // <20><><EFBFBD>]<5D>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+1<><31>-1<>̗v<CC97>f(Pivot)<29><><EFBFBD><EFBFBD><EFBFBD>݂<EFBFBD><DD82><EFBFBD><EFBFBD>B
|
||
NNS_G3D_SRTFLAG_IDXPIVOT_MASK = 0x00f0, // +1,-1<>v<EFBFBD>f(Pivot)<29>̏ꏊ
|
||
NNS_G3D_SRTFLAG_PIVOT_MINUS = 0x0100, // ON<4F>Ȃ<EFBFBD><C882><EFBFBD>Pivot<6F><74>-1, OFF<46>Ȃ<EFBFBD><C882><EFBFBD>+1
|
||
NNS_G3D_SRTFLAG_SIGN_REVC = 0x0200, // <20>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43>B<EFBFBD>̔<EFBFBD><CC94>̕<CE82><CC95><EFBFBD>
|
||
NNS_G3D_SRTFLAG_SIGN_REVD = 0x0400, // <20>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD><44>A<EFBFBD>̔<EFBFBD><CC94>̕<CE82><CC95><EFBFBD>
|
||
NNS_G3D_SRTFLAG_IDXMTXSTACK_MASK = 0xf800, // 0-30<33><30><EFBFBD>ƃX<C683>^<5E>b<EFBFBD>N<EFBFBD>ɂ<EFBFBD><C982><EFBFBD>,31<33><31><EFBFBD>ƃX<C683>^<5E>b<EFBFBD>N<EFBFBD>ɂȂ<C982>
|
||
|
||
NNS_G3D_SRTFLAG_IDENTITY = NNS_G3D_SRTFLAG_TRANS_ZERO |
|
||
NNS_G3D_SRTFLAG_ROT_ZERO |
|
||
NNS_G3D_SRTFLAG_SCALE_ONE,
|
||
|
||
NNS_G3D_SRTFLAG_IDXPIVOT_SHIFT = 4,
|
||
NNS_G3D_SRTFLAG_IDXMTXSTACK_SHIFT = 11
|
||
}
|
||
NNSG3dSRTFlag;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResNodeData
|
||
|
||
flag(NNSG3dSRTFlag)<29>̒l<CC92>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Č㑱<C48C>ɂǂ̂悤<CC82>ȃf<C883>[<5B>^<5E><><EFBFBD><EFBFBD><EFBFBD>邩<EFBFBD><E982A9><EFBFBD>ω<EFBFBD><CF89><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResNodeData_
|
||
{
|
||
u16 flag; // NNSG3dSRTFlag
|
||
fx16 _00;
|
||
// exists if !NNS_G3D_SRT_FLAG_TRANS_ZERO
|
||
// fx32 Tx, Ty, Tz;
|
||
// exists if !NNS_G3D_SRT_FLAG_ROT_ZERO && !NNS_G3D_SRT_FLAG_PIVOT_EXIST
|
||
// fx16 _01, _02;
|
||
// fx16 _10, _11;
|
||
// fx16 _12, _20;
|
||
// fx16 _21, _22;
|
||
// exists if !NNS_G3D_SRT_FLAG_ROT_ZERO && NNS_G3D_SRT_FLAG_PIVOT_EXIST
|
||
// fx16 A, B;
|
||
// exists if !NNS_G3D_SCALE_ONE
|
||
// fx32 Sx, Sy, Sz;
|
||
// fx32 InvSx, InvSy, InvSz;
|
||
}
|
||
NNSG3dResNodeData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResNodeInfo
|
||
|
||
<20>P<EFBFBD>̃<C282><CC83>f<EFBFBD><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m<C283>[<5B>h<EFBFBD>r<EFBFBD>q<EFBFBD>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD>̏W<CC8F><57><EFBFBD>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResNodeInfo_
|
||
{
|
||
NNSG3dResDict dict;
|
||
// a seq of NNSG3dResNodeSRTInfo
|
||
}
|
||
NNSG3dResNodeInfo;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20><><EFBFBD>f<EFBFBD><66>
|
||
//
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResMdl
|
||
|
||
<20>P<EFBFBD>̃<C282><CC83>f<EFBFBD><66><EFBFBD>Ɋւ<C98A><D682><EFBFBD><EFBFBD>i<EFBFBD>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>ȊO<C88A>́j<CC81>S<EFBFBD>Ă̏<C482><CC8F><EFBFBD><EFBFBD>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResMdl_
|
||
{
|
||
u32 size; // <20><><EFBFBD>f<EFBFBD><66><EFBFBD>̃T<CC83>C<EFBFBD>Y
|
||
u32 ofsSbc; // &NNSG3dResMdl<64><6C><EFBFBD>N<EFBFBD>_<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD>Sbc<62>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
u32 ofsMat; // &NNSG3dResMdl<64><6C><EFBFBD>N<EFBFBD>_<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD>NNSG3dResMat<61>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
u32 ofsShp; // &NNSG3dResMdl<64><6C><EFBFBD>N<EFBFBD>_<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD>NNSG3dResShp<68>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
u32 ofsEvpMtx; // &NNSG3dResMdl<64><6C><EFBFBD>N<EFBFBD>_<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD>NNSG3dEvpMtx<74>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
NNSG3dResMdlInfo info; // <20><><EFBFBD>f<EFBFBD><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>Œ蒷)
|
||
NNSG3dResNodeInfo nodeInfo; // <20>m<EFBFBD>[<5B>h<EFBFBD><68><EFBFBD><EFBFBD>
|
||
// SBC
|
||
// Materials
|
||
// Shapes
|
||
// EvpMtxs
|
||
}
|
||
NNSG3dResMdl;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20><><EFBFBD>f<EFBFBD><66><EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
//
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictMdlSetData
|
||
|
||
<20>X<C281>̃<EFBFBD><CC83>f<EFBFBD><66><EFBFBD>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g(&NNSG3dResMdlSet<65><74><EFBFBD>N<EFBFBD>_)<29><><EFBFBD>i<EFBFBD>[<5B><><EFBFBD>Ă<EFBFBD><C482><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictMdlSetData_
|
||
{
|
||
u32 offset;
|
||
}
|
||
NNSG3dResDictMdlSetData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResMdlSet
|
||
|
||
<20><><EFBFBD>f<EFBFBD><66><EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>u<EFBFBD><75><EFBFBD>b<EFBFBD>N<EFBFBD>̍\<5C><><EFBFBD>́B<CC81>f<EFBFBD>[<5B>^<5E>u<EFBFBD><75><EFBFBD>b<EFBFBD>N<EFBFBD>w<EFBFBD>b<EFBFBD>_<EFBFBD><5F><EFBFBD>܂ލ\<5C><><EFBFBD>̂ł<CC82><C582>邱<EFBFBD>Ƃɒ<C682><C992><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResMdlSet_
|
||
{
|
||
NNSG3dResDataBlockHeader header;
|
||
NNSG3dResDict dict;
|
||
// a seq of NNSG3dResMdl follows
|
||
}
|
||
NNSG3dResMdlSet;
|
||
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// Structure Byte Code(Sbc)
|
||
//
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
SBC<42><43><EFBFBD>߃Z<DF83>b<EFBFBD>g
|
||
|
||
*---------------------------------------------------------------------------*/
|
||
#define NNS_G3D_SBC_NOP 0x00 // NOP
|
||
#define NNS_G3D_SBC_RET 0x01 // RET
|
||
#define NNS_G3D_SBC_NODE 0x02 // NODE idxNode, visibility
|
||
#define NNS_G3D_SBC_MTX 0x03 // MTX stackIdx
|
||
#define NNS_G3D_SBC_MAT 0x04 // MAT idxMat
|
||
#define NNS_G3D_SBC_SHP 0x05 // SHP idxShp
|
||
#define NNS_G3D_SBC_NODEDESC 0x06 // NODEDESC idxNode, idxMtxDest, idxMtxParent
|
||
#define NNS_G3D_SBC_BB 0x07
|
||
#define NNS_G3D_SBC_BBY 0x08
|
||
#define NNS_G3D_SBC_NODEMIX 0x09 // NODEMIX idxNode, idxMtxDest, numMtx, idxMtx1, ratio1, ..., idxMtxN, ratioN
|
||
#define NNS_G3D_SBC_CALLDL 0x0a // CALLDL u32(relative), u32(size)
|
||
#define NNS_G3D_SBC_POSSCALE 0x0b // POSSCALE
|
||
#define NNS_G3D_SBC_ENVMAP 0x0c
|
||
#define NNS_G3D_SBC_PRJMAP 0x0d
|
||
|
||
|
||
#define NNS_G3D_SBC_NOCMD 0x1f // not exist in compiled structure byte code mnemonic
|
||
|
||
#define NNS_G3D_SBC_COMMAND_NUM 0x20
|
||
|
||
#define NNS_G3D_SBCFLG_000 0x00
|
||
#define NNS_G3D_SBCFLG_001 0x20
|
||
#define NNS_G3D_SBCFLG_010 0x40
|
||
#define NNS_G3D_SBCFLG_011 0x60
|
||
#define NNS_G3D_SBCFLG_100 0x80
|
||
#define NNS_G3D_SBCFLG_101 0xa0
|
||
#define NNS_G3D_SBCFLG_110 0xc0
|
||
#define NNS_G3D_SBCFLG_111 0xe0
|
||
|
||
#define NNS_G3D_SBCCMD_MASK 0x1f
|
||
#define NNS_G3D_SBCFLG_MASK 0xe0
|
||
|
||
|
||
typedef enum
|
||
{
|
||
NNS_G3D_SBC_NODEDESC_FLAG_MAYASSC_APPLY = 0x01,
|
||
NNS_G3D_SBC_NODEDESC_FLAG_MAYASSC_PARENT = 0x02
|
||
}
|
||
NNSG3dSbcNodeDescFlag;
|
||
|
||
#define NNS_G3D_GET_SBCCMD(x) ((x) & NNS_G3D_SBCCMD_MASK)
|
||
#define NNS_G3D_GET_SBCFLG(x) ((u32)((x) & NNS_G3D_SBCFLG_MASK))
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>
|
||
//
|
||
//
|
||
|
||
//
|
||
// REQUIREMENT:
|
||
// <20>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD>̃u<CC83><75><EFBFBD>b<EFBFBD>N<EFBFBD>͂P<CD82>ŁANNSG3dResAnmSet<65><74><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD>B<EFBFBD>N<EFBFBD>V<EFBFBD><56><EFBFBD>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A
|
||
// NNSG3dResDictAnmSetData<74><61><EFBFBD>ʂ<EFBFBD><CA82><EFBFBD>NNSG3dResAnmHeader<65><72><EFBFBD>擪<EFBFBD>Ɏ<EFBFBD><C98E>e<C28A>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
// <20>\<5C><><EFBFBD>̂ɒB<C992><42><EFBFBD>邱<EFBFBD>Ƃ<EFBFBD><C682>ł<EFBFBD><C582>Ȃ<EFBFBD><C882>Ă͂Ȃ<CD82><C882>Ȃ<EFBFBD><C882>B
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResAnmHeader
|
||
|
||
<20>e<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<5C>[<5B>X<EFBFBD>̐擪<CC90>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>w<EFBFBD>b<EFBFBD>_<EFBFBD><5F><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResAnmHeader_
|
||
{
|
||
// 'M' for material animation
|
||
// 'J' for joint animation
|
||
// 'V' for visibility animation
|
||
u8 category0;
|
||
u8 revision;
|
||
// 'CA' for character(joint) animation
|
||
// 'VA' for visibility animation
|
||
// 'MA' for material color animation
|
||
// 'TP' for texture pattern animation
|
||
// 'TA' for texture SRT animation
|
||
u16 category1;
|
||
}
|
||
NNSG3dResAnmHeader;
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResAnmCommon
|
||
|
||
<20>S<EFBFBD>ẴA<CC83>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̓w<CD83>b<EFBFBD>_<EFBFBD><5F>numFrame<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>Ă͂Ȃ<CD82><C882>Ȃ<EFBFBD><C882>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct
|
||
{
|
||
NNSG3dResAnmHeader anmHeader;
|
||
u16 numFrame;
|
||
u16 dummy_;
|
||
}
|
||
NNSG3dResAnmCommon;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictAnmSetData
|
||
|
||
(u8*)&NNSG3dResAnmSet+offset<65>ŌX<C281>̃A<CC83>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>ɒB<C992><42><EFBFBD>邱<EFBFBD>Ƃ<EFBFBD><C682>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct
|
||
{
|
||
u32 offset; // <20>X<C281>̃A<CC83>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>ɒB<C992><42><EFBFBD>邽<EFBFBD>߂̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>i<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
}
|
||
NNSG3dResDictAnmSetData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResAnmSet
|
||
|
||
<20>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̏W<CC8F><57><EFBFBD>𑩂˂邽<CB82>߂̍\<5C><><EFBFBD>́B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct
|
||
{
|
||
NNSG3dResDataBlockHeader header;
|
||
NNSG3dResDict dict; // <20>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD>-><3E>eAnmSetData
|
||
}
|
||
NNSG3dResAnmSet;
|
||
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20>r<EFBFBD>W<EFBFBD>r<EFBFBD><72><EFBFBD>e<EFBFBD>B<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>
|
||
//
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResVisAnm
|
||
|
||
<20>r<EFBFBD>W<EFBFBD>r<EFBFBD><72><EFBFBD>e<EFBFBD>B<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><C295>̃f<CC83>[<5B>^<5E>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResVisAnm_
|
||
{
|
||
NNSG3dResAnmHeader anmHeader;
|
||
u16 numFrame;
|
||
u16 numNode;
|
||
u16 size;
|
||
u16 dummy_;
|
||
// variable length
|
||
u32 visData[1];
|
||
}
|
||
NNSG3dResVisAnm;
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictVisAnmSetData
|
||
|
||
<20>X<C281>̃r<CC83>W<EFBFBD>r<EFBFBD><72><EFBFBD>e<EFBFBD>B<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>(NNSG3dResVisAnm)<29>̃f<CC83>[<5B>^<5E>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>i<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
&NNSG3dResVisAnmSet<65><74><EFBFBD>N<EFBFBD>_<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef NNSG3dResDictAnmSetData NNSG3dResDictVisAnmSetData;
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResVisAnmSet
|
||
|
||
<20>r<EFBFBD>W<EFBFBD>r<EFBFBD><72><EFBFBD>e<EFBFBD>B<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃Z<CC83>b<EFBFBD>g<EFBFBD>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
<20><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD>NNSG3dResVisAnm<6E><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NNSG3dResDictVisAnmSetData<74>o<EFBFBD>R<EFBFBD><52>NNSG3dResVisAnm<6E><6D><EFBFBD>Q<EFBFBD>Ƃ<EFBFBD><C682>鎫<EFBFBD><E98EAB>
|
||
kind==NNS_G3D_SIGNATURE_NSBVA<56>łȂ<C582><C882>Ă͂Ȃ<CD82><C882>Ȃ<EFBFBD><C882>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef NNSG3dResAnmSet NNSG3dResVisAnmSet;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>J<EFBFBD><4A><EFBFBD>[<5B>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>
|
||
//
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dMatCElem
|
||
|
||
NNSG3dResDictMatCAnmData<74>̊e<CC8A>f<EFBFBD>[<5B>^<5E><><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD>̒l
|
||
NNS_G3D_MATCANM_ELEM_CONST<53><54><EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>A<CE81><41><EFBFBD><EFBFBD>16bit<69>͒萔<CD92>J<EFBFBD><4A><EFBFBD>[<5B>l<EFBFBD>A
|
||
<20>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD>A<CE81>J<EFBFBD><4A><EFBFBD>[<5B>f<EFBFBD>[<5B>^<5E><><EFBFBD>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>A<EFBFBD>ƂȂ<C682><C882>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_MATCANM_ELEM_CONST = 0x20000000, // <20>f<EFBFBD>[<5B>^<5E><><EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>ꍇ<EFBFBD><EA8D87>ON
|
||
NNS_G3D_MATCANM_ELEM_STEP_1 = 0x00000000, // <20>f<EFBFBD>[<5B>^<5E><><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_MATCANM_ELEM_STEP_2 = 0x40000000, // <20>f<EFBFBD>[<5B>^<5E><>2<EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_MATCANM_ELEM_STEP_4 = 0x80000000, // <20>f<EFBFBD>[<5B>^<5E><>4<EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
|
||
NNS_G3D_MATCANM_ELEM_STEP_MASK = 0xc0000000,
|
||
NNS_G3D_MATCANM_ELEM_LAST_INTERP_MASK = 0x1fff0000,
|
||
NNS_G3D_MATCANM_ELEM_OFFSET_CONSTANT_MASK = 0x0000ffff,
|
||
|
||
NNS_G3D_MATCANM_ELEM_OFFSET_CONSTANT_SHIFT = 0,
|
||
NNS_G3D_MATCANM_ELEM_LAST_INTERP_SHIFT = 16
|
||
}
|
||
NNSG3dMatCElem;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictMatCAnmData
|
||
|
||
<20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>J<EFBFBD><4A><EFBFBD>[<5B>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̊e<CC8A>v<EFBFBD>f<EFBFBD>ɂ<C982><C282>Ă̏<C482><CC8F><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictMatCAnmData_
|
||
{
|
||
// NNSG3dMatCElem:
|
||
// 31 30 29 28 16 15 0
|
||
// frmStp isConst iFrame_interp offset/constantCol
|
||
u32 diffuse;
|
||
u32 ambient;
|
||
u32 specular;
|
||
u32 emission;
|
||
u32 polygon_alpha;
|
||
}
|
||
NNSG3dResDictMatCAnmData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dMatCAnmOption
|
||
|
||
<20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>J<EFBFBD><4A><EFBFBD>[<5B>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃I<CC83>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD>(<28><><EFBFBD>ԃt<D483>@<40>C<EFBFBD><43><EFBFBD>Ŏw<C58E><77>)
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_MATCANM_OPTION_INTERPOLATION = 0x0001, // <mat_color_info>::interpolation<6F>ɑΉ<C991>
|
||
NNS_G3D_MATCANM_OPTION_END_TO_START_INTERPOLATION = 0x0002 // <mat_color_info>::interp_end_to_start<72>ɑΉ<C991>
|
||
}
|
||
NNSG3dMatCAnmOption;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResMatCAnm
|
||
|
||
<20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>J<EFBFBD><4A><EFBFBD>[<5B>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><C295>̃f<CC83>[<5B>^<5E>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResMatCAnm_
|
||
{
|
||
NNSG3dResAnmHeader anmHeader;
|
||
u16 numFrame;
|
||
u16 flag; // NNSG3dMatCAnmOption
|
||
NNSG3dResDict dict;
|
||
}
|
||
NNSG3dResMatCAnm;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictMatCAnmSetData
|
||
|
||
<20>X<C281>̃}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>J<EFBFBD><4A><EFBFBD>[<5B>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃f<CC83>[<5B>^<5E>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>i<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
&NNSG3dResMatCAnmSet<65><74><EFBFBD>N<EFBFBD>_<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef NNSG3dResDictAnmSetData NNSG3dResDictMatCAnmSetData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResMatCAnmSet
|
||
|
||
<20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD>J<EFBFBD><4A><EFBFBD>[<5B>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃Z<CC83>b<EFBFBD>g<EFBFBD>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
<20><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD>NNSG3dResMatCAnm<6E><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NNSG3dResDictMatCAnmSetData<74>o<EFBFBD>R<EFBFBD><52>NNSG3dResMatCAnm<6E><6D><EFBFBD>Q<EFBFBD>Ƃ<EFBFBD><C682>鎫<EFBFBD><E98EAB>
|
||
kind = NNS_G3D_DATABLK_MATC_ANM<4E>łȂ<C582><C882>Ă͂Ȃ<CD82><C882>Ȃ<EFBFBD><C882>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef NNSG3dResAnmSet NNSG3dResMatCAnmSet;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD>^<5E>[<5B><><EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>
|
||
//
|
||
//
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResTexPatAnmFV
|
||
|
||
<20>t<EFBFBD><74><EFBFBD>[<5B><>->(<28>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><>, <20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g)<29>f<EFBFBD>[<5B>^<5E>ł<EFBFBD><C582>B
|
||
<20><><EFBFBD>̃f<CC83>[<5B>^<5E>̕<EFBFBD><CC95>т<EFBFBD><D182>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD>^<5E><><EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD>܂<EFBFBD><DC82>B
|
||
idxFrame<6D><65><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD><EFBFBD>idTex<65><78>,<2C>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD><67>idPltt<74>ɐ<C990><D882>ւ<EFBFBD><D682><EFBFBD><EFBFBD>A
|
||
<20>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>Ӗ<EFBFBD><D396>ɂȂ<C982><C882>܂<EFBFBD><DC82>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResTexPatAnmFV_
|
||
{
|
||
u16 idxFrame;
|
||
u8 idTex;
|
||
u8 idPltt;
|
||
}
|
||
NNSG3dResTexPatAnmFV;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dTexPatAnmOption
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD>^<5E>[<5B><><EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃I<CC83>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_TEXPATANM_OPTION_NOPLTT = 0x0001 // <20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>̓A<CD83>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>ꍇ<EFBFBD><EA8D87>ON
|
||
}
|
||
NNSG3dTexPatAnmOption;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictTexPatAnmData
|
||
|
||
<20>e<EFBFBD>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>Ɏ<EFBFBD><C98E>e<C283>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD>^<5E>[<5B><><EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃f<CC83>[<5B>^<5E>ł<EFBFBD><C582>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictTexPatAnmData_
|
||
{
|
||
u16 numFV; // NNSG3dResTexPatAnmFV<46>̐<EFBFBD>
|
||
u16 flag; // NNSG3dTexPatAnmOption (<28><><EFBFBD>݂͎g<CD8E>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82><EFBFBD>)
|
||
fx16 ratioDataFrame; // numFV / numFrame<6D>ł<EFBFBD><C582>B<EFBFBD>f<EFBFBD>[<5B>^<5E>T<EFBFBD><54><EFBFBD>p<EFBFBD>̃q<CC83><71><EFBFBD>g<EFBFBD>ł<EFBFBD><C582>B
|
||
u16 offset; // &NNSG3dResTexPatAnm<6E><6D><EFBFBD>N<EFBFBD>_<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD>FV<46>f<EFBFBD>[<5B>^<5E>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
}
|
||
NNSG3dResDictTexPatAnmData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResTexPatAnm
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD>^<5E>[<5B><><EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><C295>̃f<CC83>[<5B>^<5E>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResTexPatAnm_
|
||
{
|
||
NNSG3dResAnmHeader anmHeader;
|
||
u16 numFrame;
|
||
u8 numTex; // <20>g<EFBFBD>p<EFBFBD>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>̐<EFBFBD>
|
||
u8 numPltt; // <20>g<EFBFBD>p<EFBFBD>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD>̐<EFBFBD>
|
||
u16 ofsTexName; // <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A><EFBFBD>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g(NNSG3dResName<6D><65>numTex<65><EFBFBD><C295><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD>)
|
||
u16 ofsPlttName; // <20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>z<EFBFBD><7A><EFBFBD>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g(NNSG3dResName<6D><65>numPltt<74><EFBFBD><C295><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD>)
|
||
NNSG3dResDict dict; // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NNSG3dResDictTexPatAnmData<74><61><EFBFBD>Ђ<EFBFBD><D082><EFBFBD><EFBFBD><EFBFBD>
|
||
// Frame-Value data
|
||
// <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD><7A>
|
||
// <20>p<EFBFBD><70><EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>z<EFBFBD><7A>
|
||
}
|
||
NNSG3dResTexPatAnm;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictTexPatAnmSetData
|
||
|
||
<20>X<C281>̃e<CC83>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD>^<5E>[<5B><><EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃f<CC83>[<5B>^<5E>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>i<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
&NNSG3dResTexPatAnmSet<65><74><EFBFBD>N<EFBFBD>_<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef NNSG3dResDictAnmSetData NNSG3dResDictTexPatAnmSetData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResTexPatAnmSet
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>p<EFBFBD>^<5E>[<5B><><EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃Z<CC83>b<EFBFBD>g<EFBFBD>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
<20><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD>NNSG3dResTexPatAnm<6E><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NNSG3dResDictTexPatAnmSetData<74>o<EFBFBD>R<EFBFBD><52>NNSG3dResTexPatAnm<6E><6D><EFBFBD>Q<EFBFBD>Ƃ<EFBFBD><C682>鎫<EFBFBD><E98EAB>
|
||
kind = NNS_G3D_DATABLK_TEXPAT_ANM<4E>łȂ<C582><C882>Ă͂Ȃ<CD82><C882>Ȃ<EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef NNSG3dResAnmSet NNSG3dResTexPatAnmSet;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><>SRT<52>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>
|
||
//
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dTexSRTElem
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><>SRT<52>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̊e<CC8A><65><EFBFBD>t<EFBFBD><74><EFBFBD>O<EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_TEXSRTANM_ELEM_FX16 = 0x10000000, // <20>f<EFBFBD>[<5B>^<5E><>fx16<31>̃x<CC83>N<EFBFBD>^<5E>Ŏ<EFBFBD><C58E>ꍇ<C28F><EA8D87>ON(rot<6F>̂Ƃ<CC82><C682>͏<EFBFBD><CD8F><EFBFBD>OFF)
|
||
NNS_G3D_TEXSRTANM_ELEM_CONST = 0x20000000, // <20>f<EFBFBD>[<5B>^<5E><><EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>ꍇ<EFBFBD><EA8D87>ON
|
||
NNS_G3D_TEXSRTANM_ELEM_STEP_1 = 0x00000000, // <20>f<EFBFBD>[<5B>^<5E><><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_TEXSRTANM_ELEM_STEP_2 = 0x40000000, // <20>f<EFBFBD>[<5B>^<5E><>2<EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_TEXSRTANM_ELEM_STEP_4 = 0x80000000, // <20>f<EFBFBD>[<5B>^<5E><>4<EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
|
||
NNS_G3D_TEXSRTANM_ELEM_STEP_MASK = 0xc0000000,
|
||
NNS_G3D_TEXSRTANM_ELEM_LAST_INTERP_MASK = 0x0000ffff,
|
||
|
||
NNS_G3D_TEXSRTANM_ELEM_LAST_INTERP_SHIFT = 0
|
||
}
|
||
NNSG3dTexSRTElem;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictTexSRTAnmData
|
||
|
||
<20>e<EFBFBD>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>̃e<CC83>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>r<EFBFBD>q<EFBFBD>s<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̏<EFBFBD><CC8F><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResDictTexSRTAnmData_
|
||
{
|
||
// word #0(NNSG3dTexSRTElem)
|
||
// 31 30 29 28 15 0
|
||
// frmStp isConst isFx16 iFrame_interp
|
||
// word #1
|
||
// 31 0
|
||
// offset/constantVal
|
||
u32 scaleS; // NNSG3dTexSRTElem
|
||
u32 scaleSEx; // NNS_G3D_TEXSRTANM_ELEM_CONST<53>̂Ƃ<CC82><C682>͒萔<CD92>l<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>ȊO<C88A>̏ꍇ<CC8F>̓f<CD83>[<5B>^<5E><><EFBFBD>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
|
||
u32 scaleT; // NNSG3dTexSRTElem
|
||
u32 scaleTEx; // NNS_G3D_TEXSRTANM_ELEM_CONST<53>̂Ƃ<CC82><C682>͒萔<CD92>l<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>ȊO<C88A>̏ꍇ<CC8F>̓f<CD83>[<5B>^<5E><><EFBFBD>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
|
||
u32 rot; // NNSG3dTexSRTElem
|
||
u32 rotEx; // NNS_G3D_TEXSRTANM_ELEM_CONST<53>̂Ƃ<CC82><C682>͒萔<CD92>l<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>ȊO<C88A>̏ꍇ<CC8F>̓f<CD83>[<5B>^<5E><><EFBFBD>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
//
|
||
// rot <20><> cos <20>l sin <20>l<EFBFBD><6C><EFBFBD>y<EFBFBD>A<EFBFBD>ƂȂ<C682><C882>Ċi<C48A>[<5B><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD>
|
||
// 31 15 0
|
||
// cos in fx16 sin in fx16
|
||
|
||
|
||
u32 transS; // NNSG3dTexSRTElem
|
||
u32 transSEx; // NNS_G3D_TEXSRTANM_ELEM_CONST<53>̂Ƃ<CC82><C682>͒萔<CD92>l<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>ȊO<C88A>̏ꍇ<CC8F>̓f<CD83>[<5B>^<5E><><EFBFBD>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
|
||
u32 transT; // NNSG3dTexSRTElem
|
||
u32 transTEx; // NNS_G3D_TEXSRTANM_ELEM_CONST<53>̂Ƃ<CC82><C682>͒萔<CD92>l<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD><EFBFBD>ȊO<C88A>̏ꍇ<CC8F>̓f<CD83>[<5B>^<5E><><EFBFBD>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g
|
||
}
|
||
NNSG3dResDictTexSRTAnmData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dTexSRTAnmOption
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><>SRT<52>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃I<CC83>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD>(<28><><EFBFBD>ԃt<D483>@<40>C<EFBFBD><43><EFBFBD>Ŏw<C58E><77>)
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum NNSG3dTexSRTAnmOption_
|
||
{
|
||
NNS_G3D_TEXSRTANM_OPTION_INTERPOLATION = 0x01, // <tex_srt_info>::interpolation<6F>ɑΉ<C991>
|
||
NNS_G3D_TEXSRTANM_OPTION_END_TO_START_INTERPOLATION = 0x02 // <tex_srt_info>::interp_end_to_start<72>ɑΉ<C991>
|
||
}
|
||
NNSG3dTexSRTAnmOption;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResTexSRTAnm
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><>SRT<52>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><C295>̃f<CC83>[<5B>^<5E>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResTexSRTAnm_
|
||
{
|
||
NNSG3dResAnmHeader anmHeader;
|
||
u16 numFrame;
|
||
u8 flag; // NNSG3dTexSRTAnmOption
|
||
u8 texMtxMode; // NNSG3dTexMtxMode
|
||
NNSG3dResDict dict; // <20>}<7D>e<EFBFBD><65><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD>->NNSG3dResDictTexSRTAnmData<74>̎<EFBFBD><CC8E><EFBFBD>
|
||
}
|
||
NNSG3dResTexSRTAnm;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictTexSRTAnmSetData
|
||
|
||
<20>X<C281>̃e<CC83>N<EFBFBD>X<EFBFBD>`<60><><EFBFBD>r<EFBFBD>q<EFBFBD>s<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃f<CC83>[<5B>^<5E>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>i<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
&NNSG3dResTexSRTAnmSet<65><74><EFBFBD>N<EFBFBD>_<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef NNSG3dResDictAnmSetData NNSG3dResDictTexSRTAnmSetData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResTexSRTAnmSet
|
||
|
||
<20>e<EFBFBD>N<EFBFBD>X<EFBFBD>`<60><>SRT<52>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃Z<CC83>b<EFBFBD>g<EFBFBD>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
<20><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD>NNSG3dResTexSRTAnm<6E><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NNSG3dResDictTexSRTAnmSetData<74>o<EFBFBD>R<EFBFBD><52>NNSG3dResTexSRTAnm<6E><6D><EFBFBD>Q<EFBFBD>Ƃ<EFBFBD><C682>鎫<EFBFBD><E98EAB>
|
||
kind == NNS_G3D_SIGNATURE_NSBTA<54>łȂ<C582><C882>Ă͂Ȃ<CD82><C882>Ȃ<EFBFBD><C882>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef NNSG3dResAnmSet NNSG3dResTexSRTAnmSet;
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////////
|
||
//
|
||
//
|
||
// <20>W<EFBFBD><57><EFBFBD>C<EFBFBD><43><EFBFBD>g<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>
|
||
//
|
||
//
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResJntAnmSRT<52>Ƃ<EFBFBD><C682>̒<EFBFBD><CC92>Ԃ<EFBFBD><D482><EFBFBD>
|
||
|
||
<20>W<EFBFBD><57><EFBFBD>C<EFBFBD><43><EFBFBD>g<EFBFBD>P<EFBFBD><EFBFBD>SRT<52>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>q<EFBFBD><71><EFBFBD><EFBFBD>
|
||
info<66>̂ǂ̃r<CC83>b<EFBFBD>g<EFBFBD><67>ON<4F><4E><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ă<EFBFBD><C482>̌<EFBFBD><CC8C>̃<EFBFBD><CC83><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>A<EFBFBD>E<EFBFBD>g<EFBFBD><67><EFBFBD><EFBFBD><EFBFBD>肷<EFBFBD><E882B7><EFBFBD>B
|
||
<20>㑱<EFBFBD>f<EFBFBD>[<5B>^<5E><>TRS<52>̏<EFBFBD><CC8F>Ԃɕ<D482><C995><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
|
||
NNS_G3D_JNTANM_SRTINFO_IDENTITY
|
||
--> <20>ȍ~<7E>̃f<CC83>[<5B>^<5E>͑<EFBFBD><CD91>݂<EFBFBD><DD82>Ȃ<EFBFBD><C882>B
|
||
NNS_G3D_JNTANM_SRTINFO_IDENTITY_T -- Trans = (0, 0, 0)
|
||
NNS_G3D_JNTANM_SRTINFO_BASE_T -- <20><><EFBFBD>f<EFBFBD><66><EFBFBD><EFBFBD>Trans<6E><73><EFBFBD>Q<EFBFBD><51>
|
||
--> Translation<6F>̃f<CC83>[<5B>^<5E>͑<EFBFBD><CD91>݂<EFBFBD><DD82>Ȃ<EFBFBD><C882>B
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_TX -- Trans<6E><73>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>const
|
||
--> 1wd<77><64><EFBFBD><EFBFBD>Tx<54>f<EFBFBD>[<5B>^<5E><><EFBFBD>擾 / otherwise NNSG3dJntAnmTInfo(2wd)
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_TY -- Trans<6E><73>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>const
|
||
--> 1wd<77><64><EFBFBD><EFBFBD>Ty<54>f<EFBFBD>[<5B>^<5E><><EFBFBD>擾 / otherwise NNSG3dJntAnmTInfo(2wd)
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_TZ -- Trans<6E><73>Z<EFBFBD><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>const
|
||
--> 1wd<77><64><EFBFBD><EFBFBD>Tz<54>f<EFBFBD>[<5B>^<5E><><EFBFBD>擾 / otherwise NNSG3dJntAnmTInfo(2wd)
|
||
NNS_G3D_JNTANM_SRTINFO_IDENTITY_R -- Rot = I
|
||
NNS_G3D_JNTANM_SRTINFO_BASE_R -- <20><><EFBFBD>f<EFBFBD><66><EFBFBD><EFBFBD>Rot<6F><74><EFBFBD>Q<EFBFBD><51>
|
||
--> Rotation<6F>̃f<CC83>[<5B>^<5E>͑<EFBFBD><CD91>݂<EFBFBD><DD82>Ȃ<EFBFBD>
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_R -- Rot<6F><74>const
|
||
--> 1wd<77><64><EFBFBD><EFBFBD>RIdx<64>ւ̃C<CC83><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X<EFBFBD>f<EFBFBD>[<5B>^ / otherwise NNSG3dJntAnmRInfo(2wd)
|
||
NNS_G3D_JNTANM_SRTINFO_IDENTITY_S -- Scale = (1, 1, 1)
|
||
NNS_G3D_JNTANM_SRTINFO_BASE_S -- <20><><EFBFBD>f<EFBFBD><66><EFBFBD><EFBFBD>Scale<6C><65><EFBFBD>Q<EFBFBD><51>
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_SX -- Scale<6C><65>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>const
|
||
--> 2wd<77><64><EFBFBD><EFBFBD>Sx,InvSx<53>f<EFBFBD>[<5B>^<5E><><EFBFBD>擾 / otherwise NNSG3dJntAnmSInfo(2wd)
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_SY -- Scale<6C><65>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>const
|
||
--> 2wd<77><64><EFBFBD><EFBFBD>Sy,InvSy<53>f<EFBFBD>[<5B>^<5E><><EFBFBD>擾 / otherwise NNSG3dJntAnmSInfo(2wd)
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_SZ -- Scale<6C><65>Z<EFBFBD><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>const
|
||
--> 2wd<77><64><EFBFBD><EFBFBD>Sz,InvSz<53>f<EFBFBD>[<5B>^<5E><><EFBFBD>擾 / otherwise NNSG3dJntAnmSInfo(2wd)
|
||
|
||
<20>ȉ<EFBFBD><C889>ł̓I<CD83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>́ASRT<52>f<EFBFBD>[<5B>^<5E>̈悩<CC88><E682A9><EFBFBD>̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>ƂȂ<C682><C882>B
|
||
NNSG3dJntAnmTInfo
|
||
NNS_G3D_JNTANM_TINFO_FX16ARRAY<41>Ȃ<EFBFBD><C882>A
|
||
<20>I<EFBFBD>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>ŎQ<C58E>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>̂<EFBFBD>fx16<31>^<5E>̔z<CC94><7A><EFBFBD>ł<EFBFBD><C582><EFBFBD>
|
||
|
||
NNSG3dJntAnmRInfo
|
||
<20>I<EFBFBD>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD>ŎQ<C58E>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>̂<EFBFBD>RotIdx<64>z<EFBFBD><7A><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
RotIdx<64><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD>[<5B>^<5E>ɃA<C983>N<EFBFBD>Z<EFBFBD>X<EFBFBD><58><EFBFBD>邱<EFBFBD>ƂɂȂ<C982><C882>B
|
||
|
||
NNSG3dJntAnmSInfo
|
||
|
||
RotIdx<64>z<EFBFBD><7A>
|
||
16bit<69>̒l<CC92>̕<EFBFBD><CC95>тŁA0x8000<30><30>ON<4F>Ȃ<EFBFBD><C882><EFBFBD>Rot3<74>z<EFBFBD><7A>(<28><><EFBFBD>k3x3<78>s<EFBFBD><73>)<29>ւ̃C<CC83><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X
|
||
OFF<46>Ȃ<EFBFBD><C882><EFBFBD>Rot9<74>z<EFBFBD><7A><EFBFBD>ւ̃C<CC83><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X
|
||
*---------------------------------------------------------------------------*/
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dJntAnmSRTTag
|
||
|
||
SRT<52>f<EFBFBD>[<5B>^<5E>̐<EFBFBD><CC90><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L<EFBFBD>q<EFBFBD><71><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_JNTANM_SRTINFO_IDENTITY = 0x00000001, // SRT<52>ɉ<EFBFBD><C989><EFBFBD><EFBFBD>ύX<CF8D><58><EFBFBD>Ȃ<EFBFBD><C882>Ƃ<EFBFBD>ON
|
||
NNS_G3D_JNTANM_SRTINFO_IDENTITY_T = 0x00000002, // Trans<6E><73>(0,0,0)<29>̂܂܂̂Ƃ<CC82>ON
|
||
NNS_G3D_JNTANM_SRTINFO_BASE_T = 0x00000004, // Trans<6E>Ƀ<EFBFBD><C983>f<EFBFBD><66><EFBFBD>̒l<CC92><6C><EFBFBD>g<EFBFBD><67><EFBFBD>Ƃ<EFBFBD>ON
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_TX = 0x00000008, // Tx<54><78><EFBFBD>萔<EFBFBD>̏ꍇON
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_TY = 0x00000010, // Ty<54><79><EFBFBD>萔<EFBFBD>̏ꍇON
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_TZ = 0x00000020, // Tz<54><7A><EFBFBD>萔<EFBFBD>̏ꍇON
|
||
NNS_G3D_JNTANM_SRTINFO_IDENTITY_R = 0x00000040, // Rot<6F><74><EFBFBD>Ȃ<EFBFBD><C882>ꍇON
|
||
NNS_G3D_JNTANM_SRTINFO_BASE_R = 0x00000080, // Rot<6F>Ƀ<EFBFBD><C983>f<EFBFBD><66><EFBFBD>̒l<CC92><6C><EFBFBD>g<EFBFBD><67><EFBFBD>Ƃ<EFBFBD>ON
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_R = 0x00000100, // Rot<6F><74><EFBFBD>萔<EFBFBD>̏ꍇON
|
||
NNS_G3D_JNTANM_SRTINFO_IDENTITY_S = 0x00000200, // Scale<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><C882>ꍇON
|
||
NNS_G3D_JNTANM_SRTINFO_BASE_S = 0x00000400, // Scale<6C>Ƀ<EFBFBD><C983>f<EFBFBD><66><EFBFBD>̒l<CC92><6C><EFBFBD>g<EFBFBD><67><EFBFBD>ꍇON
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_SX = 0x00000800, // Sx<53><78><EFBFBD>萔<EFBFBD>̏ꍇON
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_SY = 0x00001000, // Sy<53><79><EFBFBD>萔<EFBFBD>̏ꍇON
|
||
NNS_G3D_JNTANM_SRTINFO_CONST_SZ = 0x00002000, // Sz<53><7A><EFBFBD>萔<EFBFBD>̏ꍇON
|
||
|
||
NNS_G3D_JNTANM_SRTINFO_NODE_MASK = 0xff000000, // <20>m<EFBFBD>[<5B>hID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD>S<EFBFBD>Ẵm<CC83>[<5B>h<EFBFBD>Œ<EFBFBD><C592>`<60><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>Ȃ<EFBFBD><C882>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD><EFBFBD>悤<EFBFBD>ɂ<EFBFBD><C982>Ă<EFBFBD><C482><EFBFBD>
|
||
NNS_G3D_JNTANM_SRTINFO_NODE_SHIFT = 24
|
||
}
|
||
NNSG3dJntAnmSRTTag;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dJntAnmTInfo
|
||
|
||
Trans<6E>f<EFBFBD>[<5B>^<5E>ɂ<C982><C282>Ă̏<C482><CC8F><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_JNTANM_TINFO_STEP_1 = 0x00000000, // <20>f<EFBFBD>[<5B>^<5E><><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_JNTANM_TINFO_STEP_2 = 0x40000000, // <20>f<EFBFBD>[<5B>^<5E><>2<EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_JNTANM_TINFO_STEP_4 = 0x80000000, // <20>f<EFBFBD>[<5B>^<5E><>4<EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_JNTANM_TINFO_FX16ARRAY = 0x20000000, // <20>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>f<EFBFBD>[<5B>^<5E><>fx16<31>̔z<CC94><7A><EFBFBD>̏ꍇON
|
||
|
||
NNS_G3D_JNTANM_TINFO_LAST_INTERP_MASK = 0x1fff0000,
|
||
NNS_G3D_JNTANM_TINFO_STEP_MASK = 0xc0000000,
|
||
|
||
NNS_G3D_JNTANM_TINFO_LAST_INTERP_SHIFT = 16,
|
||
NNS_G3D_JNTANM_TINFO_STEP_SHIFT = 30
|
||
}
|
||
NNSG3dJntAnmTInfo;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dJntAnmRInfo
|
||
|
||
<20><><EFBFBD>]<5D>f<EFBFBD>[<5B>^<5E>ɂ<C982><C282>Ă̏<C482><CC8F><EFBFBD>
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_JNTANM_RINFO_STEP_1 = 0x00000000, // <20>f<EFBFBD>[<5B>^<5E><><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_JNTANM_RINFO_STEP_2 = 0x40000000, // <20>f<EFBFBD>[<5B>^<5E><>2<EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_JNTANM_RINFO_STEP_4 = 0x80000000, // <20>f<EFBFBD>[<5B>^<5E><>4<EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
|
||
NNS_G3D_JNTANM_RINFO_LAST_INTERP_MASK = 0x1fff0000,
|
||
NNS_G3D_JNTANM_RINFO_STEP_MASK = 0xc0000000,
|
||
|
||
NNS_G3D_JNTANM_RINFO_LAST_INTERP_SHIFT = 16,
|
||
NNS_G3D_JNTANM_RINFO_STEP_SHIFT = 30
|
||
}
|
||
NNSG3dJntAnmRInfo;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dJntAnmPivotInfo
|
||
|
||
<20><><EFBFBD>k<EFBFBD><6B><EFBFBD>ꂽ<EFBFBD><EA82BD><EFBFBD>]<5D>s<EFBFBD><73><EFBFBD>ɂ<C982><C282>Ă̏<C482><CC8F><EFBFBD>
|
||
+1/-1<>ɂȂ<C982><C882>Ă<EFBFBD><C482><EFBFBD><EFBFBD>v<EFBFBD>f<EFBFBD>̍s<CC8D>E<EFBFBD><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>菜<EFBFBD><E88F9C><EFBFBD>ƁA2x2<78>s<EFBFBD><73><EFBFBD>ɂȂ<C982><C882>āA<C481><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
A B
|
||
C D
|
||
<20>̂悤<CC82>ɖ<EFBFBD><C996>Â<EFBFBD><C382><EFBFBD><EFBFBD>BC=+B/-B D=+A/-A<>ƂȂ<C682><C882>̂ŁA
|
||
NNS_G3D_JNTANM_PIVOTINFO_SIGN_REVC
|
||
NNS_G3D_JNTANM_PIVOTINFO_SIGN_REVD
|
||
<20>ɕ<EFBFBD><C995><EFBFBD><EFBFBD>̏<EFBFBD><CC8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_JNTANM_PIVOTINFO_IDXPIVOT_MASK = 0x000f, // +1/-1<>ɂȂ<C982><C882>Ă<EFBFBD><C482><EFBFBD><EFBFBD>v<EFBFBD>f<EFBFBD>̏ꏊ
|
||
NNS_G3D_JNTANM_PIVOTINFO_MINUS = 0x0010, // ON<4F>Ȃ<EFBFBD>-1/ OFF<46>Ȃ<EFBFBD>+1
|
||
NNS_G3D_JNTANM_PIVOTINFO_SIGN_REVC = 0x0020, // C=-B<>Ȃ<EFBFBD>ON
|
||
NNS_G3D_JNTANM_PIVOTINFO_SIGN_REVD = 0x0040, // D=-A<>Ȃ<EFBFBD>ON
|
||
|
||
NNS_G3D_JNTANM_PIVOT_INFO_IDXPIVOT_SHIFT = 0
|
||
}
|
||
NNSG3dJntAnmPivotInfo;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dJntAnmRIdx
|
||
|
||
<20><><EFBFBD>]<5D>s<EFBFBD><73><EFBFBD>f<EFBFBD>[<5B>^<5E>ւ̃C<CC83><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X
|
||
NNS_G3D_JNTANM_RIDX_PIVOT<4F><54>ON<4F>̂Ƃ<CC82><C682>́Apivot<6F><74><EFBFBD>k<EFBFBD>s<EFBFBD><73><EFBFBD>ւ̃C<CC83><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X
|
||
OFF<46>̏ꍇ<CC8F>́A<CD81>ʏ<EFBFBD><CA8F>̉<EFBFBD><CC89>]<5D>s<EFBFBD><73><EFBFBD>f<EFBFBD>[<5B>^<5E>ւ̃C<CC83><43><EFBFBD>f<EFBFBD>b<EFBFBD>N<EFBFBD>X<EFBFBD>ƂȂ<C682><C882>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_JNTANM_RIDX_PIVOT = 0x8000,
|
||
NNS_G3D_JNTANM_RIDX_IDXDATA_MASK = 0x7fff,
|
||
NNS_G3D_JNTANM_RIDX_IDXDATA_SHIFT = 0
|
||
}
|
||
NNSG3dJntAnmRIdx;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dJntAnmSInfo
|
||
|
||
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_JNTANM_SINFO_STEP_1 = 0x00000000, // <20>f<EFBFBD>[<5B>^<5E><><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_JNTANM_SINFO_STEP_2 = 0x40000000, // <20>f<EFBFBD>[<5B>^<5E><>2<EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_JNTANM_SINFO_STEP_4 = 0x80000000, // <20>f<EFBFBD>[<5B>^<5E><>4<EFBFBD>t<EFBFBD><74><EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Ƃ<EFBFBD>
|
||
NNS_G3D_JNTANM_SINFO_FX16ARRAY = 0x20000000, // <20>f<EFBFBD>[<5B>^<5E>l<EFBFBD><6C>fx16<31>^<5E>̂Ƃ<CC82>
|
||
|
||
NNS_G3D_JNTANM_SINFO_LAST_INTERP_MASK = 0x1fff0000,
|
||
NNS_G3D_JNTANM_SINFO_STEP_MASK = 0xc0000000,
|
||
|
||
NNS_G3D_JNTANM_SINFO_LAST_INTERP_SHIFT = 16,
|
||
NNS_G3D_JNTANM_SINFO_STEP_SHIFT = 30
|
||
}
|
||
NNSG3dJntAnmSInfo;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResJntAnmSRTInfo
|
||
|
||
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResJntAnmSRTInfo_
|
||
{
|
||
u32 info; // NNSG3dJntAnmTInfo <20><> NNSG3dJntAnmRInfo <20><> NNSG3dJntAnmSInfo
|
||
u32 offset;
|
||
}
|
||
NNSG3dResJntAnmSRTInfo;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResJntAnmSRTTag
|
||
|
||
|
||
*---------------------------------------------------------------------------*/
|
||
typedef struct NNSG3dResJntAnmSRTTag_
|
||
{
|
||
u32 tag; // NNSG3dJntAnmSRTTag;
|
||
}
|
||
NNSG3dResJntAnmSRTTag;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dJntAnmOption
|
||
|
||
<20>W<EFBFBD><57><EFBFBD>C<EFBFBD><43><EFBFBD>g<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃I<CC83>v<EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD>(<28><><EFBFBD>ԃt<D483>@<40>C<EFBFBD><43><EFBFBD>Ŏw<C58E><77>)
|
||
*---------------------------------------------------------------------------*/
|
||
typedef enum
|
||
{
|
||
NNS_G3D_JNTANM_OPTION_INTERPOLATION = 0x01, // <node_anm_info>::interpolation
|
||
NNS_G3D_JNTANM_OPTION_END_TO_START_INTERPOLATION = 0x02 // <node_anm_info>::interp_end_to_start
|
||
}
|
||
NNSG3dJntAnmOption;
|
||
|
||
|
||
typedef struct NNSG3dResJntAnm_
|
||
{
|
||
NNSG3dResAnmHeader anmHeader;
|
||
u16 numFrame;
|
||
u16 numNode;
|
||
u32 flag;
|
||
u32 ofsRot3;
|
||
u32 ofsRot5;
|
||
// u16[numNode] ofsTag
|
||
// vector of NNSG3dResJntAnmSRTTag
|
||
}
|
||
NNSG3dResJntAnm;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResDictJntAnmSetData
|
||
|
||
<20>X<C281>̃W<CC83><57><EFBFBD>C<EFBFBD><43><EFBFBD>g<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD>(NNSG3dResJntAnm)<29>̃f<CC83>[<5B>^<5E>ւ̃I<CC83>t<EFBFBD>Z<EFBFBD>b<EFBFBD>g<EFBFBD><67><EFBFBD>i<EFBFBD>[<5B><><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>B
|
||
&NNSG3dResJntAnmSet<65><74><EFBFBD>N<EFBFBD>_<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef NNSG3dResDictAnmSetData NNSG3dResDictJntAnmSetData;
|
||
|
||
|
||
/*---------------------------------------------------------------------------*
|
||
NNSG3dResJntAnmSet
|
||
|
||
<20>W<EFBFBD><57><EFBFBD>C<EFBFBD><43><EFBFBD>g<EFBFBD>A<EFBFBD>j<EFBFBD><6A><EFBFBD>[<5B>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD>̃Z<CC83>b<EFBFBD>g<EFBFBD>𑩂˂<F091A982><CB82>\<5C><><EFBFBD><EFBFBD>
|
||
<20><><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD>NNSG3dResJntAnm<6E><6D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NNSG3dResDictJntAnmSetData<74>o<EFBFBD>R<EFBFBD><52>NNSG3dResJntAnm<6E><6D><EFBFBD>Q<EFBFBD>Ƃ<EFBFBD><C682>鎫<EFBFBD><E98EAB>
|
||
kind==NNS_G3D_SIGNATURE_NSBCA<43>łȂ<C582><C882>Ă͂Ȃ<CD82><C882>Ȃ<EFBFBD><C882>B
|
||
*---------------------------------------------------------------------------*/
|
||
typedef NNSG3dResAnmSet NNSG3dResJntAnmSet;
|
||
|
||
|
||
#ifdef __cplusplus
|
||
}/* extern "C" */
|
||
#endif
|
||
|
||
#endif // NNSG3D_BINRES_RES_STRUCT_H_
|