|
|
今回はUnityに備わっている |
|
Unityのアニメーションは |
|
|
|
冬月は2D,UIのフェードインやシーン切り替えでの移動等 |
|
ゲームは中身のゲーム性も重要ですが |
|
|
|
最低限アニメーションで必要なのは |
|
Animator Controllerは名前の通り |
|
|
|
Animationは霊夢が言った |
|
Animator ControllerはProjectで右クリックメニューから生成できます |
|
|
|
次にAnimationを作成します |
|
UnityのメニューバーのWindowから |
|
|
|
で、こっちがAnimationを操作するときに使うUIだな |
|
AdobeのFlash Professionalを触ったことある人は |
|
|
|
変化させた箇所があると |
|
アニメーションの設定方法としては |
|
|
|
子のObjectからアニメーションさせたい子Objectを選択して |
|
選択すると、右にタイムランみたいな表記がされますので |
|
|
|
上のデバッグ再生の項目も赤色になっていると思います |
|
フェードインアニメーションなら |
|
|
|
アニメーションができたら |
|
緑色のEmptyは最初から作られています |
|
|
|
上の画像の場合ですと |
|
矢印は必ずEmptyからつなげる必要があるわ |
|
|
|
そうすると、項目から矢印が伸びるから |
|
矢印が繋がったら、アニメーション終了後に |
|
|
|
アニメーションの再生を任意に行いときもあるので |
|
Animatorの左側のリストには |
|
|
|
左上の+ボタンがあるので+をクリックするとリストを増やすことができるぞ |
|
登録したフラグは矢印に対して設定していきます |
|
|
|
設定の仕方は右下部にあるConditionsの+ボタンを押すと |
public class BattleMainScript : MonoBehaviour
{
// アニメーションの管理
// 前面スクリーン
/// 前面スクリーン
public GameObject mFrontScreenObject; ← Inspectorで該当のGameObjectを設定しておく
/// 前面スクリーンAnimator
private Animator mFrontScreenAnimator;
/// ==============================================================
/// 初期化処理
/// --------------------------------------------------------------
///
/// ==============================================================
void Start ()
{
// アニメーター取得
if (mFrontScreenObject != null)
{
// 前面スクリーン
mFrontScreenAnimator = mFrontScreenObject.GetComponent();
}
}
/// ==============================================================
/// 更新処理
/// --------------------------------------------------------------
///
/// ==============================================================
void Update ()
{
// アニメーションのフラグを操作する
mFrontScreenAnimator.SetBool("isStart", true);
// アニメーションの再生時間を取得
mAnimatorStateInfo = mFrontScreenAnimator.GetCurrentAnimatorStateInfo(0);
mAnimeTimeLength = mAnimatorStateInfo.length;
mAnimeTimeCur = 0;
}
}
|
いろいろ端折ったけど |
|
mFrontScreenAnimator.SetBool("isStart", true);
キモとなるのがこれだな
設定しているフラグを変更する関数になるぞ
SetBoolは設定した型に合わせて変更してくれ
第1引数に変数名
第2引数に変数値を入力します
すると即値が挿入されてアニメーションが再生されるようになります
冬月の設計はこんな感じです
あまり効率的な方法では無いと思いますが
わかりやすいかなと思います
mAnimatorStateInfo = mFrontScreenAnimator.GetCurrentAnimatorStateInfo(0); mAnimeTimeLength = mAnimatorStateInfo.length; mAnimeTimeCur = 0;
|
|
こっちは必要ない人もいると思いますが説明しようと思います |
|
GetCurrentAnimatorStateInfoが |
|
|
|
mAnimatorStateInfo.lengthが再生時間ね |
|
mAnimeTimeCurが再生時間を図る変数です |
|
|
|
これで一通りのアニメーションはできるはずです |
|
あと、アニメーションには |
|
|
|
Animationのタイムランの上部をクリックすると青い棒が出てくるぞ |
|
Inspectorには |
|
| アニメーションの方法はこんな感じです これをするだけでぐっと完成度は上がりますので 皆様も一手間してみてはどうでしょうか? |


