新しいこと、枯れたこと問わずサムザップ大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。渋谷ほととぎす通信の続きです。アニメーションに移ります。頂点カラー反映済みの三角形をクルクル回してみようと思います。今回は頂点シェーダ側で回転させてみます。シェーダ側を変更します。以下が変更した部分のシェーダソースコードです。input;}一つずつ見ていきます。RotateMatrixRotateMatrixというmatrix型(行列)変数を定義します。値はC#側から描画タイミング時に渡されます(渡す処理は後述)。RotateMatrix);座標に先ほどの回転行列を乗算します。mul関数が乗算する処理になります(Unityではおなじみ)。すると、三角形の各頂点が一つの回転行列で回転します。この回転行列をフレーム単位で変化させていくことでアニメーションさせていき次にC#側を見ていきます。やることはシンプルで、回転行列を作成して、それをシェーダに渡すです。回転行列を作成してシェーダへ渡すまずは該当コードをどうぞ。行列はMatrixクラスを使います。作り方はいろいろありますが、今回はRotationAxis関数を使って生成しています。第1引数に回転軸、第2引数に回転する角度をセットします。第2引数部分を変化させることでクルクル回転させることができます。角度を変化させるために、frameCount変数を定義し、Loop関数内でインクリメントさせる処理を入れています。回転したっちゃあしましたが、三角形がきれいに描画されていません。部分的にカリングされている感。この辺りはいったん今後のTODOとして残しておき、今回はこれで終わります。三角形を回転アニメーションさせるTweet読者になるボタンを押して貰えるととてもがんばれます。大庭俊介(bao_bao)渋谷のUnityエンジニア。スマホゲーム作って生活しています。設計、組み込み、演出一通りを自分1人で完結して作るのが得意です。よろしければTwitterフォローお願いします。(@ohbashunsuke)株式会社サムザップでUnityエンジニアとしてスマホゲーム作っています。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。