Example #1
0
    /**
     * パーツのαを連動する。
     * @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);
            }
        }
    }
Example #2
0
    /**
     *
     * @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);
    }
Example #3
0
    /**
     * 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);
    }