2014年4月30日水曜日

【Unity】【blender】blenderでunity用データ作成 その2

blenderでunity用データ作成 その2 です。

【目次】
blenderでrigify設置する。
②rigifyをunityのmecanimに乗せれるように設定する。
blenderでアニメーションをつくる。(準備中)
blenderで作成したアニメーションをユニティちゃんにやってもらう。(準備中)


①blenderの起動
まずはblender起動します。
今回しようしたblenderのバージョンは2.70aです。












blenderのバージョンによってはrigifyの構成や命名規則など細かい違いがあるので注意してください。
いくつかのバージョンを試しましたが、結構どのバージョンでもいけそうです。

②人型モデルの読み込み
早速ですが人型のモデルの読み込みます。
今回のモデル作成の目的はunityちゃんようのモーションを作成するためなので余計なデータは一切持たせない方針です。



③rigifyの表示設定
デフォルトだとrigifyアドオンは有効になっていないため、有効にします。

メニューから「ユーザ設定」を選択。










「アドオン」タブを選択。




下のほうに「Rigging: Rigify」とあるのでチェックボックスにチェックをいれ、
「ユーザ設定の保存」を押下した後、ユーザ設定画面を閉じてください。














あ 画面は好きなレイアウトにしてくださいね。
本ブログ内の画面も色々変えています。

④rigify(アーマチェア)の追加
「追加メニュー」→「アーマチュア」→「Human(Meta-Rig)」を選択しアーマチェアを追加します。
ちなみに③のアドオンの追加をしないと本項目は表示されません。






















追加したアーマチェアをモデルに重ねます。
【オブジェクトモード】で追加したアーマチェアの移動とサイズ修正。














【編集モード】で手の位置などを修正。
このときに左メニューの「X軸ミラー」を入れておくと、片方の腕を移動しただけで反対の腕も移動してくれます。
また右側メニューの「レントゲン」にチェックを入れると、モデルと重なってもアーマチェアが見えるようになります。
色々な方向からちゃんと重なっているかを確認してください。















モデルと重ねた後は
「オブジェクトモード」で追加したアーマチェアを選択します。
すると右側メニューにの下のほうに「生成」というボタンが見えるので押下してください。


なんかできました。(下画像のオレンジで選択されているアーマチェア)














この時点で最初に作ったアーマチェアは不要なので消してしまってください。















【オブジェクトモード】で新たに増えたアーマチェアをモデルに重ねます。
こいつも「レントゲン」にチェックを入れたほうがいいですよ。


WGTで始まるオブジェクトをすべて削除します。
右下のレイヤに格納されているので
該当レイヤを表示→「A」二回で全選択→削除しちゃってください。
なんであるのか良くわからんですがごみです。
















このRigLayersでリグレイヤーの表示非表示を変更できます。
(自分はなんかいじってたらこのメニューが消えてしまいました・・・再表示の仕方がしりたい。。。)
→blenderファイルをEドライブ直下でつくり直してみたら消えなくなりました。
結構深い階層で作業してたのでファイルのパス長さとか関係してるのかも知れませんね。
Pythonスクリプトのエラーもでなくなったし。
















とりあえず今回はここまで。
次回もお楽しみに。

2014年4月28日月曜日

【Unity】【blender】blenderでunity用データ作成 その1

blenderで作成したデータをunityに読み込ませる手順について色々調べてみたのでメモしておきます。
結構有用な情報かと思います。


まずはじめにですが、blenderで作ったデータをunityに読み込ませようとして以下のページにたどりついた方はたくさんいると思います。

・Blender と Rigify の使用 / Using Blender and Rigify
http://docs-jp.unity3d.com/Documentation/Manual/BlenderAndRigify.html

かなり検証しましたが上記ページのとおりにやってもうまくいきませんでした。
そもそもわかりづらいのですがblenderのバージョンが2.64です。
この影響により最新のblenderではボーンの命名規則などが少し変わっています。
文中に出てくる「ORG-ribs」なんてボーンはblender2.7使用時出てきません!
胸の骨は「ORG-chest」だし!
そして自分が最終的に成功したやりかたと使用するボーンが違います!

というわけで最終的に自分が参考にしたのが以下の動画です。
・Blender Rigify into Unity Mecanim
https://www.youtube.com/watch?v=lAwK19Ijq50

上記動画のとおりにやって無事に成功しました!

というわけで自分のやって成功した手順を説明します。

【目次】

blenderでrigify設置する。(準備中)
rigifyをunityのmecanimに乗せれるように設定する。(準備中)
blenderでアニメーションをつくる。(準備中)
blenderで作成したアニメーションをユニティちゃんにやってもらう。(準備中)



とりあえず上記構成で説明します。
ちなみに
blender バージョン2.70
unity バージョン4.32f1
を使用して説明していきます。


2014年4月26日土曜日

新アクション!

ユニティちゃんに既存で登録されているアクションを行わせることはまあMecanim使ってできるようになりました。

まえにアップした障害物ゲームにはどんどんアクションを追加したい!!

というわけで作ってみました。

ユニティちゃんによる前回りです!!
どうぞ!!








そのうちゲームにも実装します。

2014年4月16日水曜日

【Unity】UNITY よく使うスクリプトまとめ


よく使うスクリプトを自分のためのメモという意味も含めて残しておこうと思います。
※本記事は随時更新されます。(最終更新日:2014-04-16)


■C#
■NewBehaviourScript.cs
using UnityEngine;
using System.Collections;
using enum_teigi;            //別ファイルに定義したemun(列挙型)を使うため

//クラスだよ
public class NewBehaviourScript : MonoBehaviour {

    public GameObject go;
    public static MyTeam myteam;

    //UnityをC#で使用するときはコンストラクタ使用不可 Awakeを使用すること
    void Awake()
    {
        my_team = MyTeam.A_Team;
    }
    //オブジェクト生成時に一度だけ呼ばれる
    void Start () {

        //プレハブのインスタンス化を行う。
        //プレハブファイルはResourcesフォルダに配置する必要がある。
        go = (GameObject)Instantiate(Resources.Load("myprefab"));

        //ゲームオブジェクトの名前を「unity-chan」に変更
        go.name = "unity-chan";

        //goにセットされているTestScriptスクリプト内に定義されている変数vに1を代入
        go.GetComponent<TestScript>().v = 1;

        //ゲームオブジェクトを削除
        Destroy(  go  );
    }

    // メインのループ。ループの間隔は一定ではない。この処理一回が1フレーム。
    void Update () {

        //コンソールのログを表示(コンソールはCtrl+Shift+Cで表示される)
        //Time.deltaTimeは前フレームの時間が格納されている。
        Debug.Log(Time.deltaTime);
    }

    // 物理演算用のループ。フレームとは別に0.01秒間隔で実行される。
    void FixedUpdate () {
    }


    //GUI関連はこの中に記述する
    void OnGUI()
    {

    }
}

■myenum.cs
namespace enum_teigi
{
    public enum MyTeam
    {
        A_Team,
        B_Team,
        C_Team
    }
 
    public enum MyAction
    {
        jump,
        run
    }
}

2014年4月14日月曜日

【Unity】ユニティちゃんが障害物をよけながらゴールを目指すゲーム

ユニティちゃんのモデルも公開されたということで
早速ゲームを作ってみました。

これからどんどん細部を作っていく予定です。

なお本ゲームの作成にあたって調べた内容については後日に
本ゲームの作成手順としてまとめたいと考えています。

■ユニティちゃんが障害物をよけながらゴールを目指すゲーム
https://googledrive.com/host/0B8jkGdzhR7NkeGFXemJ2X0FPbDg/frerun.html




<ルール>
ユニティちゃんが走ってゴールを目指します。
途中の障害物をジャンプ、スライディングでかわしてゴールを目指しましょう。
もちろんコースアウトはだめですよ。

<操作説明>
操作はマウスのみ使用し、画面内にあるボタンを押下することにより
特定のアクションを行います。
・左上のボタン(left turn)・・・左に曲がります。
・右上のボタン(right turn)・・・右に曲がります。
・左下のボタン(sliding)・・・スライディングします。
・右下のボタン(jump)・・・ジャンプします。



2014年4月13日日曜日

色々ためし中。

unityちゃんいろいろいじってます。
楽しいです。

近いうちにためしで作ったゲームデータを公開できそうです。



2014年4月11日金曜日

【Unity】祝 ユニティちゃんリリース

ついにユニティちゃんのモデルがリリースされましたね!

さっそくユニティちゃん公式サイトよりダウンロード!

http://unity-chan.com/

そしてダウンロードしたunitypackageファイルをProjectエリアにドラッグ&ドロップしてインポート!


うむ、かわいい。

とりあえず、Scenesフォルダ内のLocomotionシーンを開く。




実行。



いいですね。
この時点で走ったら、カメラが追随したりいい感じ。




さっそく色々試してみようと思います。



2014年4月10日木曜日

【Unity】Unity小ネタ その4 newプロジェクト作成時のエラー

■エラー「Creating unique file」について

Unityで新しいプロジェクトを作成しようとしてフォルダを選択した際に以下のエラーが出ることがあります。


エラータイトル:Creating unique file
エラー内容:Creating file Temp/tempFile failded. Prease ensure there is enough disk space and you have permissions setup correctly.





内容的には「一時ファイルの作成に失敗。十分なディスク容量とアクセス権があることを確認してね」といった感じ。
調べてみるとプロジェクトファイルの作成先フォルダパスに日本語が含まれているとこのエラーが出るらしい。

エラー内容関係ないなーと思った今日この頃。


2014年4月1日火曜日

【Unity】Unity小ネタ その3 3Dと2Dの違いについて

■3Dと2Dの違いについて

Unity4になってから新規にプロジェクトを作るときに3Dか2Dかを選べるようになってる!!

Unity4から2D対応するような話は聞いていたし、NGUIに頼らずに2Dゲームの開発ができるようになったのかーと思ってみたのだが・・・
違いがわからん!!

というわけで軽く比較。
まずは2D、3Dで作成した場合の初期画面の違いについてまとめてみました。

1・初期画面
【3D】

【2D】

違いないですね。。。
強いてあげるならば、Scane内の2D表示がデフォルトでオンかオフかの違いだけです。


2・MainCameraオブジェクト内

 ①Inspector内のコンポーネント

MainCamera内のコンポーネントの種類についても違いなし。
Cameraコンポーネントの設定値に違いがあるくらい。


3・Cameraコンポーネントの設定値

同じCameraコンポーネントなので設定可能な値に違いは無いと思うが念のため確認。

②Clear Flags

どちらもデフォルト値は「Skybox」

③Culling Mask

どちらもデフォルト値は「Everything」


④Projection


3Dのデフォルト値:Perspective
2Dのデフォルト値:Orthographic

⑤Rendering Path

どちらもデフォルト値は「Use Player Settings」



4・その他
因みにデフォルトで用意されている「Tag」「Layer」ともに差異はなかった。


①Tag

②Layer



さらにプロジェクトファイルが作成されたフォルダの構成にも差異はなし。
(画像がなくてすまぬ。。。)



結果としてはMein CameraオブジェクトのCameraコンポーネントにある「Projection」しか差異は見つけられなかった。
プロジェクト作成時の3D、2Dの選択の違いはほとんどないのかもしれない。

今後も調査していく予定。