超久々に、Unityを触っています。 初めて触った2010年末、当時は日本語の情報が全然なかったので、途中で止めてしまったのですが、将来「3Dアクションゲーム」を作成するために、今から再度「Unity」を触ってます。
ちょうどUnityに関するホットなエントリーがあり、本を見つつ、これを少しづつやり、疑問に思った所を、cocos2d同様にブログに書いていきたいと思います。
Rigidbodyのパネル
Rigidbodyというものを使うと、重力などの物理的な効果をオブジェクトに付け加えることができるのですが、そのパネルが英語で書かれているので、何を示しているのかわかりません。 今回は、これを個人的に調べました。
Mass
Massは、質量を表しています。 これはオブジェクトの重さで、値が大きい小さいで、例えば跳ね返りが変わります。
Drag
Dragは空気抵抗を表します。 0の場合は、抵抗がありません。 この値が高いと、すぐに止まってしまいます。
Angular Drag
Dragと同じ空気抵抗ですが、こちらはオブジェクトの回転にかかります。 0の場合は、回転の抵抗がないので、オブジェクトは回り続けます。
Use Gravity
重力を付けるかどうかを設定出来ます。
重力自体の大きさは、[Edit]->[Project Settings]->[Physice]で設定ができます。
ここで、好きな値を設定します。
Is Kinematic
他の外圧を受けるとどうかを設定出来ます。 使い所としては、アニメーションをオブジェクトに行う際に、重力や空気抵抗がかかると困る場合に設定します。 これはスクリプトで、これを個別に設定したほうがよさそうです。
Interpolate
補完処理。 物理効果を滑らかにすることができる。 主に主人公(Player)で利用されている。とのこと。
おそらくアニメーションなどのオブジェクトの動きと、物理効果とでは、実行されるタイミングの差異を小さくするために利用するために使われるものと思われます。
これは調べましたが、いまいちどうなるのか不明。
こちらを参考下さい。
Continuous
連続的な衝突判定を行うかどうかを設定できるみたいです。 連続的に行うと、もちろん処理は重たくなります。
- discrete : 一定時間ごとに衝突判定を行う
- Continuous : 静止しているオブジェクトに対して、連続した衝突判定が行われる
- Continuous Dynamic : 静止しているオブジェクトに加え、動的なオブジェクトととも連続的な衝突判定を行う
Constraints
オブジェクトの移動や、回転を制限できます。 ここにチェックが入っていると、制限がONになっています。
最後に
Interpolateがいまいちよくわかりませんでしたが、Rigidbodyではどのようなことが設定できるか大体わかりました。 このような物理効果に関しては、Rigidbody以外にも「Physic Material」を利用する方法もあります。 こちらも、後で詳しく調べてみたいです。
この本の最初のチュートリアルがとてもわかりやすかっとです。 1章目以降は難し過ぎますが。
ゲームの作り方 Unityで覚える遊びのアルゴリズム 加藤 政樹 ソフトバンククリエイティブ 売り上げランキング : 3879 Amazonで詳しく見る |