Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

Unityで落下したGameObjectを床に着地させる

f:id:JHashimoto:20140223054708p:plain

前回はキャラクターを落下させるところまでやりました。

UnityでGameObjectを落下させる - プログラマーな日々

 

このままでは落下したキャラクターが床を通り抜けてしまうので、今回は床に着地するようにします。

Box Collider 2Dを適用する

GameObject同士を衝突させるには、コライダーを使用します。Unityにはいくつかコライダーがありますが、床は四角形なので、Box Collider 2Dを使用します。

床とキャラクターを衝突させるには、両方にBox Collider 2Dを適用する必要があります。

GameObjectにComponentを適用する方法は以前のエントリーを参照してください。

UnityでGameObjectにComponentを追加する - プログラマーな日々
UnityでGameObjectにComponentを追加する方法を紹介します。 ...

再生する

Box Collider 2Dを適用したら、再生してみます。

f:id:JHashimoto:20140323174829p:plain

キャラクターが床に着地しました。

UnityでGameObjectを落下させる

f:id:JHashimoto:20140223054708p:plain

前回はキャラクターをアニメーションさせるところまでやりました。

Unityでキャラクターをアニメーションさせる - プログラマーな日々
UnityでGameObjectにTk 2D Sptite Animatorを適用し、キャラクターをアニメーションさせる方法を紹介します。 ...

 

このままではキャラクターが空中に留まったままなので、今回は落下するようにします。

GameObjectにRigidbody 2Dを適用する

キャラクターを落下させるには、キャラクターのGameObjectにRigidbody 2Dを適用します。Rigidbody 2DはGameObjectに物理特性を付加するComponentです。

Unity - Unity Manual
Rigidbody 2D コンポーネントによりオブジェクトに物理挙動を作用させます。標準の Rigidbody コンポーネントの多くの概念は Rigidbody 2D に引き継がれるものの、オブジェクトは XY 平面でのみ移動し、この平面に垂直な軸でのみ回転します。 ...

 

GameObjectにComponentを適用する方法は以前のエントリーを参照してください。

UnityでGameObjectにComponentを追加する - プログラマーな日々
UnityでGameObjectにComponentを追加する方法を紹介します。 ...

再生する

Rigidbody 2Dを適用したら、再生して確認してみます。

f:id:JHashimoto:20140323154013p:plain

キャラクターが落下するようになりました。

Unityでキャラクターをアニメーションさせる

f:id:JHashimoto:20140223054708p:plain

UnityでGameObjectにTk 2D Sptite Animatorを適用し、キャラクターをアニメーションさせる方法を紹介します。

手順

アニメーションのフレームに使うSprite Collectionを作成する

フレームとは、アニメーションを構成する各静止画のことです。

まず、フレームに使うSprite Collectionを作成します。Sprite Collectionの作り方については、以前のエントリーを参照してください。

2D ToolkitのTk 2d Tiled SpriteにSpriteを設定する - プログラマーな日々
今回は2D ToolkitのTk 2d Tiled SpriteにSpriteを設定してみます。 ...

Sprite Animationのプレハブを作成する

Sprite Collectionを作成したら、Sprite Animationのプレハブを作成します。

f:id:JHashimoto:20140302130435p:plain

f:id:JHashimoto:20140302145634p:plain

プレハブが作成されました。

f:id:JHashimoto:20140302145857p:plain

Sprite Animationのエディターを起動する

f:id:JHashimoto:20140302150247p:plain

新しいClipを作成する

f:id:JHashimoto:20140302165558p:plain

Clipが作成されました。

f:id:JHashimoto:20140302165712p:plain

Sprite Animationの名前を付ける

f:id:JHashimoto:20140302172806p:plain

1つ目のフレームを設定する

f:id:JHashimoto:20140302173343p:plain

フレームを追加する

[+]をクリックして、必要なだけフレームを追加し、それぞれにSprite CollectionとSpriteを設定します。

f:id:JHashimoto:20140302174142p:plain

アニメーションの時間を設定する

[Play]/[Stop]でアニメーションがどのように動くか確認できます。確認しながら、時間を調整します。

f:id:JHashimoto:20140302174803p:plain

変更を確定する

変更を確定し、エディターを閉じます。

f:id:JHashimoto:20140302175123p:plain

Sprite Animatorの適用対象のGameObjectを作成する

GameObjectの作成方法は、以前のエントリーを参照してください。

UnityでGameObjectを作成する - プログラマーな日々

Tk 2d SptiteをGameObjectに適用する

f:id:JHashimoto:20140302191738p:plain

Tk 2D Spriteが適用されました。

f:id:JHashimoto:20140302192131p:plain

Sprite CollectionとSpriteを設定する

Tk 2d Spriteに、先ほど作成しておいたSprite CollectionとSpriteを設定します。

f:id:JHashimoto:20140302192509p:plain

Tk 2d Sptite Animator をGameObjectに適用する

Tk 2D Spriteと同じ要領で、[Add Component]からTk 2d Sprite Animatorを適用します。

Tk 2d Sptite AnimationをTk 2d Sptite Animatorに設定する

作成しておいたSprite AnimationのClipをSprite Animatorに設定します。

f:id:JHashimoto:20140302194028p:plain

再生する

ここまでできたら、再生してみます。

f:id:JHashimoto:20140302194229p:plain

画像なのでわかりませんが、アニメーションしています。

UnityでGameObjectにスクリプトを適用する

f:id:JHashimoto:20140223054708p:plain

UnityでGameObjectにスクリプトを適用する方法を紹介します。

スクリプトを新たに作成することもできますが、今回はAssetsにインポートしたスクリプトを適用することにします。

Assetsにスクリプトをインポートする方法は、以前のエントリーを参照してください。

Unityで既存のスクリプトをインポートする - プログラマーな日々
Unityで既存のスクリプトをインポートする方法を紹介します。 ...

 

手順

GameObjectを選択し、[Add Component]を実行

f:id:JHashimoto:20140223192937p:plain

スクリプトを選択する

f:id:JHashimoto:20140223193841p:plain

GameObjectにスクリプトが適用されました。

f:id:JHashimoto:20140223194054p:plain

Unityで既存のスクリプトをインポートする

f:id:JHashimoto:20140223054708p:plain

Unityで既存のスクリプトをインポートする方法を紹介します。

フォルダを作成する

Assets直下にインポートしてもかまいませんが、スクリプト用のフォルダを作成した方が管理しやすいでしょう。

フォルダを作成する方法は、以前のエントリーを参照してください。

UnityでProjectにフォルダーを作成する - プログラマーな日々

 

今回はScriptsというフォルダを作成しました。

メニューからインポートする

[Import New Asset...]を実行

f:id:JHashimoto:20140223181943p:plain

ファイルを選択

f:id:JHashimoto:20140223183244p:plain

スクリプトがインポートされました。

f:id:JHashimoto:20140223182631p:plain

または

ファイルをドラッグアンドドロップしてもインポートできます。

f:id:JHashimoto:20140223182934p:plain

Unityで再生中の変更を防止する

f:id:JHashimoto:20140223054708p:plain

Unityでは再生中でもアプリを変更できますが、その変更が有効なのは再生中だけです。再生を停止すると、変更も取り消されます。

再生中であることを気付かずに変更してしまい、後で変更が取り消されることを防ぐ方法を紹介します。

再生中であることに気付けるように、再生中の画面色を変更します。

手順

f:id:JHashimoto:20140223055942p:plain

f:id:JHashimoto:20140223060608p:plain

再生してみる

f:id:JHashimoto:20140223060738p:plain

再生中であることが、はっきりわかります。

2D ToolkitのTk 2d Tiled SpriteにSpriteを設定する

f:id:JHashimoto:20140223054708p:plain

今回は2D ToolkitのTk 2d Tiled SpriteにSpriteを設定してみます。

そもそもスプライトが何なのかわからなかったので、Wikipediaで調べてみました。

スプライト (映像技術) - Wikipedia
スプライトは、主にビデオゲームで用いる、画面上の小さなキャラクタを高速に合成表示するための技術的な仕組みである。 ...

 

ということでした。

手順

フォルダを作成する

まず、スプライトコレクションを保存するフォルダを作る必要があります。今回はCollectionという名前にしました。

f:id:JHashimoto:20140222161345p:plain

フォルダの作成方法は以前のエントリーを見てください。

UnityでProjectにフォルダーを作成する - プログラマーな日々

スプライトコレクションを作成する

f:id:JHashimoto:20140222163317p:plain

スプライトコレクションを保存する

f:id:JHashimoto:20140222164042p:plain

Tk 2d Sprite Collectionのエディターを起動する

f:id:JHashimoto:20140222164339p:plain

Sprite Sheetを作成する

エディターが起動したら、Sprite Sheetを作成します。

f:id:JHashimoto:20140222164748p:plain

画像選択のダイアログボックスを起動する

f:id:JHashimoto:20140222165533p:plain

画像を選択する

ダイアログから、スプライトの元となる画像を選択します。

f:id:JHashimoto:20140222170031p:plain

画像が選択されました。

f:id:JHashimoto:20140222170049p:plain

Tileに分割する

Tileに分割します。

f:id:JHashimoto:20140222170617p:plain

画像がTileに分割されます。

f:id:JHashimoto:20140222170824p:plain

Commitして変更を確定する

ここまでできたら、変更を確定して、エディターを閉じます。

f:id:JHashimoto:20140222171105p:plain

Projectビューでフォルダ構成を確認する

フォルダが作成され、その中に以下のファイルが作成されていることを確認します。

f:id:JHashimoto:20140222173034p:plain

GameObjectにTk 2d Tiled Spriteを追加する

f:id:JHashimoto:20140222175851p:plain

Componentが追加されました。

f:id:JHashimoto:20140222180039p:plain

CollectionとSpriteを指定する

作成したCollectionとSpriteを指定します。

f:id:JHashimoto:20140222180344p:plain

参考にしたサイト

2D TOOLKIT を使ってみようず(中編) | めがみん.JP
前回の続きです、今回は 2D TOOLKIT にスプライトを登録し、スプライトの表示を行うところまですすめてみます。 ...