読者です 読者をやめる 読者になる 読者になる

RのSkyrim Mod開発日記

SkyrimのMod開発を中心に、備忘録などを載せていきます。

RSkyrimLogViwer - 4 - 描画処理をさらに改造する

前回、エラー情報などは背景色を赤くするなど書式変更をできるようにしました。
しかしながら、背景色は文字列がある範囲のみで、1行に適用されないことが気に入りませんでした。

記憶では、Draw処理をオーバーライドするなどで、必要な部分のみ追加で描画を加えれば、背景色を1行にすることができるのではと思っていましたので、やることにしました。
実装についての詳細は次の記事をご覧ください。

次のようにエラー情報の部分の文字列は背景色が適用されていますが、後ろの方は白いままです。
f:id:rrryutaro:20161221120609p:plain

これが、次のようになりました。
f:id:rrryutaro:20161221154240p:plain

既にDrawされた状態に上書きする形でDrawしていることになりますので、文字列がある部分などには対応できません。
例えば、行番号をDrawしたいとなると、無理が出てきます。あらかじめその分をRtf側でインデントしておくなどそれっぽく実現できるかもしれませんが、スクロールさせた場合などはダメでしょう。
また、WM_PAINTが頻発した場合、無駄処理や無駄描画があると描画が遅れるため、いまひとつな感じになるかと思います。

とりあえず、テキストエリアの表示はここまでにしておこうかと思います。

後は、次のようなことをしたいとは思っています。

  • @HTML などのキーワードがあった場合、以降の文字列をHTML形式で扱う(WebBrowserコントロールを利用するなどで)

例えば、Mod側のスクリプトでTrace用の関数を作成し、Actorを受け取ったら、そのActorの情報をhtml形式で出力し、RSkyrimLogViewerで、HTML表示するなどです。
ある時点でのプレイヤーの各種情報を、自分で見やすいように定義して確認するといったことを想定しています。

ログ表示上で対象のファイル名をクリックしてファイルを開くことができれば、確認がしやすいかと思います。

  • 特定キーワードを発見したら指定のプログラムを実行する

イデア次第でなんでもできるかと思います。そんなの必要かといった思いもありますが、なんとなく思いついたので。

もっとも、そういったことの前にソースコードを見直したり、プロパティ化して設定変更で変えられるようにしたりなどの対処が必要そうです。

ともかくも、これで自作Modの確認はしやすくなったと思うので、そろそろ本来のMod開発に戻ってもかと思います。

ツールの動作の様子を撮影してみました。
www.youtube.com

実際のSkyrimでの画面は次のような感じです。(※別々で撮影しているためまったく同じではありませんが同じような操作をしています)
www.youtube.com


以上

次回(まだです。 2016/12/21 現在)
前回
RSkyrimLogViwer - 3 - 書式設定機能の実装 - RのSkyrim Mod開発日記