いつもお世話になっております。
表題の件なんですが任意のセクションに対してC++からキーを追加するにはどうすれば良いのでしょうか?
4.18ではセクション(Vector,Float)にキーを追加する関数が定義されていてそれを呼んでいたのですが。
現行バージョンですと チャンネル にあるようで、こちらを呼べば良いのかと思ったのですが。
チャンネルの取得が読み取り(const)専用でしか持ってこれない様なので質問をさせていただきました。
お手数をおかけしますが、ご教授のほどよろしくお願い致します。
お世話になっております。
こちらの件に関しましてはご指摘の通りチャンネルという単位での扱いに変更されています。
キーの追加に関しましては以下でUI上でキーの追加を行っている箇所がありますので、
こちらを参考にして頂けると良いかと思います。
.\release-4.21\Engine\Source\Editor\Sequencer\Private\SKeyNavigationButtons.h
FReply OnAddKeyClicked()
Floatの場合ですと以下関数によって実際の追加を行っています。
.\release-4.21\Engine\Source\Runtime\MovieScene\Private\Channels\MovieSceneFloatChannel.cpp
FKeyHandle AddKeyToChannel(…)
上記箇所をご確認頂けますと幸いです。
よろしくお願いいたします。
回答ありがとうございます。
4.18で行っていたキー追加の手順なんですが、 ULevelSequence → UMovieSceneXXXTrack → UMovieSceneXXXSection の AddKeyを呼び出す
上記の様にしていまして。今回教えて頂いた箇所はFSequencerDisplayNode からスタートしており、初手から躓いてしまっています。
この構造体へはどの様にアクセスしていけば、良いのでしょうか?
また、可能であれば4.18で行っていた流れで ULevelSequence から最終的にキーを追加したいのですが難しいのでしょうか。
お世話になっております。
本件返信が遅くなり申し訳ございません。
UMovieSceneXXXTrackまで取れているのであれば、
以下の実装が分かりやすいかもしれません。
TrackからSectionを取得し、ChannelProxyからChannelにアクセスを行いSetDefaultを行っています。
(こちらでAddConstantKeyなども実行できるかと思います)
.\Engine\Plugins\MovieScene\LevelSequenceEditor\Source\LevelSequenceEditor\Private\Misc\LevelSequenceEditorActorSpawner.cpp
こちらをご確認頂けますと幸いです。
よろしくお願いいたします。
教えて頂いた箇所を参考にコードを修正した所、期待したキーが打たれる事を確認できました。
ありがとうございました。