日本語

aoisensi.blog

Hell of UE4 C++

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からUPropertyFPropertyに変更になるので情報ほぼ出てこないし

(でもマクロのUPROPERTYとクラスのUPropertyがダブっててググラビリティが増えるのは嬉しい)

疲れた

今日はもう寝る

明日は完成するといいな


前の投稿:

The Sleeping Day

2020年4月29日

aoisensi's blog

RotateLinkImg-iconRotateLinkImg-icon