見出し画像

ダンスゲーを作りたい#9 ボタン連動で上下別モーション再生

前回上下運動が出来ましたので、今回は足と腕のモーションを再生するボタンをつけたいと思います。

腕モーショと足モーション、それぞれ用にボタンが欲しいので、端っこにボタンを配置していきます。

画像1

腕モーション用のボタン4こ、足モーション用のボタン4こで計8こですね。

スクリプト

ボタンを押すと、インプットマネージャにいったん飛んで、この入力に応じてAnimatorControllerのステイトを遷移します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Input_manager : MonoBehaviour{
  
   public FixedJoystick joy; //JoyStickコンポーネント
   public Motion_manager Motion; 
   
   void Start(){
       joy=GameObject.Find("Fixed Joystick").GetComponent<FixedJoystick>();
       Motion=GetComponent<Motion_manager>();
   }
   //ボタンのOnclickに指定
   public void BTpush(int btNo){
       Motion.startAnimation(btNo);
   }
   public float joyY;
   public float joyX;
   void Update(){
       //値の受け取り
       joyX = joy.Horizontal; 
       joyY = joy.Vertical; 
   }
}
using UnityEngine;
public class Motion_manager : MonoBehaviour
{
   Animator animator;
   //実際はどっかから呼び出す
   string[] stateList=new string[] {"run_leg","walk_leg","kick_leg","jump_leg","run_arm","walk_arm","kick_arm","jump_arm"};
   // Start is called before the first frame update
   void Start()
   {
       animator=GameObject.Find("GameManager").GetComponent<Model_manager>().Model.GetComponent<Animator>();
   }
   public void startAnimation(int btNo){
       Debug.Log(btNo);
       animator.SetTrigger(stateList[btNo]);
   }
   
   // Update is called once per frame
   void Update()
   {
       
   }
}

後々の事を考えて、どのボタンでどのstateに遷移するかの配列を用意し、それを参照する形にしています。

動作

マウスじゃ同時には操作出来ないんですが、
実機ではボタンを押すと腕は走って、足はけってます。
上下運動も同時にできてます。

画像2

操作性に難アリ

なんと言いましょうか、

指が忙しいなって。

実際は基本組み合わせて使うことを考えると、
4-4で16通り 3-3で9通りですから
やっぱ4は欲しいところですが、

やっぱり押すの大変すぎるし頭が追いつきません。

これは難しい問題に出会ってしまった感が否めないですね。

根本から変えねばならないかもしれません。

本来はブレイクダンスを想定していたんですが、自分がロックダンスメインだった為にロックにしたい欲が出ちゃったんですよね。

ブレイクに戻してシステム大改修の予感がしてきました。

どうしよう…

この記事が気に入ったらサポートをしてみませんか?