• 締切済み

Unityでアニメーションできない

Blenderで作成した3DモデルをPrefabにしてUnityでアニメーションしようとしたところ、 以下のエラーが出てうまくアニメーションできません。 エラー: The animation state WalkTest could not be played because it couldn't be found! Please attach an animation clip with the name 'walkTest' or call this function only for existing animations. 問題となったモデルは、Inspector>Rig>Animation TypeをLegacyにしています。 また、Inspector>Animationsでは、「WalkTest」アニメーションクリップがきちんと認識されています。 しかも、Previewではアニメーションが正常に再生されます。 PrefabのほうにAnimationコンポーネントを追加して、AnimationsプロパティのElementとしてWalkTestを設定する、 public animation.AddClipでスクリプトから動的に、外部から設定したクリップを追加する、の 2つの方法を試しましたが、状況は変わりません。 アニメーションの再生スクリプトは、以下のとおりです。 3Dモデルに関連付けたスクリプトのStartメソッドに書いています。 Startメソッドにはただこの一行しかありません。 animation.Play("WalkTest"); ためしにUpdateメソッドに移してみましたが、案の定同じエラーが出ました。 Unity初心者で、Unityでアニメーションを再生できた経験もなく、設定が全くわからないので 皆様の心温かいアドバイスが有ればと思います。 宜しくお願いいたします。

みんなの回答

回答No.1

私もなったことがありますが、おそらくクリップでのアニメーション名とスクリプト内でのアニメーション名が違うかと思われます。 質問で気になったのは、 animation.Play("WalkTest");と エラー文の'walkTest'です。 頭文字が大文字小文字と違うのでエラーが出ているかと

takaki6211
質問者

お礼

名前を変えても直りませんでしたが 思い切ってPrefabを最初から作りなおしたら上手く動きました。 御返事を頂き、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • [Objective-C]アニメーション

    Xcode 4.5.2を使用して、Objective-CでiPhoneアプリの開発を行っています。 UIView(viewAとします)のsubViewとして 3つのUIButton(btn1, btn2, btn3とします)を配置し、 「animateWithDuration:delay:options:animations:completion:」メソッドを使用して viewAごと移動させるアニメーションを実行しようとしています。 btn1~btn3のタップイベントを実装したいのですが アニメーション実行中はbtn1~btn3のタップイベントが受け付けられません。 「animateWithDuration:delay:options:animations:completion:」メソッドの「option:」に 「UIViewAnimationOptionAllowUserInteraction」を指定してみたのですが それでもだめです。 原因が分かる方、いらっしゃいましたら教えていただけないでしょうか? 初歩的な質問で申し訳ありません。。 (ソース) ※画面はstoryboardで作成しています。 //アニメーション設定 [UIView animateWithDuration:5.0f delay:0.5 options:UIViewAnimationOptionCurveLinear |UIViewAnimationOptionAllowUserInteraction animations:^{ //移動 [self.viewA setFrame:CGRectMake(0, 330, 320, 60)]; } completion:^(BOOL finished) { //処理 } ];

  • Unityの敵接触イベント

    Unityで、敵が接触したときにゲームオーバーになるスクリプトを書きたいです。・・が、ググってもヤフっても、よくわからないです・・ 自分の名前は「Player」、敵の名前は工事のおっさんの「3rd Person Controller」です。 ゲームオーバーになると、操作が不能になり、ゲームオーバーまたはYourDiedと文字が出てきて、数秒するとスタート位置に戻り最初からはじまる、というスクリプトを書いてくれる方いませんか・・ついでにいうと、起動してすぐスタート位置に戻ります。 C#か、Javascriptで書いてほしいです・・ 一応自分でわけわからなく書いてCS1525エラー起こったソースを張ります。こぴぺを凄く使ったので、意味不明のソースだと思いますが・・ using UnityEngine; using System.Collections; void OnGUI(){ public class TextLabel : MonoBehaviour { private void OnTriggerEnter(Collider other) { GUI.Label(new Rect(20,20,100,50),"Your Died...") } } }

  • Flashでアニメーションとサウンドを違うタイミングでループさせたい

    こんばんは! Flash8を使ってHPにアップするSWFファイルを作成しています。 アニメーションもサウンドもループ再生させたいのですが、アニメーションの長さとサウンドの長さが違いうまくループさせることができません。 アニメーションは56秒、サウンドは1分48秒という感じです。 さらに、サウンドはON・OFFで音が制御できるようになっています。 下記のスクリプトで挑戦してみたのですが、ON・OFFを押すたび音が増えて輪唱のように何重にも重なって聞こえてきます。 「ON・OFFムービークリップ1フレーム目」 stop(); _root.soundA = new Sound(); _root.soundA.attachSound("00000.mp3"); _root.soundA.start(0,999); 「シーンにおいたON・OFFムービークリップ」 on (release) { if (_root.soundA.getVolume()>0) { _root.soundA.setVolume(0); _root.on_off.gotoAndStop("soundoff"); trace(_root.soundA.getVolume()); } else if (_root.soundA.getVolume()<=0) { _root.soundA.setVolume(100); _root.on_off.gotoAndStop("soundon"); } } 質問内容がわかりにくいかもしれませんが、ご回答よろしくお願いします。

  • Gifアニメーションをクリックで開始するには?

    やりたいことは、PowerPoint2007上で、マウスをクリックをした後に、Gifアニメーションを開始して、1回だけ再生した後に、そのまま停止していて欲しいのです。 また、アニメーションは、必ず最初のフレームから再生する必要があります。 ところが、普通に挿入すると、勝手に再生が始まってしまいますし、アニメーションの設定で、クリック時に現れるようにすると、途中のフレームから始まってしまっています。 また、Gifアニメーションは、PhotoShop付属のImageReadyで作成し、1度だけ再生されるようにしていて、Windowsビューアなどで見ても1度しか再生されないことを確認しているのですが、PowerPoint2007に貼り付けると何度でも繰り返して再生されてしまいます。 Microsoftのホームページを調べてみたのですが、解決できませんでした。具体的には、まず 「アニメーション GIF が再生されない」 (http://office.microsoft.com/ja-jp/powerpoint/HP011496781041.aspx) のページにある、「[表示] メニューの [プレビューとプロパティ] 」が、どこにあるのかが分かりません。 また 「プレゼンテーション内にビデオを追加、再生する」 (http://office.microsoft.com/ja-jp/powerpoint/HA012303111041.aspx?pid=CH101956311041#3) のページにあるようなビデオツールタブも、出てこないのでどうしたらよいのか分かりません。

  • AviUtiのキャラ素材アニメーション効果

    Windows7です。 下記URLのやり方でAviUtlの「script」フォルダに@キャラ素材.anmファイルをコピーしました。AviUtil拡張編集画面にテキストオブジェクトを貼り付け文字AAAを入力後「アニメーション効果」---「アイテム1@キャラ素材」指定しましたがメイン画面に再生しても変化ありません。画像オブジェクトでも同じです。 設定に誤りあるのでしょうか? (URLに出てくる”小道具”の画像をどこかに登録する必要あるのでしょうか?) キャラ素材スクリプト http://aviutl.info/kyarasozai-script22/

  • Flash フレームを指定してムービークリップ再生

    ActionScript超初心者です。 よろしくお願いします。 ステージ上にボタン「A」「B」「C」を配置、 ボタン脇のスペースにムービークリップを配置、各ボタンで切り替え再生させたいと思っています。 2フレーム目に簡単なアニメーションのムービークリップ「animA」を、 3フレーム目に同様の「animB」4フレーム目に「animC」を配置し、 各ボタンon (release)で各ムービークリップの再生をしたいのですが うまくいきません。 どこにどのようなスクリプトを書けば良いか教えていただけないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 【アプリケーションの追加と削除】がエラーで見れない

    アプリケーションの追加と削除を開こうとするとスクリプトエラーが出て表示されません。 スクリプトエラーの内容は Access is denied to:res://~ オブジェクトでサポートされていないプロパティまたはメソッドです と表示されます。 こんなことは初めてなのでどうすればいいか全くわかりません。 どうすればいいのでしょうか?

  • FLASH5で、ボタンにロールアウト時にもアニメーションさせたい

    FLASH5を使用しているのですが、ボタンにマウスのロールオーバーで アニメーションを設定することはできますが、ロールアウトしたときにも アニメーションを設定したい場合、どのような方法があるか教えていただきたいです。 今私が作りたいのは「何もないところにロールオーバーするとボタンがゆっくり表示され、 ロールアウトするとゆっくり消える」というものです。 現時点では、私はムービークリップの中にボタンを入れ、最初のフレームで フレームアクションに stop (); を設定し、そこに配置してあるボタン(ここでは、透明なボタン)に on (rollOver) { play (); } で次のフレームに行くようにし、そこでロールオーバー時のアニメーション(ゆっくりボタンが現れる) を作成して、止めたいところでフレームアクションに stop (); を設定し、その停止時に配置してあるボタン(表示されている可視状態)に on (rollOut) { play (); } を設定し、その次のフレームからはロールアウト時のアニメーション(ゆっくりボタンが消える) を作成しています。 これだと、動作はするのですが メニュー等のようにボタン(この場合はボタンを含んだ ムービーですね)を隣接させて複数置いた場合などに on (rollOut) { play (); } のスクリプトがうまく効かず、他のボタンにロールオーバーしているにも関わらず前にロールオーバーした ボタンがそのままの状態(ボタンが消えず表示されたままの状態)で残ってしまいます。 tellTargetとifを使用するのかな?とも考えたのですがよくわからず困っています、、、、 長文で申し訳ないのですが、よろしくお願いします。

  • 【AS3】ムービークリップからステージへアクセスできません

    はじめまして。FlashでAction Script3.0を勉強し始めたばかりの初心者です。 実は、AS3でどうしても不明な部分があり この度問い合わせさせていただいております。 AS2では_rootでステージにあるムービークリップにアクセスできたかと思うのですがAS3では代わりのものはあるのでしょうか。 現在ステージ上にいくつかムービークリップを置いて、 それぞれのムービークリップ最後のタイムラインに、 「root.gotoandPlay("scene1")」というように記述して、 ステージにもどり、そのフレーム名から始めたいのですが(この場合、scene1というステージ上のフレームから再生させたい) 「未定義である可能性のgotoAndPlayメソッドを静的型flash.display:DisplayObjectContainerの参照を使用して呼び出しました」というエラーになってしまいます。 外部クラスなどは使用しておらず、 ライブラリに格納してあるムービークリップをステージに配置し、 初めのムービークリップを再生したら、次のムービークリップを再生、、というふうに順々に表示させていきたいのですが・・ アドバイスをいただけると大変助かります!! よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • スライダーでオブジェクト変数の値を変更するには?

    JavaScript スライダーでオブジェクト変数の値を変更するには? <div id="wrap"> <div class="target">○</div> <div class="target">○</div> <div class="target">○</div> </div> <div>delay : <input type="range" id="delay_slider" min="0" max="100" value="0" step="10"> <span id="delay_slider_span">0</span> </div> <script> //全ての対象要素を取得して配列に変換 const targets = Array.from(document.querySelectorAll('#wrap .target')); const animations = []; //生成アニメーションの格納配列 //取得した要素にアニメーションを設定 targets.forEach((target, i) => { const animation = target.animate( [ { transform: 'translateX(0px)'}, { transform: 'translateX(60px)'}, ], { duration: 500, fill: 'forwards', delay: 0, endDelay: 0 } ); animation.cancel(); animations.push(animation); }); </script> スライダー要素を動かして、 オブジェクト変数の値「delay」を変更するためには どういうコードで実現できますか? くわしい方のお力添えをお待ちしております。