続・初心者にお勧めの無料アセットを紹介します (Unity 2018.1.0版)

Unity のアセットストアでは数多くのアセットが販売されていて、つい目移りしてしまいます。そこでまずは気軽に楽しめるよう、簡単に使用できる無料アセットを4つご紹介します。

Windows10 64bit + Unity 2018.1.0f2 環境で動作確認しつつ、簡単な使い方もあわせてご紹介していきます。わりと安心して試してみてください。

目次

前回 とあわせ、以下の8つの無料アセットを紹介しています。

"Unity-chan!" Model

image.png

"Unity-chan!" Model はたぶん、一番有名なアセットです。最初にこのアセットをダウンロードした方も多いのでないでしょうか。

なお 公式サイト もあり、こちらにはより新しいバージョンや、関連ツールなどがダウンロードできます。

高品質でかわいいモデル、なのは当然として、Unity のサンプルとして良くできたアセットだとおもいます。基本的なアニメーションや、操作デモもはいっていて、独自シェーダーまで利用しており、本当に見るべき部分が多い!今回はその一部だけでも紹介します。

アセットをインポートすると、Scenes フォルダに3つのシーンが用意されています。まずはこれらをダブルクリックしてシーンに読み込み、再生してデモを楽しむのが王道ですね。

image.png

それぞれ軽くみていきます。

ActionCheck デモ

ActionCheck は Unityちゃんの様々なアクションが確認できるデモです。

out.gif

このデモにおいて IdleChanger.cs がアクションを変更しているコードなのですが、このコードをトリガーとして Animator を状態遷移させる仕組みはシンプルかつ有効で、とても参考になります。

image.png

ARPoseTest デモ

ActionCheck は Unityちゃんの様々なポーズ(モーション)が確認できるデモです。

out1.gif

でもこのデモ、実は ActionCheck とほぼ同じ仕掛けなんです。指定された Animation が動いているか、静止しているかの違いだけ。なのでついでに、FaceUpdate.cs に実装されている「表情を変化させるコード」も見てみましょう。

まず左のボタンで表情を変化させているのは以下のコード。ボタン名を表情のAnimation名とあわせてあるので、ボタンが押されていたらその Animation に切り替えるだけ。非常にシンプルです。

FaceUpdate.cs
    void OnGUI ()
    {
        foreach (var animation in animations) {
            if (GUILayout.Button (animation.name)) {
                anim.CrossFade (animation.name, 0);
            }
        }
    }

そしてマウスクリックで表情がアニメーションするのは以下のコード。マウスをクリックしている間は Weight が1になり、離すとだんだんと戻る(0に近づく)ようになっています。

FaceUpdate.cs
    void Update ()
    {

        if (Input.GetMouseButton (0)) {
            current = 1;
        } else {
            current = Mathf.Lerp (current, 0, delayWeight);
        }
        anim.SetLayerWeight (1, current);
    }

どちらもシンプルながら、いろいろ利用できそうなコードです。

Locomotion デモ

Locomotion は Unityちゃんを実際に操作できるデモで、一番のお勧めです!

out2.gif

カーソルキーでUnityちゃんが走りますので、アクションゲームのように操作してみましょう。スペースキーでジャンプしますし、Altキーを押すと正面からみたカメラになります。

デモの名前である locomotion は「移動運動」のことです。走っている最中に左カーソルで移動すると、Unityちゃんが体を左に傾けてスムーズに左に曲がりますよね?そこを見てくださいというデモなんです。

設定されている Animator をみると、Locomotion という定義があります。

image.png

これは ブレンドツリー といって、ダブルクリックすると、更に設定が開きます。これがこのデモで最も重要な設定です。

image.png

ブレンドツリーはアニメーションをうまく融合してくれるもので、キャラクターを操作するゲームには欠かせないものです。

例えば今回のデモでは走る場合「真っすぐ走る」と「左に傾きながら走る」と「右に傾きながら走る」の3つのアニメーションしか用意していません。左に曲がるときは「真っすぐ走る」から「左に傾きながら走る」アニメーションに、ブレンドツリーがだんだんと遷移させてくれるわけです。「アニメーション用のクロスフェード機能」という感じですかね。

興味ある方は、アドベンチャーゲーム チュートリアルの 01 The Player の視聴をお勧めします。英語なのですが最初の章ですし、画面をみているだけでおおまかな仕組みが理解できます。難しい場合には34分からの数分間だけでも。

その後で、この Unityちゃんの Locomotion まわりの設定を確認すると、中身がよく理解できて良いとおもいます。

Fantasy Skybox FREE

image.png

Fantasy Skybox FREE はクッキリと青い、アニメ的な青空のアセットです。空のアセットは多くありますので、いろいろ見て選ぶと良いでしょう。

さきほどの Unityちゃんの Locomotion デモに、このアセットを設定してみましょう。

まずはアセットをインポートしたら、Locomotion デモのシーンを読み込み、Main Camera を選択してインスペクターの "Add Component" ボタンを押し、"Rendering" の下にある "Skybox" コンポーネントを追加します。

image.png

Skybox コンポーネントが追加されたら、"Custom Skybox" 欄の右にある小さな丸をクリックすると

image.png

Skybox 画像の選択画面になるので "Sunny 01B" を選択します。なお Sunny 01A、Night 01A や Night 01B も本アセットの素材です。

image.png

さて、これで設定完了です。デモを動作させると、きれいな青空が表示されることが確認できます。

image.png

Skybox 系のアセットは設定が簡単なわりに、効果的です。また様々な種類があり、無料のもの も多くあります。いろいろ試して、好みのアセットを見つけてみてください。

HQ Big Rock

image.png

HQ Big Rock は見たまんま、リアルな岩のモデルです。アセットストアには様々なモデルが販売されていますが、このアセットのように単品で無料のものもあります。ちょっと試すには非常に嬉しいアセットです。

この岩のアセットも、さきほどと同様にLocomotion デモのシーンに追加してみましょう。"HQBigRock" モデルをプロジェクトからドラッグしてシーンに追加します。いい位置に配置できなかった時は、Shift+Crtlを押しながらドラッグし直すと良いです。

※ hift+Crtl押しドラッグは、最初のシーン追加と同様に床などコライダーに沿って動くため、こういった配置には便利です

image.png

Big Rock というわりには大きくないので、もうひとつ岩を追加してみましょう。こちらは配置後にインスペクターの Scale を全部4に変更し、4倍の大きさにしてみます。

image.png

さてこれで、デモを実行してみます。

image.png

追加した岩がゲーム画面に出現しました!小さいほうは乗り越えられますし、ジャンプでも超えられます。大きいほうはさすがに越えられません。

どうです? Locomotion デモに空と障害物が追加されただけで、なんだかグッとゲームっぽくなってきませんか?

Fantasy Effect

image.png

Fantasy Effect はファンタジーでよくある視覚エフェクトを集めた無料アセットです。

アセットをインポートしたら、Scripts フォルダにある動作確認用の Test.cs コンポーネントを、さきほどのデモの Unityちゃんに追加しましょう。そして "Test Object" の欄に Prefab フォルダにある視覚効果のどれかを選んでドラッグして設定します。今回は Fireball にしてみました。

image.png

さてこの Test.cs ですが、主要部分は以下のようなコードになっています。スペースキーが押されると、ランダムな位置に指定した視覚エフェクト(今回はFireball)が表示されるようになっています。

Test.cs
    void Update () {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Vector3 pos = new Vector3(Random.Range(-20, 20), Random.Range(-15, 15), Random.Range(0, 30));
            GameObject g = Instantiate(testObject, pos, Quaternion.identity) as GameObject;
            Destroy(g, 5);
        }
    }

さて、では実際にデモを実行してみましょう。これまでと同様に Unityちゃんは走ったりジャンプしたりしますが、それに加えて、スペースキーが押されるたびに上空からファイアーボールが降ってくるのが確認できます。

image.png

なんか不思議なデモになりましたが、まあ面白いので良しとしましょう。

というわけで

Unity はプロジェクトごとに設定が保存されますので、適当なプロジェクトを作成し、いろんな無料アセットを試して遊んでみてください。何か変になって困ったら、Unityを終了し、プロジェクト丸ごとサクっと消してしまえば問題ないです。

とにかくいろいろ試し、遊んで体験することが上達の秘訣だとおもいます。エンジョイ!

ではでは。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.