2023-09-10はじめにEditor拡張でAnimationCurveのプリセット機能を作成しました。その際、Animationウィンドウから情報を引っ張ってくるのに苦戦したので方法をまとめておこうと思います。流れAnimationウィンドウは外部から操作できない仕様ぽかったので、ここを見ながらReflectionを利用してアクセスする形になりました。AnimationWindowから3つの情報を取得できれば自由に操れるのでゴールです。いうところに選択中のキーフレーム情報が保持されているのがわかりました。//Animationウィンドウを取得する。開いてなけれ開き、そのインスタンスを取得する。animEditorProperty.GetValue(animationWindow);//Animationウィンドウ内の情報取得のため、AnimationWindowstateを取得。//この中でキーを処理}ここまででツマッたポイントが2つあります。1カーブウィンドウを開いている場合、selectedKeysが更新されないらしい。animEditor.SwitchBetweenCurvesAndDopesheet()で一度ドープシートを開くことで更新し、もう一度実行しカーブウィンドウに戻すことで解消しました。getSelectionProperty.GetValue(state);//この場合Listとして認識されないので、foreachで回せず要素を取り出すことができない。List<AnimationWindowKeyframe>;//かといって正しい型で取得しようとした場合、AnimationWindowKeyframeへのアクセス権が無くエラーを吐くdynamicで取得してあげたら上手く行きました。AnimationCurveの取得・編集・保存AnimationWindowKeyframeからAnimationCurve、Keyframe、AnimationClipを取得出来るので自由編集してAnimationClipを保存すれば完了です。公式のコードを読み解くだけで一苦労でした...冒頭GifのEditor拡張はこちらです。