Oblivion: HuD Customize

午前中Gymに出かけてちょっと買い物をして帰宅。帰宅してからCustomisable HUD Componentsであれこれ表示させてみる。

DarNified UIとの組み合わせで、最終的には

HuD_Customized

Oblivion XPのXPとRested XP、それにEncumbranceとReal Sleep、Real Hunger, COBLとFF Real Thirst, COBLのStatusを表示させてみた。

INI Fileを編集するときに気をつけることは、不正な値、というか存在しない変数の参照は行わないという点だろうか。表示することに選んだもののEvaluate StringにTypoや、GlobalかQuest変数かを勘違いして存在しない変数を指定すると、Customisable HUD Componentsが初期化された時点でCTDとなる。後はDivision by ZeroでもCTDがおきる感じ。

このEvaluate StringにScriptが直接かけると、出来ることはずいぶんありそうな感じだけど、今のところは変数の参照と単純な四則演算が出来るくらいで、Condition Statementsはかけないようだ。Condition Statementsが必要になるようなら別にESPを一つ作って、そのScript内で処理をして、その処理済の値を参照する必要があるだろう。

ということで、以下がOblivion XPのXP Barもどきの設定。OriginalのCommentは全て削除してある。HUD1の定義を使っているけれど、値の方だけが重要なので必要なら他のセクションに値だけ設定すればいいだろう。

;==================================================
;HUD 1
;==================================================
set kCHUDC.label1 to sv_Construct “XP: ”
set kCHUDC.container1 to sv_Construct “%zcontainer.png” kCHUDC.stringValue

set kCHUDC.bar1 to sv_Construct “%zblue.jpg” kCHUDC.stringValue
set kCHUDC.evaluateString1 to sv_Construct “ObXPMain.CurrentXP”
set kCHUDC.maxValue1 to sv_Construct “ObXPMain.NeededXP”

set kCHUDC.showValueInLabel1 to 1
set kCHUDC.showCode1 to 1
set kCHUDC.removeWhenZero1 to 0
set kCHUDC.removeWhenFull1 to 0
set kCHUDC.scale1 to 0.44
set kCHUDC.x1 to 260
set kCHUDC.y1 to 1132
set kCHUDC.xContainer1 to 260

set kCHUDC.yContainer1 to kCHUDC.y1 + 15
set kCHUDC.xBar1 to kCHUDC.xContainer1 + 13 * kCHUDC.scale1
set kCHUDC.yBar1 to kCHUDC.yContainer1 + 1 * kCHUDC.scale1
set kCHUDC.xBar1 to Ceil kCHUDC.xBar1
set kCHUDC.yBar1 to Ceil kCHUDC.yBar1
set kCHUDC.opacity1 to 100

緑色の1行目はTitleで、3行目はBarの色の定義だ。Titleの後に値を表示する場合にはUnderlineのひかれた行、上から6行目のshowValueInLavel の値を1にする。ここではXPの現在地を “<current> of <max>”という形で表示したいので、1をセットしてある。

赤で示した2行が、現在値を設定するための evaluateString と、最大値を定義する maxValue になる。現在地には、Oblivion XPのObXPMain.CurrentXPが、最大値には次のLevelに到達するための必要XPである、ObXPMain.NeededXPがセットされる。

青で示した3行は、Positionを定義するもの。ここで指定している値は、解像度1920×1200でDarNified UIを使用したときにこれくらいだと丁度いいかなというPositionだ。解像度が違う場合、あるいは違うUIを使用している場合には、それぞれ調整する必要がある。

;==================================================
;HUD 6
;==================================================
set kCHUDC.label6 to sv_Construct “R.XP: ”
set kCHUDC.container6 to sv_Construct “%zcontainer.png” kCHUDC.stringValue

set kCHUDC.bar6 to sv_Construct “%zpurple.jpg kCHUDC.stringValue
set kCHUDC.evaluateString6 to sv_Construct “ObXPMain.RestedXP”
set kCHUDC.maxValue6 to sv_Construct “8 * ObXPSettings.multXPSleeping * ObXPMain.neededXP”

set kCHUDC.showValueInLabel6 to 1
set kCHUDC.showCode6 to 1
set kCHUDC.removeWhenZero6 to 0
set kCHUDC.removeWhenFull6 to 0
set kCHUDC.scale6 to 0.44
set kCHUDC.x6 to 260
set kCHUDC.y6 to 1162
set kCHUDC.xContainer6 to 260

set kCHUDC.yContainer6 to kCHUDC.y6 + 15
set kCHUDC.xBar6 to kCHUDC.xContainer6 + 13 * kCHUDC.scale6
set kCHUDC.yBar6 to kCHUDC.yContainer6 + 1 * kCHUDC.scale6
set kCHUDC.xBar6 to Ceil kCHUDC.xBar6
set kCHUDC.yBar6 to Ceil kCHUDC.yBar6
set kCHUDC.opacity6 to 100

次にHUD 6を用いて、Rested XPの表示。丁度XP Progress Barの下に来るように位置を設定してある。緑でマークした2行、青でマークした3行と、UnderlineをひいたshowValueInLabelなどの部分はHUD1 (XP Bar)と同じでお好みで調整できる部分。Titleに関しては、Rested XPとそのまま記述すると長くておさまりが悪いので、R.XP: と短くしている。

赤くマークした2行、現在値と最大値の定義は、RestedXPの現在値は、ObXPMain.RestedXPで、この最大値はLevelごとにScaleしているようなので、8 * ObXPSettings.multXPSleeping * ObXPMain.neededXPという演算をここで行わせる必要がある。最初の8というのは睡眠時間で、RestedXPの計算においては8時間睡眠をとると最大値を得られることになる。後はOblivion XPのINI Fileで定義される、ObXPSettings.multXPSleepingと、次のLevelまでに必要なXPとを乗算して、各レベルごとに獲得可能なRestedXPの最大値が求められる。

このCustomisable HUD Components、中々色々設定できて便利かもしれない。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中