Unity研究所<Unityによるゲーム開発、映像開発>

Unity初心者おやじが綴るゲームで小遣い稼ぎできるようになるまでのブログ

Unity 小ネタ オブジェクトの一連の動作をDOTweenで実装

今どきの若者は知らないだろうし興味もないだろうが、パチンコには羽根物というタイプというものがあり、スタートとというポケットに玉が入ると、中央にある羽根が開いて、その羽根が開いている間に玉が入り、その中のVゾーンというエリアに玉が入ると、大当りとなり、玉がたくさん出るというものだ

最近はなかなかこうしたタイプの台はごくまれになってしまったが、パチンコの面白さといえば、おもちゃ的なギミックや、それによる玉の思わせぶり、かつ不可解な動きである

学生自体は毎日遊んでいたものだ

あ~っ、羽根物ブームの復活こないかなぁ~っ

 

あっ、取り乱してすいません

まあ、パチンコ屋になかなか設置されなくなってしまったので、羽根物パチンコの携帯アプリを制作して、若者に知ってもらい、何とか復活できないかと考えているわけである

 

前置きがとても長くなった

ここまでかなりの年月がかかっているが、だいぶ形にはなってきた

下記が動作イメージである

 

今回は、下記の円盤に一部玉を受け取るような切り欠きのある物体の、左右の傾き動作についての実装の仕方について書き残しておく

 

〇用意したもの

 DOTweenアセット

 自分も詳しくないので、詳細は解説しないが、これはオブジェクト、テキスト等の動作、アニメーションを簡単なスクリプトで実装できる、ライブラリ的なもの

 自前でスクリプトで実装することもできるが(多分(~_~;))、面倒というか、効率が悪く、早く形にすることでモチベーションの低下を防ぐ効果もあると考え、このアセットを使用しての実装とした

 定番のアセットなので、プロジェクトへの導入方法等はググッてみて

 

〇動作させたい仕様

①右に45度1.5秒間で傾ける

②中央まで1.5秒間で傾ける

③左に45度1.5秒間で傾ける

②中央まで1.5秒間で傾ける

以降、上記の繰り返し

という一連の動作の繰り返しのため、DOTweenの使用方法としては初のシーケンスというもので実装してみた

 

スクリプト

using DG.Tweening;

    void Start()
    {
        var sequence = DOTween.Sequence();

        sequence.Append(transform.DOLocalRotate(new Vector3(81.62f, 0, 45), 1.5f));
        sequence.Append(transform.DOLocalRotate(new Vector3(81.62f, 0, 0), 1.5f));
        sequence.Append(transform.DOLocalRotate(new Vector3(81.62f, 0, -45), 1.5f));
        sequence.Append(transform.DOLocalRotate(new Vector3(81.62f, 0, 0), 1.5f));

        sequence.SetLoops(-1, LoopType.Restart);

        sequence.Play();

    }

 

スクリプトの解説

見たままであるが・・

シーケンスの変数を作成して、回転動作をそれぞれ4つ登録

その後にループするように設定

最後に再生開始

最初はDORotateを使用していたが、原因不明だが動作が一巡してもうまくつながらず、ループしないので、DOLocalRotateを使用してみたら何とか出来た

LoopTypeについては、加算し続ける、ヨーヨー、リスタートの三種類があり、リスタートを使用したところ、つながった動作にすることができた

 

〇雑感

さすがにトゥィーンというだけのことはあり、デフォルトの動作でも何となくイーズイン、アウトの動作が入っているのか、等速で動いている感じがないのは意外と良いかもしれない

 

今回はここまで