unity3d レベル1 -23ページ目

unity3d レベル1

unity3dでゲーム作りはじめました。
http://knr.ifdef.jp/
twitter: @knorsUni

ゲームオブジェクトを移動させる手段は色々ある。

けど、それぞれどれぐらい進むのか、かなりアバウトに考えてる。

そもそも違いもよくわかってない。



わかんねー事はやってみるのが早ぇ!!

ってことで


まず、Time.deltaTimeの設定。

Fixed Timestep = 0.02

TimeScale = 2

の、初期仕様。

数値はTransformの数値(グリッド)。



フレームを上限100に設定。(Editor上だとFPSが30ぐらいに設定される?ので一々ビルドして実験)


① transform.position.x += 0.02;//フレーム毎に0.02( * FPSで=TimeScale)進む

② transform.positon.x += Time.deltaTime;//1秒間にTimeScale分進む

③ rigidbody.velocity.x = Time.deltaTime * 50;

④ rigidbody.velocity.x = 1;

⑤ moveDirection.x = 0.02;//controller.Move(moveDirection);(Charactor Controller)を使用。

⑥ moveDirection.x = Time.deltaTime;//⑤と同じ


Charactor Controllerのは公式のスクリプトリファレンスを参考にしてる。



↓画像に数字つけるの忘れたorz


unity3d レベル1


動かしてみた。

上から①②⑤⑥は  = 2 で数値が一緒になる。

フレームは上限での固定なので、若干ムラが…?

③④のrigidbody.velocityは速度らしいけど、良く分からなかった。

③のTime.deltaTime*50は無理やり④の数値と一緒にするために50という数字を掛けてる。

とりあえず"1"にすると他のと同じぐらいになった。



FPSの上限を30に制限してみた。


unity3d レベル1

Time.deltaTime = TimeScale / FPS

FPSが下がるとTime.deltaTimeの数は増える。

FPS100 ・・・ Time.deltaTime = 2/ 100 = 0.2   0.02(修正(笑))

FPS30 ・・・ Time.deltaTime = 2 / 30 = 0.0666666…


① 0.02 * FPS = 0.6/1s

② 0.066666 * FPS = 約2/1s

③ ?

④ ?

⑤ 0.02 * FPS = 0.6/1s

⑥ 0.066666 * FPS = 約2/1s


④rigidbody.velocity.x = 1は ②と⑥と一緒になった。

つまり1秒間に2進んでる。

③は速くなった。

Time.deltaTime(0.0666666) * 50 なので、3.333333…となる。

数値が増えると速くなる。


rigidbody,velocity.x = n の場合

n * TimeScale / 1s これだけ進むって事かな。


ってことは、rigidbody.velocityの場合、Time.deltaTimeは掛けなくて良。

とりあえず、どれを使っても1秒間に進む距離を同じにすることが出来る。

ただし、rigidbodyは色んな影響を受けるので誤差が出やすそう。

特に問題ないんだけど、書くことないので書こうかと。


unity3d レベル1


unity3d レベル1

MayaでFBX吐き出す時にアニメーションベイクすると、

アニメーション再生してない時バグってる。

アニメーション付けてるモデルで、不動ってことはないから問題ないんだけど、

人に渡すことを考えると修正したいなー。


予想①


自分の場合、まず0フレームにT字ポーズ(モデリングしたまんまのポーズ)のキーを全部打っておいて

1フレーム目からアニメーション付けていく。

IKとか使っているとバインドポーズ(元の状態に戻る)とか適用されなかったりするから、

0フレームにいけば元の状態のキーを取得できる。


ただ、この時、一々アニメーションカーブをステップとかにしてないので、

物凄いカーブが掛かった状態になってる。

これがFBXConverterのほうでベイクする時おかしくなるのか?

必ず吐き出した後Warningって出る ←かなり無視してる



予想②


バグった状態のを見ると、顔だけは変形してない。

顔はスキンウェイトが首の骨で”1”となってる。

他の骨の影響を受けないように。

この部分だけバグってないので、Unityでシーンに持っていった時に骨の位置がおかしくなってる?

FBX読み込んだ時のインスペクターのプレビューでは問題ないので。




とにかく色んなパターンで吐き出して読み込んで比較するしかないかなー。

これって意外とめんどくさい。。。

コメントしてくれた方ありがとうございます!

遅くなったけど少しだけですがコメ返し。


>ゲームっぽくなったなー

今回とても目指してるところ!素人臭さを消したいです。


>武器のタイプもここで表示されると、配置を考えやすいかもな

これは確かに!

配置する前に武器のタイプ(対空可、攻撃速度、射程距離、複数攻撃)などが分かるようにしたほうがいいなあ。


>この名前んとこにキャラ色を背景に武器画像+Lv表示置くとわかりやすいかもね

キャラの名前のところに顔グラフィックとLvを載せる予定です + 上記の理由からも武器も表示させたい。


>おい!マミさんが余るとか言うなよ!

で、ですよねーw(・∀・;) 杏子xさやか、まどかxほむら、マミx? で、コンボの仕様が後回しになってます。


>むしろあんこだけでよくない あんこ(さやとマミ) さや(まど) マミ(まどとほむ) ほむ(まどマミ) まど(さやマミほむ)

杏子の周りにさやかとマミさん、さやかの周りにまどか みたいな見方かな?

この組み合わせ普通に良いと思った。

まど(さやマミほむ)みたいに複数影響受けるのも良い。

参考にさせていただきます!


>Unity独特な関数や値も多いから、用法からの説明は他言語から来たプログラマも助かるよー

ま、マジですか。お世辞でも嬉しいです。僕はUnityしか知らないから他言語との違いが今一・・・。

ただ、プログラムは用法が大事かなって思ってます。

多少コードが分かれば色んな動作が出来るのに、それをどこに、どのように、どのタイミングでやればそうなるのか。

そのアイデアが浮かばないと手が進まない。。。



次の動画までの目標。

コンボの設定、キャラステータス(ゲーム画面下のメニュー)画像見やすく更新、

そして体験版へ。。