MHWI:HelloWorld显血配置文件注释说明
繁星秘語
编辑于 2021年01月01日 02:02

重新编辑于年末,修改了部分错误,增加了些代码结构的说明,HelloWorld版本大概是10吧

对于整个配置文件来说,将大括号折叠情况下,结构大概为:

代码块
JavaScript
自动换行
复制代码
{
	"bJson":true,//是否以JSON格式保存配置文件
	"bBeep":true,//是否发出警示音
	"bExitOnGameExit":false,//是否随着游戏结束而结束

	"textFormatDefinitions":{...}//文本格式声明,方便引用
	"windowsTimerResolution":{...}//程序计时器解析度
	"overlayWindow":{...}//整个界面的显示设置
	"uiBackGround":{...}//整个界面的背景设置
	"monsterUI":{...}//怪物界面设置
	"endemicLifeUI":{...}//环境生物界面设置
	"teamUI":{...}//团队伤害统计界面设置
	"trainingDummyUI":{...}//木桩伤害统计界面设置
	"damageGraphUI":{...}//DPS统计曲线界面
	"debugUI":{...}//测试界面设置
	"timeUI":{...}//时间界面设置
	"keyBinds":{...}//快捷键设置
	"buffUI":{...}//玩家buff时间界面设置
	"buffs":{...}//各种buff的翻译和颜色设置
	"monsters":{...}//各种怪物的翻译文本和颜色设置,设定怪物部位排序值(值:index)
	"endemics":{...}//各种环境生物的翻译文本和颜色设置,设定哪些为珍稀生物(值:rare)
	"abnormalStatuses":{...}//各种异常状态的翻译文本和颜色设置,可设定异常状态排序值(值:index)
	"colorRandomizer":{...}//颜色随机器设置
	"cheat":{...}//自动输出到聊天窗口的信息设置
}
复制成功

我会按照顺序,对各个大括号内折叠的内容进行说明,可以自行往下翻阅或查找:

代码块
JavaScript
自动换行
复制代码
"textFormatDefinitions"://文本格式声明,方便引用
{
	"standard"://在这里将定义好一组样式,后面的设置中可以直接调用,将该样式应用到相应的设置中
	{
		"font":"Consolas",//所使用字体
		"size":22,//字号大小
		"weight":"bold",//字体粗细,可选"bold","thin","extra light","light","semi light","normal","medium","semi bold","bold","extra bold","black","extra black"
		"style":"normal",//字体样式,可选"normal","oblique","italic"
		"shadow"://阴影参数
		{
			"enable":false,//是否启用阴影
			"offset":[0,0],//偏移
			"lightnessMultiplier":1,//亮度
			"saturationMultiplier":1,//饱和度
			"alphaMultiplier":1//透明度
		}
	},
	//剩下的内容形同,不再赘述
	//需要注意的是,亮度lightness、饱和度saturation、透明度alpha,在后面设置中遇见这些单词,基本上是相应的设置
}
复制成功

代码块
JavaScript
自动换行
复制代码
"windowsTimerResolution"://程序计时器解析度,大概是程序使用内置的计时器时的设置
{
	"enable":false,
	"value":100
},

"overlayWindow"://整个界面的显示设置
{
	"pos":[0,0],
	"size":[1920,1080],
	"zOrder(TopMost|OneLevelAboveGameWindow)":"TopMost",//窗口置顶模式
	"bAutoShrink":false,//自动适应屏幕大小,似乎不起作用?
	"bRendersWhenGameIsInBackground":false,//是否在游戏后台时渲染
	"bRendersWhenInGameCursorVisible":true,//是否在游戏中鼠标可见时渲染
	"delayBetweenFrames":0.1,//帧延迟,影响每秒数据采样次数和每秒渲染帧数
	/* 帧延迟越高,采样频率和帧数越低,占用资源越小。但使用动态显示的界面(比如环境生物),若显血帧数远低于游戏帧数,移动视角时,动态显示位置与游戏内实际位置会因延迟而漂移 */
},

"uiBackGround"://整个界面的背景设置
{
	"enable":false,//不启用则为鼠标穿透,此时无法通过快捷键拖动UI
	"color":"#00000000",//数字前6位为16进制颜色,后2位为透明度参数
	"colorOnMouseOver":"#00000020",//鼠标指向时的界面背景
	"colorOnDrag":"#00000030",//拖动时的窗口背景
	"border":[0,0]//边框
},

//颜色设置采用#00000000这样的方式,前6位为16进制颜色,后2位为透明度参数
复制成功

代码块
JavaScript
自动换行
复制代码
"monsterUI"://怪物界面设置
{
	"enable":true,
	"scale":0.6,//缩放大小
	"textFormats":{...}//文本格式设置,这里将直接调用在前面定义好的样式
	"colors":{...}//颜色设置,颜色值的书写已在前面说过
	"alphaPolynomials"://透明度设置
	{
      //部分界面(比如造成伤害的怪物)程序会定义为高亮,另外的部分则相反,这里可以设置两者间的显示差异
		"nonHighlight":[0.7,0,0],//非高亮界面的透明度
		"highlight":[1,0,0],//高亮界面的透明度
		"changeRate":3//高亮与非高亮间切换动画的速度
	},
	"hueShiftPolynomials":{...}//色调设置,参考上面的透明度设置
	"bDynamicPositioning":false,//是否动态显示在怪物头顶
	"dynamicPositioning"://动态显示设置
	{
		"scalingPolynomials":{...}//动态界面缩放大小,参考上面的透明度设置
		"heightPolynomials":{...}//动态界面相对于怪物的位置,参考上面的透明度设置
		"renderDistanceSmallMonster":{...}//根据与小型怪物的距离区分高亮,参考上面的透明度设置
		"renderDistanceLargeMonster":{...}//根据与大型怪物的距离区分高亮,参考上面的透明度设置
		"offset":[0,0],//偏移
		"bRenderSmallMonsters":false//是否渲染小型怪物
	},
	"staticPositioning"://静态显示设置
	{
		"pos":[650,0],//静态界面位置
		"spacingPolynomials":{...}//怪物界面间的间隔,参考上面的透明度设置
		"heightPolynomials":{...}//怪物界面的位置,参考上面的透明度设置
		"scalingPolynomials":{...}//怪物界面的缩放大小,参考上面的透明度设置
		"bSortByDistance":false,//是否按距离排序怪物
		"speed":2000//排序切换动画速度
	},
	"spacing"://怪物界面内各部件的位置设置
	{
		"alignmentName":"right",//"怪物名称"的对齐方式
		"alignmentAction":"left",
		"name":[-110,4],//此处方框内的是相对坐标,为下个部件(即"action")与该部件("name")的相对坐标,以下类同
		"action":[-130,25],
		...
		"layoutHp"://"HP"部件显示设置,方框内的相对坐标已在前面说明,不再赘述
		{
			"text":[10,0],//"文本"位置
			"value":[350,0],//"数值"位置
			"bar":[0,25],//"血条"位置
			"alignmentText":"left",//"文本"对齐方式
			"alignmentValue":"right"//"数值"对齐方式
		},
		"layoutRage":{...}//"愤怒"部件设置,参考"HP"部件显示设置
		"layoutStamina":{...}//"耐力"部件设置,参考"HP"部件显示设置
		"layoutPart":{...}//"部位"部件设置,参考"HP"部件显示设置,含有单词wound为软化相关的部件设置
		"layoutStatus":{...}//"异常状态"部件设置,参考"HP"部件显示设置
	},
	"animation"://动画效果设置
	{
		"fadeDuration":0,//淡入淡出时间
		"speed":200//动画速度
	},
	"highlight"://将哪些怪物设为高亮显示
	{
		"enable":true,
		"focus"://设为焦点的怪物
		{
			"enable":true,
			"precedence":5//优先级,数字越大,优先级越高
		},
		"lookAt":{...}//游戏视角正对的怪物,参考上面
		"target":{...}//任务目标,参考上面
		"lastDamaged":{...}//最后对其造成伤害的怪物,参考上面
		"onlyMonster":{...}//地图上仅单个怪物,参考上面
	},
	//下面的配置会按照分类,进行一些顺序调整和省略
	"precisionHp":0,//HP数值小数位数
	"precisionHpPercent":0,//HP百分比数值小数位数
	...
	//含有单词precision的为精度设置,参考上面
	//Rage为怪物怒气,Stamina为怪物耐力,Parts为怪物部位,AbnormalStatuses为怪物异常状态
	
	"bRenderAction":false,//是否渲染怪物"动作"
	"bRenderSize":false,//是否渲染怪物"大小"
	"bRenderCrown":true,//是否渲染怪物"金银冠"
	...
	"bRenderNonHighlightedMonstersWhenHighlightedMonsterExists":true,//是否在高亮怪物存在时,渲染非高亮怪物
	"bRenderNonHighlightedMonstersWhenHighlightedMonsterNotExists":true,//是否在高亮怪物不存在时,渲染非高亮怪物
	"bRenderDeadMonsters":false,//是否渲染已死亡怪物,?
	"bRenderInactiveMonsters":false,//是否渲染未出现的怪物,?
	...
	"bRenderAbnormalStatusesLevel":true,//是否渲染异常状态已触发次数
	"bRenderAbnormalStatusesBar":true,//是否渲染"异常状态条"
	"bRenderInactiveAbnormalStatuses":false,//是否渲染未进行过积蓄的异常状态
	"bPlaceActiveStatusesAtTop":true,//是否将活动的异常状态置顶
	...
	"bRenderWoundTimer":true,//是否渲染"软化时间"
	"bRenderWoundTimerBar":false,//是否渲染"软化时间条"
	"bPlaceWoundedPartsAtTop":true,//是否将软化的部位置顶
	//含有bRender为是否渲染相应部件,参考上面,一些单词含义前面已说明

	"statusSorting(TimeSinceLastBuildupIncrementAscending|TimeSinceLastBuildupIncrementDecending|Index|None)":"TimeSinceLastBuildupIncrementAscending",
	//"异常状态"排序方式:按最后产生积蓄值升序排序,按最后产生积蓄值降序排序,按设定值(需后面自定义设置)排序,无
	"partSorting(TimeSinceLastDamagedAscending|TimeSinceLastDamagedDecending|Index|None)":"TimeSinceLastDamagedAscending",
	//"部位"排序方式:按最后造成伤害升序排序,按最后造成伤害降序排序,按设定值(需后面自定义设置)排序,无

	"bRenderUndamagedParts":false,//是否渲染未对其造成过伤害的部位
	"bRenderBothBuildupAndDurationOnEveryEntry":true,//是否同时显示"积蓄值"和"持续时间"
	"bRenderHealthOnNonHighlightedSmallMonster":false,//是否渲染非高亮小型怪物血量
	...
	"bRenderHealthOnNonHighlightedLargeMonster":true,//是否渲染非高亮大型怪物血量
	...

	"healthVisibleDuration":Infinity,//"HP"部件自动隐藏时间,Infinity为不隐藏
	"rageVisibleDuration":Infinity,//"愤怒"部件自动隐藏时间
	"staminaVisibleDuration":Infinity,//"耐力"部件自动隐藏时间
	"partVisibleDuration":Infinity,//"部位"部件自动隐藏时间
	"statusVisibleDuration":Infinity,//"异常状态"部件自动隐藏时间
	"barsHp"://"HP血条"样式设置
	{
		"length":350,//"血条"长度
		"shape":[[0,0],[0,10],[1,10],[1,5],[1,0]],//血条形状,从左至右分别为左上、左下、右下、右中、右上点坐标,X轴一般取值区间0-1
		"offsetBackground":[0,0],//背景偏移
		"backgroundLightnessMultiplier":0.5,//背景亮度
		"backgroundSaturationMultiplier":1,//背景饱和度
		"backgroundAlphaMultiplier":0.5,//背景透明度
		"direction":"right"//血条正值方向
	},
	"barsRage":{...}//"怒气条"样式设置,参考"HP血条"样式设置,此处血条形状为4格点,从左至右分别为左上、左下、右下、右上点
	"barsStamina":{...}//"耐力条"设置,参考"HP血条"样式设置
	"barsParts":{...}//"部位条"设置,参考"HP血条"样式设置
	"barsWound":{...}//"软化条"设置,参考"HP血条"样式设置
	"barsStatus":{...}//"异常状态条"设置,参考"HP血条"样式设置
	"flashEffectCapturable"://可捕获时血条闪动动画
	{
		"amplitude":0.08,//振幅
		"frequency":3,//频率
		"offset":0//偏移
	},
	"flashEffectRaging":{...}//愤怒时怒气条闪动动画,参考上面
	"flashEffectFatigue":{...}//疲劳时,耐力条闪动动画,参考上面
	"flashEffectPartWounded":{...}//软化时,部位条闪动动画,参考上面
	"flashEffectStatusActive":{...}//异常状态时,异常条闪动动画,参考上面
	"textHp":"HP",//一些显示文本
	"textRage":"愤怒值",
	...
},

//怪物界面设置到此结束,新涉及的缩放scale、位置pos、色调hueShift、高亮highlight、动画animation等含义请自行参考
复制成功

代码块
JavaScript
自动换行
复制代码
"endemicLifeUI"://环境生物界面设置,很多设置说明将省略,因为前面已描述过
{
	"enable":true,
	"scale":0.6,
	"textFormats":{...}
	"bRenderInactiveEndemicLife":false,//是否渲染未出现的环境生物,?
	"bRenderSize":false,//是否渲染"大小"
	"bRenderCrown":true,//是否渲染"金银冠"
	"bRenderEndemicLifeNotRareOrCrowned":false,
	//是否渲染非珍稀、非金冠的环境生物
	//将此项设为false则只显示金冠环境生物,因为所有环境生物默认都不是珍稀,需在后面自定义设置
	"animation":{...}//动画效果,参考怪物界面"animation"设置
	"highlight":{...}//高亮设置,参考怪物界面"highlight"设置
	"scalingPolynomials":{...}//界面缩放设置,参考怪物界面相应设置
	"alphaPolynomials":{...}//透明度设置,参考怪物界面相应设置
	"heightPolynomials":{...}//动态界面相对于环境生物的位置,参考怪物界面的动态界面设置
	"hueShiftPolynomials":{...}//色调设置,参考怪物界面相应设置
	"renderDistance":{...}//根据与环境生物的距离区分高亮,参考怪物界面相应设置
	"colorName":"#AAFFBBE5",{...}//一些颜色和文本设置
	...
},

"teamUI"://团队伤害界面设置,很多设置说明将省略,因为前面已描述过
{
	"enable":true,
	"pos":[420,850],//团队伤害界面位置
	"scale":0.7,
	"textFormats":{...}
	"spacingPlayer":[0,30],//多个玩家条目间隔
	"offsetRanks":[0,0],//"玩家等级"位置
	"offsetName":[60,0],//"玩家名称"位置
	"offsetDmg":[220,0],//"伤害值"位置
	"offsetBar":[0,25],//"伤害条"位置
	"alignmentRanks":"left",//"玩家等级"对齐方式
	"alignmentName":"left",//"玩家名称"对齐方式
	"alignmentDmg":"left",//"伤害值"对齐方式
	"precisionDmgPercent":2,//"伤害百分比"小数位数
	"precisionDps":2,//"DPS"小数位数,?
	"bRenderHunterRank":false,//是否渲染"玩家等级"
	"bRenderMasterRank":true,//是否渲染"玩家大师等级"
	"bRenderDmg":true,//是否渲染"伤害值"
	"bRenderDmgPercent":true,//是否渲染"伤害百分比"
	"bRenderDmgPercentBar":false,//是否渲染"伤害百分比条"
	"bRenderTeamWhenTotalDmgIs0":false,//是否在团队伤害为0时渲染
	"bar":{...}//血条样式设置,参考怪物界面"HP血条"样式设置
	"colors":{...}//颜色设置
	"animation":{...}//动画效果,参考怪物界面"animation"设置
},
复制成功

代码块
JavaScript
自动换行
复制代码
"trainingDummyUI"://木桩伤害统计界面设置,很多设置说明将省略,因为前面已描述过
{
	"enable":false,
	"pos":[890,1050],
	"textFormats":{...}
	"spacingTextEntries":[100,0],//各项统计文本的间隔
	"scale":0.8,
	"precisionDps":2,//dps小数点位数
	"bEnableOutsideTrainingArea":true,//是否在非训练场区域启用
	"resetTime":60,//木桩伤害统计重置时间设置
	"colorDmg":"#FFFFFFE5",//总伤害数字颜色
	"colorDps":"#FFFFFFE5"
},

"damageGraphUI"://DPS统计曲线界面,很多设置说明将省略,因为前面已描述过
{
	"enable":false,
	"pos":[950,1050],
	"scale":0.6,
	"textFormats":{...}
	"height":-250,//高度
	"width":-800,//宽度
	"visibleDuration":200,//自动隐藏时间
	"animation":{...}//动画效果,参考怪物界面"animation"设置
	"textOffset":[0,0],//文本位置,?
	"minTextSpacing":20,//文本最小间隔,?
	"precisionDps":1,
	"sources"://对不同来源的伤害进行区分设置
	{
		"trainingDummy"://对木桩的伤害
		{
			"enable":true,
			"color":"#A3F4AEE5",//颜色
			"strokeWidth":3//线条粗细
		},
		"player":{...}//玩家造成的伤害,参考上面
		"teamate0":{...}//队友0造成的伤害,参考上面
		"teamate1":{...}//队友1造成的伤害,参考上面
		"teamate2":{...}//队友2造成的伤害,参考上面
	},
	"bHidesTrainingDummyGraphWhenPlayerDamageIsActive":true,//是否在玩家伤害活动时隐藏木桩伤害统计,?
	"dpsMeasurement":{...}//dps采样输出参数,不太懂
	"axisHorizontal":{...}//水平轴设置,shape为形状设置,有点奇怪没研究
	"axisVertical":{...}//垂直轴设置,shape为形状设置,有点奇怪没研究
},

"debugUI":{...}//测试界面设置,一般不使用,设置说明前面也已描述过
复制成功

代码块
JavaScript
自动换行
复制代码
"timeUI"://时间界面设置,很多设置说明将省略,因为前面已描述过
{
	"enable":false,
	"pos":[100,30],
	"scale":0.7,
	"textFormats":{...}
	"bDilationCorrection":true,//采样膨胀系数,用于解决时间不正确的问题,不太懂
	"colorHours":"#FFFFFFE5",//"小时"颜色
	"colorColonMinutes":"#FFFFFFE5",//分钟前"冒号"颜色
	"colorMinutes":"#00FF00E5",//"分钟"颜色
	"colorColonSeconds":"#00FF00E5",//秒钟前"冒号"颜色
	"colorSeconds":"#00DDDDE5",//"秒钟"颜色
	"colorColonMilliseconds":"#00DDDDE5",//毫秒前"冒号"颜色
	"colorMilliseconds":"#BBBBFFE5",//"毫秒"颜色
	"bEnableAtNonCombatArea":false,//是否在非战斗区域启用
	"animation":{...}//动画效果,参考怪物界面"animation"设置
	"dilationMeasurement":{...}//膨胀系数设置,不太懂啊
},

"keyBinds":{...}//快捷键设置,自己看着调了

"buffUI"://玩家buff时间界面设置,很多设置说明将省略,因为前面已描述过
{
	"enable":true,
	"pos":[1630,200],
	"scale":0.6,
	"textFormats":{...}
	"spacing":[0,30],//多个buff条目间隔
	"nameOffset":[0,0],//"buff名称"位置
	"timerOffset"://"时间数值"位置
	{
		"enable":true,
		"offset":[180,0]//X,Y偏移值
	},
	"barOffset":[0,26],//"时间条"位置
	"animation":{...}//动画设置,参考怪物界面"animation"设置
	"alignmentName":"left",//"buff名称"对齐方式
	"alignmentTimer":"left",//"时间数值"对齐方式
	"dilationMeasurement":{...}//膨胀系数设置,不太懂啊
	"bRenderDilationFactor":false,//是否使用膨胀系数,用于解决buff持续时间不正确的问题
	"bRenderBars":false,//是否渲染"时间条"
	"precisionTimer":1,//"时间数值"小数位数
	"precisionTimeDilation":2,//"时间膨胀系数"小数位数
	"sortPrecedenceDuration":2,//按剩余时间排序(默认降序)优先级
	"sortPrecedenceTimeActivated":1,//按激活顺序排序(默认降序)优先级
	"bSortByDurationAscending":true,//是否按剩余时间升序排序
	"bSortByTimeActivatedAscending":false,//是否按激活顺序升序排序
	"bHideAtNonCombatArea":true,//是否在非战斗区域隐藏
	"bDynamicBarFractionScaling":false,//"时间条"是否动态比例缩放
	"bar":{...}//"时间条"设置,参考怪物界面"HP血条"样式设置
},
复制成功

代码块
JavaScript
自动换行
复制代码
//下面几项内容不再展开说明,大多数已在前面说明过
"buffs":{...}
"monsters":{...}
"endemics":{...}
"abnormalStatuses":{...}
"colorRandomizer":{...}

"cheat"://自动输出到聊天窗口的信息设置
{
	"enable":true,
	"layeredArmor":{...}//设置外观ID,通过快捷键更改角色外观,需切换地图,不太好用
	"message"://输出的信息设置
	{
		"monsterInfo"://怪物信息
		{
			"bSendMonsterHp":true,//是否输出怪物HP值
			...//类比同上,单词含义大多数前面已说明,参考怪物界面设置
		},
		"teamInfo"://团队伤害信息
		{
			"bExcludeSelf":false,//是否将自己排除
			"format":["@Name"," 造成了 ","@Damage"," (","@Damage%",") 伤害"]//输出格式设置
		}
	}
}
复制成功

HelloWorld作者更新版本会经常变动或添加一些设置项的名称,这或许是他的习惯吧,不过对于使用和维护者来说,可能就是一场灾难了。

我仅是留下些笔记,仅供参考。

——————————End——————————