Unityメモ

定期的に、何か作りたい衝動に駆られます。病気かもしれん。
というわけで、性懲りもなくゲームっぽい何かを作る真似事を始めました。
明確に作りたい物があるわけじゃないので真似事なのです。

で、C++でゴリゴリ書くのも飽きてきたので、Unityに手を出してみました。
凄いねコレ。
超簡単な横スクロールアクションゲームなら、キーボード一切触らずにマウスだけで作れるかもしれん。
アセットストアにあるモデルやらスクリプトやらを駆使すればね。

unity1

さて、数日Unity触ってて、幾つか気になった・・・というか、変な問題にぶち当たったのでメモしておく。
読み返すことは多分無いだろうけど。

何故か勝手にインスタンス化(?)してる

例えばスクリプトで、プレイヤーキャラのオブジェクトを取得する、なんてことはよく有ります。

object = GameObject.FindWithTag("Player");

こんなコードを書いて、キャラのオブジェクトを取得して、object.transformで座標をゴニョゴニョしたりとか。

で、作業してるといつの間にか対象のキャラのオブジェクトが取得できなくなる事がありました。でもnullではなく、何かしらのオブジェクトが取得できてます。
で、調べてたら、上記コードで取得したobjectのnameプロパティが”オブジェクト名(Clone)”とかになってるんですよ。
元のオブジェクトには当然”(Clone)”なんて付いてないです。

今のところ原因は分かってません。
取り敢えずUnityを再起動すると直るので、それで対処してますが、根本的な解決になってないです。
Unity自体のバグだと思うけど・・・

この勝手にCloneの件以外でも、なにか動きがおかしいなと思ったら、まずUnityを再起動したらいいと思います。

ユニティちゃんが暗い

Unity使い始めたら、誰もが一度は使ってみるユニティちゃんですが、最初に配置した時、妙に暗いんですよね。ライトの反映が弱いというか。
上の画像がその状態。

で、ユニティちゃん専用ライトを設置してやっと普通の明るさになるのですが、
今度はユニティちゃん専用ライトが明るすぎて、他のモデルが真っ白になります。

ユニティちゃん使わなければいいだけの話なんだけど、なんとかならんかなぁ。

Charactor ControlerとCapsule Collider

人型のキャラの当たり判定を行いたい場合、きっとCapsule Colliderを使うと思うんですよね。複雑なコライダー適用すると処理が重くなるし。

で、キャラの操作はCharactor ControlerでMoveとかすると思うのですが、
Charactor ControlerとCapsule Colliderの両方を同時に適用すると、範囲を全く同じ設定にしても、実行したときに何故かY軸のマイナス方向にずれるんですよね。

なので地面ギリギリに配置したりすると、実行時に地面を突き抜けて、そのまま落下していきます。
使い方が悪いんだろうなぁ。

Charactor ControlerとCapsule Colliderの両方を同時に使うのが間違いで、Charactor Controlerで動かしたいオブジェクトにはコライダー適用せずにコードでゴリゴリやれってこと?
うーん・・・違う気がする・・・

追記
Charactor ControlerとCapsule Colliderの両方を同時に使うのが間違いっぽい。

MMDモデルの取り込み

MMDのデータをUnityに取り込む方法は幾つかあるみたいで、そのうち2つを試してみた。
一つはMMD for Unityで、もう一つはMMD4Mecanim

Unity上にMMDを表示して踊らせるだけならMMD for Unityのほうが簡単・・・なんだけど、取り込んだMMDモデルにRididBody適用すると、モデルによっては物理演算が荒ぶってゲッタン状態のままどこかに飛んでいってしまう。
最初見た時は大爆笑した。
ゲッタンしないモデルでも、ただ走るだけのモーション(VMD)で上半身が一瞬だけ動くとか、上手くいかないことが多かったです。

MMD4Mecanimのほうは取り込み直後は物理演算が効いてないけど、設定すると効くようになる。
分かりやすいドキュメントも一緒に入ってるのがありがたい。
素直に使えるので、暫くはMMD4Mecanimのほうで色々やろうと思います。モーションは試してないけど。

モーションの制御ってどうやるんだろう・・・


ネットの情報のみをつまみ食いしながらやってるので、基本的な事が分かってなかったりするから、本格的にゲーム作ろうなんて思ったら酷い事になりそう。
慣れれば、AssetStoreに汎用的なモデルやスクリプトやテクスチャやらが無料で結構使えたりするから、あまり凝ったことしないのであれば、かなり短期間に3Dゲームが作れるね。
もう暫く使ってみよう。

まぁ、Unity使えるようになっても仕事で使えるスキルは上がらんよなぁ。
C++とかでゴリゴリ書いてるほうが仕事で使えるスキル上がるんだけども。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

認証のために問題を解いて下さい * Time limit is exhausted. Please reload CAPTCHA.