void SerializeStruct(FSsPart& Value, SsXmlIArchiver* ar) { SSAR_DECLARE("name", Value.PartName); SSAR_DECLARE("arrayIndex", Value.ArrayIndex); SSAR_DECLARE("parentIndex", Value.ParentIndex); SSAR_DECLARE_ENUM("type", Value.Type); SSAR_DECLARE_ENUM("boundsType", Value.BoundsType); SSAR_DECLARE_ENUM("inheritType", Value.InheritType); SSAR_DECLARE_ENUM("alphaBlendType", Value.AlphaBlendType); SSAR_DECLARE("show", Value.Show); SSAR_DECLARE("locked", Value.Locked); SSAR_DECLARE("refAnimePack", Value.RefAnimePack); SSAR_DECLARE("refAnime", Value.RefAnime); //継承率後に改良を実施 if (ar->getType() == EnumSsArchiver::in) { XMLElement* e = ar->getxml()->FirstChildElement("ineheritRates"); if (e) { XMLElement* ec = e->FirstChildElement(); while(ec) { const char* tag = ec->Value(); TEnumAsByte<SsAttributeKind::Type> enumattr; __StringToEnum_( tag , enumattr ); Value.InheritRates[(int)enumattr] = (float)atof(ec->GetText()); ec = ec->NextSiblingElement(); } } } }
//頂点カラーアニメデータの取得 void GetSsColorValue( const SsKeyframe* key , SsColorAnime& v ) { SsColorBlendTarget::_enum target; __StringToEnum_( key->value["target"].get<SsString>() , target ); SsBlendType::_enum blendtype; __StringToEnum_( key->value["blendType"].get<SsString>() , blendtype); v.blendType = blendtype; v.target = target; if ( target == SsColorBlendTarget::vertex ) { SsHash lt = key->value["LT"].get<SsHash>(); SsHash rt = key->value["RT"].get<SsHash>(); SsHash lb = key->value["LB"].get<SsHash>(); SsHash rb = key->value["RB"].get<SsHash>(); ConvertStringToSsColor( lt["rgba"].get<SsString>() , v.colors[0].rgba); v.colors[0].rate = lt["rate"].get<float>(); ConvertStringToSsColor( rt["rgba"].get<SsString>() , v.colors[2].rgba); v.colors[1].rate = rt["rate"].get<float>(); ConvertStringToSsColor( lb["rgba"].get<SsString>() , v.colors[2].rgba); v.colors[2].rate = lb["rate"].get<float>(); ConvertStringToSsColor( rb["rgba"].get<SsString>() , v.colors[3].rgba); v.colors[3].rate = rb["rate"].get<float>(); }else{ SsHash color = key->value["color"].get<SsHash>(); ConvertStringToSsColor( color["rgba"].get<SsString>() , v.color.rgba); v.color.rate = color["rate"].get<float>(); } }