/** * パーツのαを連動する。 * @param model * @param partsGroup */ public void copyOpacityOtherParts(ALive2DModel model, L2DPartsParam[] partsGroup) { for (int i_group = 0; i_group < partsGroup.Length; i_group++) { L2DPartsParam partsParam = partsGroup[i_group]; if (partsParam.link == null) { continue; //リンクするパラメータはない } if (partsParam.partsIndex < 0) { continue; //存在しないパーツ } float opacity = model.getPartsOpacity(partsParam.partsIndex); for (int i_link = 0; i_link < partsParam.link.Count; i_link++) { L2DPartsParam linkParts = partsParam.link[i_link]; if (linkParts.partsIndex < 0) { // linkParts.initIndex(model); } if (linkParts.partsIndex < 0) { continue; // } model.setPartsOpacity(linkParts.partsIndex, opacity); } } }
/** * * @param idGroup */ public void addPartsGroup(string[] idGroup) { L2DPartsParam[] partsGroup = new L2DPartsParam[idGroup.Length]; for (int i = 0; i < idGroup.Length; i++) { partsGroup[i] = new L2DPartsParam(idGroup[i]); } partsGroupList.Add(partsGroup); }
/** * JSONファイルから読み込む * 仕様についてはマニュアル参照。JSONスキーマの形式の仕様がある。 * @param buf * @return */ public static L2DPose load(char[] buf) { L2DPose ret = new L2DPose(); Value json = Json.parseFromBytes(buf); //パーツ切り替え一覧 List <Value> poseListInfo = json.get("parts_visible").getVector(null); int poseNum = poseListInfo.Count; for (int i_pose = 0; i_pose < poseNum; i_pose++) { Value poseInfo = poseListInfo[i_pose]; //IDリストの設定 List <Value> idListInfo = poseInfo.get("group").getVector(null); int idNum = idListInfo.Count; L2DPartsParam[] partsGroup = new L2DPartsParam[idNum]; for (int i_group = 0; i_group < idNum; i_group++) { Value partsInfo = idListInfo[i_group]; L2DPartsParam parts = new L2DPartsParam(partsInfo.get("id").toString()); partsGroup[i_group] = parts; //リンクするパーツの設定 if (!partsInfo.getMap(null).ContainsKey("link")) { continue; //リンクが無いときもある } List <Value> linkListInfo = partsInfo.get("link").getVector(null); int linkNum = linkListInfo.Count; parts.link = new List <L2DPartsParam>(); for (int i_link = 0; i_link < linkNum; i_link++) { // string linkID = idListInfo.get(i_group).tostring();//parts ID L2DPartsParam linkParts = new L2DPartsParam(linkListInfo[i_link].toString()); parts.link.Add(linkParts); } } ret.addPartsGroup(partsGroup); } return(ret); }