フォーカスしたオブジェクトにアウトラインを表示させ、Eキーを押すと開くという形に落ち着いた。
アウトライン用のマテリアルを用意してポストプロセスでブレンド、プレイヤーのカメラからライントレースを飛ばして接触したアクターにブループリントメッセージを送り、カスタムデプスをレンダーしてメッシュのアウトラインを光らせたのはいいものの、そのままだとアウトラインが付いたままになるので、ライントレースが外れたアクターのアウトラインをどうやって消すかで試行錯誤することになった。
答えはクッソ簡単な処理で落ち着いた。ブループリントインターフェースの最後にカスタムイベントを挟み、0.1秒のディレイ入れてからカスタムデプスを外す。イメージ的にはフォーカスしたオブジェクトのアウトラインを0.1秒だけ付けて、消すという感じですかね。イベント駆動だし、そんなに負荷もかからんだろうということで。
引き出しの移動はタイムラインを使用。まずBegin Playでベクター変数に初期位置を記録させ、プレイヤーから引き出しにOpenのメッセージが届いたらタイムラインの秒だけ移動させるという感じに。
FlipFlopで一回目は引き出し、二回目はリバースでしまう。FlipFlopの前にはDoOnce入れて、タイムラインがFinishedするまでは実行を受け付けない形に。こうしておかないとEキー連打すると中途半端な位置で止まったりするからね、しょうがないね。
メガテクスチャよりも柔軟な感じですね。DXT1やBC5よりも60%以上圧縮できるのはすごすぎるんだよなぁ…。UE4でTGAをインポートするとベースカラーはDXT1、ノーマルはBC5に圧縮され、2Kのベースカラーが2.7MB、ノーマルが5.5MBになる。これが60%削減できるなら4Kや8Kを使えたり、あるいは10GBのゲームが4GBになるわけですごすぎるんだよなぁ…。
HDDの容量はもうほとんど気にしないけどDLの容量はやっぱ小さい方がいいわけで。容量が少ないわりにグラフィックゴイスーなやつはなかなかヤルジャナイ!(KNN)ってなるわけで。40GBのゲームとかデカスギィ!ってやっぱなるわけで。
Graniteは1年590ドル、永久ライセンスが890ドルとなかなか高価だけど、インディーライセンスの要望が多く、それに応えるから待っててくれよなー頼むよーってCEOのおじさんが言ってるから1万、2万くらいなら考えたいですねぇ…。