2012-06-30

【パンツチェック】初音ミク ヴィネッティアムキュート Vol.2 (VOiCE, ワールドズエンド・ダンスホール)


わーぱんつだー確保ー!

久々にみくぱんつを手に入れたので、レビューするよ~(*´ω`*)


か、かわゆー!

本日は、「初音ミク ヴィネッティアムキュート Vol.2」、
その中でも、VOiCE、ワールドズエンド・ダンスホールにフォーカスしてお送りします。
(無論、残りのれんきゅんも、咲音さんも購入済み、かわゆすprpr)


まずは、ワールドズエンド・ダンスホールから。

あ、あれすでに正面でうっすらパンツが!これじゃワカメちゃんじゃないですか ><

荒ぶるついんて

デフォルメの笑顔が素敵すぎる(*´ω`*)


なんか、後ろの背景なかったら作品が全然わからないなぁ・・・なんて(;´∀`)
個人的には、もう少しPVでデコレーションされてる動画のほうがフィギュアにしたときのインパクト上がると思うんだけどもー。

ではでは、(もう見えてるけど)お待ちかねのパンツを・・・・







W    H    I    T    E    !     !

安定の白

安心の白


まあ、そうよねー白よねー。
正面から見るとワカメちゃん状態というのが一番の収穫ですね!ぐへへ


続いて、VOiCEをみてみましょう。

ろりみくぅ!!!!!!!!!

ロボットさんもちゃんといる。かわいいw

ろりみくprprprprprpr


お、おい、可愛すぎだろ、、、、この笑顔だけで御飯何杯もいけますよ、はい


で。

パンツ紳士の皆さん。
ろりみくぱんつですよ!ろりみくぱんつ!









ど、ドロワーズキタ━━━━(゚∀゚)━━━━ッ!!


ロボットさんもドロワをガン見です。はぁはぁ。もうそりゃもぐもぐしたいですよね、もぐもぐー!!!1




・・・ふぅ。

セガプライズ、いい仕事したな。


2012-06-03

【Unity】GUIでテクスチャの回転

これ、GUITextureクラスじゃできないらしいってことでメモ。
(GUITextureは拡縮程度ならできるんだけどなー)

ちなみに、GUIになるので、Translateは使えない。
直接GUI.matrixに作用させて描画をする必要がある。

が、そこはUnityさん。わざわざ行列作らないくとも、


GUIUtility.RotateAroundPivot

を使えば行列生成してくれる模様。
そのあとは、
GUI.DrawTexture
すればいいだけ。

GUI.matrixに変更がかかってしまうの、matrixを一時保存してから戻すとしてみるテスト。

public class UICompass : MonoBehaviour {

    [SerializeField]
    private Texture guiCompass;

    private Matrix4x4 tmpMat;
    private float angle;

    void Start () 
    {
        angleY = 0.0f;
    }

    public void SetAngle( float angle_ )
    {
        angle = angle_;
    }

    void OnGUI()
    {
        // テクスチャの回転はGUIUtility.RotateAroundPivotではないと回転できない
        tmpMat = GUI.matrix;    // 一時退避
        {
            Vector2 point = new Vector2(Screen.width * 0.5f, (float)Screen.height);
            GUIUtility.RotateAroundPivot(angle, point);
            GUI.DrawTexture(new Rect(Screen.width * 0.5f - guiCompass.width * 0.5f,
                                        Screen.height - guiCompass.height * 0.5f,
                                        (float)guiCompass.width,
                                        (float)guiCompass.height), guiCompass);
        }
        GUI.matrix = tmpMat;    // 戻す
    }
}

で、このクラスをてきとーなところにつけておいておいて、
これをプレイヤー側から、

private UICompass uiCompass;

    void Start () 
    {
        GameObject uiObj = GameObject.Find("/UI");
        if (uiObj) { 
            uiCompass = uiObj.GetComponent<UICompass>();
        }
    }

    void RotatePlayer() 
    {
        deltaRot = Quaternion.Euler(rotVec * Time.deltaTime);
        rigidbody.MoveRotation(rigidbody.rotation * deltaRot);
        uiCompass.SetAngle(transform.localEulerAngles.y);
    }


みたいな感じでやれば、追従して回ってくれる感じ。

わざわざSendMessageするほどのものでもないかなーと思って、
コンポーネントから引っ張りだして参照を保存しておく。

UICompassをPlayerのコンポーネントにしてもいいんだけど、
他の調整用スクリプトがくっついていたりしてインスペクタがみにくてしょうがない。
なので、UI系は空のGameObejctにまとめて記述することにした。

これでなんとなくすっきり。満足。