2020年4月26日 • ☕️ 2 min read
SourceEngineにAimmatrixという仕組みがある
10フレームのアニメーションにそれぞれ
左下、下、右下、左、正面、右、左上、上、右上、真上
の方向を向いたポーズを割り当てて、色んな方向にエイムしてるときのブレンドポーズのソースにするというものだ
アニメーションデータはこんな感じ
(早すぎてフレームレートが追いつかなかったので手でシークバーを動かしてる)
これをUE4のAimOffsetにするのはそんなに難しくない
ここに書いてあるとおりにすれば簡単にできる
ただしすべてのアセットで10回コピーして10回リネームし、18回フレームを削除し、新しくAimOffsetを作って10回割り当てるのはめんどくさい
しかも、TF2のAimmatrixは
9(クラス) x 3(武器の種類) x 4(姿勢) = 108 個もある
実際にはスパイとエンジニアは武器の種類がもういくつかあるのでそれ以上
しかも、後々新しい武器を追加していくとなると更に50個以上は増える
これは自動化しなくては
ということで最初はPythonでやろうとしたのだが使いたいAPIがサポートしてないので断念
断念したのが3週間くらい前
そして最近になって数年ぶりのC++でプラグインを書くことにした
今日はかなりいい線まで行ったが結局完成には至らなかった
今日の成果はこれ
なぜかアセットは完成するが一旦アセットをコンテンツブラウザから開き、一度何かの値を再割り当てしないと正常に表示されない…
一日中コード書いてたのに完成しなかった…
特にリフレクションをいじらないといけないのが辛かった
UE4 Reflection
で検索してもReflection Environment
ばっかり出てくるし…
Preview版のUE4.25で書いてて、4.25からUProperty
がFProperty
に変更になるので情報ほぼ出てこないし
(でもマクロのUPROPERTY
とクラスのUProperty
がダブっててググラビリティが増えるのは嬉しい)
疲れた
今日はもう寝る
明日は完成するといいな