/// <summary> /// ポジション、ロケーション初期設定 /// </summary> private void SetPositionAndLocation() { //位置を設定 if (this.AllocationId == 1) { //右に配置 Position = MST_CARACTER_POSITION.Right; } else if (this.AllocationId == 2) { //真ん中に配置 Position = MST_CARACTER_POSITION.Center; } else if (this.AllocationId == 3) { //左に配置 Position = MST_CARACTER_POSITION.Left; } else { //司会位置に設定 Position = MST_CARACTER_POSITION.Moderator; } //デフォルトY座標設定 //this.LocationY = -2.05F; this.LocationY = -90; //モデルロケーションの設定 this.ModelLocation = MODEL_POS.GetPosLive2d20(this.Position, this.LocationY); }
/// <summary> /// 方向モデルを取得する /// </summary> /// <returns></returns> public IfsLiplisModel GetDirectionModel(MST_CARACTER_POSITION Position) { //候補リスト List <IfsLiplisModel> CandidateModelList = new List <IfsLiplisModel>(); //設定されたポジションから変更可能な方向を判断する。 if (Position == MST_CARACTER_POSITION.Moderator) { //最右端 左向き禁止 //変更候補検索 foreach (var model in ModelList) { //左向き以外を候補リストに追加 if (model.Direction != (int)MODELE_DIRECTION.LEFT) { CandidateModelList.Add(model); } } } else if (Position == MST_CARACTER_POSITION.Left) { //最左端 右向き禁止 //変更候補検索 foreach (var model in ModelList) { //左向き以外を候補リストに追加 if (model.Direction != (int)MODELE_DIRECTION.RIGNT) { CandidateModelList.Add(model); } } } else { //それ以外はモデルリストすべて対象 CandidateModelList.AddRange(ModelList); } //候補リストをシャッフルする CandidateModelList.Shuffle(); //常に0番目を返す return(CandidateModelList[0]); }
/// <summary> /// 位置取得 /// </summary> /// <param name="position"></param> /// <param name="charLocationY"></param> /// <returns></returns> public static Vector3 GetPosDefault(MST_CARACTER_POSITION position) { //指定された位置から、配置すべき位置を示すベクターを返す if (position == MST_CARACTER_POSITION.Right) { //右配置 return(new Vector3(LOCATION_X_RIGHT, LOCATION_Y, LOCATION_Z)); } else if (position == MST_CARACTER_POSITION.Center) { //真ん中配置 return(new Vector3(LOCATION_X_CENTER, LOCATION_Y, LOCATION_Z)); } else if (position == MST_CARACTER_POSITION.Left) { //左配置 return(new Vector3(LOCATION_X_LEFT, LOCATION_Y, LOCATION_Z)); } else { //司会配置 return(new Vector3(LOCATION_X_MODERATOR, LOCATION_Y, LOCATION_Z)); } }
public static Vector3 GetPosLive2d30(MST_CARACTER_POSITION position, float charLocationY) { //指定された位置から、配置すべき位置を示すベクターを返す if (position == MST_CARACTER_POSITION.Right) { //右配置 return(new Vector3(-0.9f, charLocationY, 100F)); } else if (position == MST_CARACTER_POSITION.Center) { //真ん中配置 return(new Vector3(-3.8F, charLocationY, 100F)); } else if (position == MST_CARACTER_POSITION.Left) { //左配置 return(new Vector3(-6.7F, charLocationY, 100F)); } else { //司会配置 return(new Vector3(6.6F, charLocationY, 100F)); } }