2011年10月13日木曜日

AnimationのCrossFadeについてメモ

AssetStoreに無料のアニメーション付きモデルSpartanKingを見つけました
Unity入門を読んでAnimationについて知ったことなので、実際にアニメーション制御スクリプトを書いてみました。

Unity入門読んだ通り、PlayとCrossFadeを試しつつちゃんと再生されてクロスフェードされているのを確認していたところ、問題が起きました。
どうもCrossFadeなのにアニメーションが補間されなくて、飛んでしまいます。
どうやらClampForeverかLoop設定になっていないアニメーションの場合、CrossFadeをしてもアニメーション補間してくれないようです。補間しようにもアニメの再生が終わっていて、CrossFadeを実行しても補間先のアニメはあるけど、補間元のアニメは再生されていないからだと思います。しっかり調べてはいませんが・・・

ということで、CrossFadeしたいアニメの場合はClampForeverかLoop設定にしておくのが無難でしょう。
私は攻撃アニメだからLoop設定しないままスクリプトを書いていて、アレコレ悩みました

Animation.wrapModeについてのReference
http://unity3d.com/support/documentation/ScriptReference/Animation-wrapMode.html

追記(2013/4/24)
ClampForever時にアニメーションが終了フレームかどうかは
if(animation["hoge"].length <= animation["hoge"].time){
  animation.CrossFade("huga");
}
でいいと思います。
lengthがアニメーションの最大長,timeが現在再生アニメの時間なので。
floatなので==よりは<=がいいでしょう。

2011年10月3日月曜日

Editor++の使い方

Unityでプレイボタンを押してゲーム実行中にゲームオブジェクトの値を変更しても
ストップボタンを押したら変更内容は変更前の値に戻ってしまいます

そこで、変更した値を保持するエクステンドのEditor++があります
25$です。1$79円支払いで2000円未満でした

使い方としては、ゲーム実行中に値を変更したオブジェクトを選択した状態で
メニューバーのWindow→Remember,Clipboard,Bactherを開いて

  • Rememberの場合
    • Rememberウィンドウのrememberボタンを押す
    • 値が記録されるので、ゲーム実行を停止
    • Applyボタンを押して記録した変更をオブジェクトに適用

  • Clipboardの場合
    • 選択したオブジェクトのインスペクター上でコンポーネントの名前を右クリック→コピー
    • コピーしたいオブジェクトのコンポーネントに右クリック→ペースト



Batcherはまだ使っていないので、またいずれ

書籍Unity入門を読みました

10/1に発売されたUnity入門 高機能ゲームエンジンによるマルチプラットフォーム開発(著 高橋啓治郎)
を読み終えました

サポートページ http://unity-yb.github.com/

Unityの説明から始まって、段階的に実製作を通して色々な機能の説明がされています。
制作したものをモバイル用に移植する時の説明が特徴だと思います。

私は一人でネット検索しながら色々試作していましたが、知らなかったことが多くて非常に勉強になります。
CGやモデリングのUnity上のワークフローよりかは、Unityエディタとスクリプトの説明が主でした。
今まで制作経験のない人も、ネット検索と英語チュートリアルしてきた人も、読んでみると再発見がありそうです。
このガジェットでエラーが発生しました