初学者です。よろしくお願いいたします!
UE4 指定範囲内にActorを配置するBP - PaperSloth’s diary
https://papersloth.hatenablog.com/entry/2017/07/05/000907
[UE4] Construction Script と Instanced Static Mesh - Qiita
以上の記事を参考にして、ラインダンス的な表現をしたいと思っております。
コンストラクションスクリプトでアクターのみを配置したブループリントを並べている状況です。
ですが、ゲームモードではダンスが再生されるのですが、シーケンサー再生時にキャラクターのアニメーションアセットが再生されません。
コンストラクションスクリプトは負荷が高くデフォルトでは表示されない様になっている
という記事も見つかりました。
ですので、クラス設定内の「Run Construction Script in Sequencer」をチェックすることと、シーケンサー再生ボタンプルダウンの「コンストラクションスクリプトを再実行」にチェックを入れているのですが再生されません…。
シーケンサー内で、コンストラクションスクリプトで制御しているキャラクターアニメーションが再生できるように設定をするにはどうしたら良いかご存じの方いらっしゃいませんでしょうか?
一応シミュレーション状態にしてから、シーケンサーを再生するとアニメーションは動いてシーケンサーのカメラアニメーションも動くのですが何か違いますよねこれ…。
また、こういう表現は別の方法で表現するなという知識をお持ちの方がいらっしゃったら、お知恵をお借りしたいです。よろしくお願いいたします!
nasvic
(nasvic)
November 28, 2020, 1:21am
2
応急的なアニメーションアセットの再生法として、コンストラクションスクリプト上の「Child Actor Componentを追加」を「Skeletal Mesh Componentを追加」ノードに変更してみて、そちらのノード上でアニメーションアセットを設定してみるのはいかがでしょうか(写真参照)。
コンストラクションスクリプトの処理を追加したスポーン用アクタBPをレベルに配置して、スポーン用アクタBPのイベントグラフ側でプレイ開始時に指定のシーケンサーを再生させる処理を追加しました。
エディタでプレイしてみましたが、私の環境では指定したアニメーションアセット(ジャンプモーション)がループ再生されていました(写真では確認のためシーケンサーでスポーン用アクタBPのZ位置トランスフォームもアニメーションさせています)。
T_Sumisaki
(T_Sumisaki)
November 28, 2020, 12:56am
3
まず大きな誤解があるので、それを解決しましょう
一応シミュレーション状態にしてから、シーケンサーを再生するとアニメーションは動いてシーケンサーのカメラアニメーションも動くのですが何か違いますよねこれ…。
違いません。それが正常です
AnimationをConstructionScriptで流している、と思われているようですが、Animationの実行が行われるのは基本的にTickのタイミングです
つまりTickが動いている状態…つまりSimulateかPlayの状態でないとAnimationの実行は行われません
SequencerでSkeletalMeshに直接Animationを流している場合は、SequencerがAnimationのFrameを指定するため、実行時でなくともプレビューはできますが、これはActorがAnimationを再生するのとは仕組みが違うためです
最終的にカットシーンや動画にする際は、必ずSimuration状態になります
Simulationせずに再生するのはあくまでもプレビューであると考えておきましょう
RunConstructionScriptInSequencer
を使えば、確かにSequencerのタイムラインが動けばConstructionScriptが再実行されますが、その再実行される内容は大量のChildActorを生成し直しているだけです
Editorの動作が重くなるのでやめたほうが良いでしょう
試していただいてありがとうございます!
ブループリントをネスト的に使わなくても表現出来るって事ですね!
教えていただいた様にBP組み直して、イベントグラフをネットを参考に組んでみました。
プレイボタンを押すとUEが落ちてしまいます。間違っているんでしょうけど、原因が分かりません…。nasvic様はどの様にイベントグラフを組まれているのか見せていただく事は可能でしょうか?
nasvic
(nasvic)
November 28, 2020, 5:01pm
6
アクタBPからシーケンサーを再生するノードの組み方は貼っていただいたスクショと全く同一でした。
シーケンサーの再生はレベルBPからでもアクタBPからでも違いは無いので、扱いやすい方で組んでいただいて大丈夫かと思います。
私の環境ではそもそも質問者様の最初の状態(スケルタルメッシュを配置したBPをChild Actor Compornentで追加)でもシーケンサー上で全てのスケルタルメッシュのアニメーションが問題なく再生されていました…。
ひとまずサードパーソンテンプレートのスケルタルメッシュやアニメーションアセットで再度BPを設定しシーケンサーも再度新規作成して不具合が起こらないか確認し、問題なければそのBPを複製して自前のモデルとアニメーションアセットに差し替えるなど、問題の切り分けを試みてみるのが良いかと思います。
もう一度サードパーソンから作り直して、マネキンだけでやってみたのですがシーケンサーのカメラ上で動かす事が出来ません。nasvic様の「spawn-animation4.png」の画像はゲームプレイ時の画像でしょうか?この状態でシーケンサーでカメラアニメーションを付けてカメラ内の「ビューポートをカメラカットにロック」した状態でもマネキンのジャンプアニメーションは再生されるのでしょうか?もともと、ゲームプレイ時にはブループリントをネストした状態でも再生は出来ていたのですが、シーケンサー内のカメラにロックした時にアニメーションが動かなくなってしまうのです。
恐縮ですが説明しづらいので動画を撮ってみました。シネマティックビューポートのプレイボタンとゲームのプレイボタンが別の意味なんだと理解が足らず申し訳ありません。T_Sumisaki様にも言われた様に大きな誤解がありそうです…。
最終目的としてはシネマティックやシーケンサーのプレイボタンを押すだけでコンストラクションスクリプトのアニメーションも再生させ、シーケンサーメインでアニメーションを作って行きたいのですが、うまく動かすことができません。
[サンプル動画][1]
T_Sumisaki
(T_Sumisaki)
November 30, 2020, 3:30pm
8
どうしてもConstructionScriptで並べてPreviewしたいようなので、MasterPoseを使ったやり方を提示しておきます
なお、 RunConstructionScriptInSequencer
はOffにしておきましょう
必要ないです
サンプルありがとうございます!描画の負荷が高いという記事は見つかっていたのですが、初心者なため回避方法を見つけられずにいたので大変助かります!後ほど検証してみます。
自分の検索能力ですと、機械的・規則的にキャラクタを配置するという表現をコンストラクションスクリプトでやっている記事しか探せませんでした。
T_Sumisaki様的にコンストラクションスクリプトを使わないでキャラクタをグリッド状に簡単に配置する表現はどの様に実装するのでしょうか?後学のために教えていただけると幸いです!
Animation in Unreal Engine: Adding Life to Your Story | Webinar
こちらを見てやっと理解できました!
基本BPはシーケンサーのプレイで再生されないんですね…。
シミュレーションボタンだけ押してもカメラのアニメが見れないし、シーケンサーのプレイボタンだけ押してもアクターのアニメが止まっちゃうしと悩んでいましたが、普通だったんですね。
nasvic様にご教授いただたBP入れ子にしないが記事の組み方より直感的だと思いますので使っていこうと思います。複合的な使い方の知識の無さでご迷惑おかけしましたが、大変助かりました!ありがとうございました!これからもよろしくお願いいたします。