It is currently April 20th, 2024, 12:33 pm

Transformers Rainmeter Skin [by SparkShredder]

Get help with creating, editing & fixing problems with skins
SparkShredder
Posts: 50
Joined: November 17th, 2017, 12:00 pm

Re: Transformers Rainmeter Skin [by SparkShredder]

Post by SparkShredder »

A few are remaining to add, and many to Modify.
But the Base of the Skin is ready! :thumbup:
:D
Cybertron_BETA_13OCT18.rmskin
This File has 2 variants:
1.start-up animation
2.Main Skin(start-up skin embedded)

But, the start-up animation in main skin looks slower than one in other file.
Maybe because of my Low Hardware specifications, this puts load on CPU when whole skin comes together.
Please try, and tell how it feels like.
You can read the code and suggest how to make it more CPU friendly.

with Regards.

Update: I've confirmed, the slowing in animation due to CPU being all occupied
You do not have the required permissions to view the files attached to this post.
User avatar
balala
Rainmeter Sage
Posts: 16148
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Transformers Rainmeter Skin [by SparkShredder]

Post by balala »

SparkShredder wrote:Please try, and tell how it feels like.
You can read the code and suggest how to make it more CPU friendly.
It definitely works, but I have a few comments. These are not too important and don't have major impacts any of them, but I have to say them:
  • The higher CPU usage is due to the low Update value. Probably nothing you can do here.
  • Don't use the AntiAlias=1 option into the [Rainmeter] section. This option belongs to meters, not to the [Rainmeter] section.
  • Although the Author option once belonged to [Rainmeter] section, it is deprecated there and now it should have to be used into [Metadata]. You have added it into both sections. Remove it from [Rainmeter].
  • The #@# variable includes the last backslash and you don't have to use it. You have such extra signs for example in the @include option of the [Variables] section: @include=#@#[color=#FF0000]\[/color]Cybertron.inc. More precisely, this option should have to be @include=#@#Cybertron.inc (details in PS here).
  • The quotes are not needed around Text, String or any other options, even if they contain spaces. For example the String option of the [Damage1] measure has to be not String=[color=#FF0000]"[/color]Inspecting Damage Taken[color=#FF0000]"[/color], but rather String=Inspecting Damage Taken. Details: https://forum.rainmeter.net/viewtopic.php?p=137628#p137628
SparkShredder
Posts: 50
Joined: November 17th, 2017, 12:00 pm

Re: Transformers Rainmeter Skin [by SparkShredder]

Post by SparkShredder »

Thanks!,
I've tried to use UpdateDivider wherever it's possible.
For the " " , I use custom UDL for Rainmeter files in NP++, and putting strings in " " gives it better Highlights.
If there's ANY error which can be caused by using it, I'll surely remove it off.
Screenshot (52).png
Screenshot (51).png
Quick Questions:
1) Do Paused measures with DynamicVariables=1 consume CPU?
2) Do Hidden meters consume CPU, especially if DynamicVariables=1
3) Do meter have exact same Update Rate as their Measures do?
Like Meter with a Measure having UpdateDivider=-1, will only be drawn once skin is loaded, or will redrawn every normal Update cycle?
You do not have the required permissions to view the files attached to this post.
User avatar
balala
Rainmeter Sage
Posts: 16148
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Transformers Rainmeter Skin [by SparkShredder]

Post by balala »

SparkShredder wrote: October 14th, 2018, 5:37 am1) Do Paused measures with DynamicVariables=1 consume CPU?
I'm not exactly sure and probably here a developer will be needed to reply, but I think it does, even if is paused. I'd say that if it is disabled it doesn't, but if just paused, probably yes.
SparkShredder wrote: October 14th, 2018, 5:37 am2) Do Hidden meters consume CPU, especially if DynamicVariables=1
Same as above. Not sure...
SparkShredder wrote: October 14th, 2018, 5:37 am3) Do meter have exact same Update Rate as their Measures do?
Like Meter with a Measure having UpdateDivider=-1, will only be drawn once skin is loaded, or will redrawn every normal Update cycle?
I suppose you're talking not about UpdateRate (which can be used only on WebParser and Ping plugin measures), rather about UpdateDivider, right?
If I'm right, no, at all. Each measure and each meter has its own UpdateDivider (if non is specifically set, the default UpdateDivider=1 is used) and a meter doesn't follow in update the associated measure (not even if it has one).
Some details about these options: https://docs.rainmeter.net/tips/update-guide/
User avatar
Mor3bane
Posts: 943
Joined: May 7th, 2016, 7:32 am

Re: Transformers Rainmeter Skin [by SparkShredder]

Post by Mor3bane »

I have noticed a few things that eat CPU in rainmeter - even if meters or measures are paused;
Counters - or calc measures - they continue to calc or count even when their children are paused.
Resizing images, e.g. using a 500 x 500 px image for a 50x50px button or similar.
A lot of skins in the same suite, where most of them would be running (ok obvious but still...)
Using the same image or animation many times simultaneously
complex calc measures in general - especially for visualisers

there's more but these are what I have learnt from chopping away at things that eat CPU.

appearance vs performance - tough to balance :)
My DevArt Gallery

There are many ways to be different - there is only one way to be yourself - be amazing at it

The law of averages says what it means; even if you get everything right, you will get something wrong. Therefore; self managing error trapping initiates another set of averages - amongst the errors, some of them will not be errors, instead those instances will appear to be "luck". One cannot complain of the 'appearance' of 'infinite regress of causation', even if it does not have a predictable pattern, only that it requires luck to achieve.
User avatar
balala
Rainmeter Sage
Posts: 16148
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Transformers Rainmeter Skin [by SparkShredder]

Post by balala »

Mor3bane wrote: October 15th, 2018, 8:40 am Counters - or calc measures - they continue to calc or count even when their children are paused.
The Calc measures don't have parent - child structure. They simply don't have child measures. :confused:
Mor3bane wrote: October 15th, 2018, 8:40 am Resizing images, e.g. using a 500 x 500 px image for a 50x50px button or similar.
Yes, resizing images is an expensive operation within Rainmeter.
Mor3bane wrote: October 15th, 2018, 8:40 am complex calc measures in general - especially for visualisers
The visualizer skins, by definition, are consuming a lot of resources, because their Update is by default very low (usually around the lowest possible 16, or just a bit above). As more measures a such skin have, as more the CPU usage increses.
User avatar
Mor3bane
Posts: 943
Joined: May 7th, 2016, 7:32 am

Re: Transformers Rainmeter Skin [by SparkShredder]

Post by Mor3bane »

balala wrote: October 15th, 2018, 9:38 am The Calc measures don't have parent - child structure. They simply don't have child measures. :confused:
I meant to refer to the meter/measure the counter or calc measure was being used by. :oops:
My DevArt Gallery

There are many ways to be different - there is only one way to be yourself - be amazing at it

The law of averages says what it means; even if you get everything right, you will get something wrong. Therefore; self managing error trapping initiates another set of averages - amongst the errors, some of them will not be errors, instead those instances will appear to be "luck". One cannot complain of the 'appearance' of 'infinite regress of causation', even if it does not have a predictable pattern, only that it requires luck to achieve.
SparkShredder
Posts: 50
Joined: November 17th, 2017, 12:00 pm

Re: Transformers Rainmeter Skin [by SparkShredder]

Post by SparkShredder »

Let's Hope, a DEV can solve these mysteries, sooner.
User avatar
balala
Rainmeter Sage
Posts: 16148
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Transformers Rainmeter Skin [by SparkShredder]

Post by balala »

Mor3bane wrote: October 15th, 2018, 9:45 pm I meant to refer to the meter/measure the counter or calc measure was being used by. :oops:
Just the measures can be paused, the meters not.
SparkShredder
Posts: 50
Joined: November 17th, 2017, 12:00 pm

Re: Transformers Rainmeter Skin [by SparkShredder]

Post by SparkShredder »

Okay, I made a small change which made skin to consume less half the CPU it used to be. Changed
[Rainmeter]
Update=100

to
Update=1000
Changed UpdateDividers accordingly, to keep frequency of Updates same.
I did so because I was heavily using UpdateDivider=10, Updatedivider=20 etc. So to make it simple, i changed total update frequency.
But there are some few Measures, notably [ActionTimer] one used to co-ordinate start-up animation which need less than 1000 update rate.
Can I explicitly use Update=100 on separate measure. Or is there a trick with updatedivider, or
A script for the purpose?
Can DynamicVariables solve it?

Code: Select all

[ActionTimer]
Measure=Calc
Formula=ActionTimer+1
IfCondition=(ActionTimer = 10)
IfTrueAction=[!ShowMeter Online]
IfCondition2=(ActionTimer = 14)
IfTrueAction2=[!SetOption Online MeterStyle "IntroHead"][!ShowMeter Insignia0][!ShowMeter DamageStats]
IfCondition3=(ActionTimer = 16)
IfTrueAction3=[!SetOption DamageStats MeasureName "Damage1a"]
IfCondition4=(ActionTimer = 20)
IfTrueAction4=[!SetOption DamageStats MeasureName "Damage1b"]
IfCondition5=(ActionTimer = 24)
IfTrueAction5=[!SetOption DamageStats MeasureName "Damage1c"]
IfCondition6=(ActionTimer = 28)
IfTrueAction6=[!SetOption DamageStats MeasureName "Damage1d"]
IfCondition7=(ActionTimer = 32)
IfTrueAction7=[!SetOption DamageStats MeasureName "Damage1e"]
IfCondition8=(ActionTimer = 36)
IfTrueAction8=[!SetOption DamageStats MeasureName "Damage1f"]
IfCondition9=(ActionTimer = 40)
IfTrueAction9=[!SetOption DamageStats MeasureName "Damage2"][!SetOption DamageStats MeterStyle "IntroStyle1"][!SetOption DamageStats Y "255"]
IfCondition10=(ActionTimer = 41)
IfTrueAction10=[!SetOption DamageStats1 MeterStyle "IntroStyle1a"][!ShowMeter DamageStats1]
IfCondition11=(ActionTimer = 42)
IfTrueAction11=[!SetOption DamageStats2 MeterStyle "IntroStyle1a"][!ShowMeter DamageStats2]
IfCondition12=(ActionTimer = 43)
IfTrueAction12=[!SetOption DamageStats3 MeterStyle "IntroStyle1a"][!ShowMeter DamageStats3]
IfCondition13=(ActionTimer = 44)
IfTrueAction13=[!SetOption DamageStats4 MeterStyle "IntroStyle1a"][!ShowMeter DamageStats4][!ShowMeter Location]
IfCondition14=(ActionTimer = 45)
IfTrueAction14=[!SetOption DamageStats5 MeterStyle "IntroStyle1a"][!ShowMeter DamageStats5]
IfCondition15=(ActionTimer = 46)
IfTrueAction15=[!HideMeter DamageStats5]
IfCondition16=(ActionTimer = 47)
IfTrueAction16=[!HideMeter DamageStats4]
IfCondition17=(ActionTimer = 48)
IfTrueAction17=[!HideMeter DamageStats3][!SetOption Location MeasureName "Location1a"]
IfCondition18=(ActionTimer = 49)
IfTrueAction18=[!HideMeter DamageStats2]
IfCondition19=(ActionTimer = 50)
IfTrueAction19=[!HideMeter DamageStats1][!ShowMeter Navigation][!SetOption Navigation MeterStyle "IntroStyle1"]
IfCondition20=(ActionTimer = 52)
IfTrueAction20=[!SetOption Location MeasureName "Location1b"]
IfCondition21=(ActionTimer = 56)
IfTrueAction21=[!SetOption Location MeasureName "Location2"][!SetOption Location MeterStyle "IntroStyle1"][!ShowMeter ComLinks]
IfCondition22=(ActionTimer = 60)
IfTrueAction22=[!SetOption ComLinks MeasureName "ComLink1a"]
IfCondition23=(ActionTimer = 65)
IfTrueAction23=[!SetOption ComLinks MeasureName "ComLink2"][!SetOption ComLinks MeterStyle "IntroStyle1"][!ShowMeter BattleStats]
IfCondition24=(ActionTimer = 70)
IfTrueAction24=[!SetOption BattleStats MeasureName "Battle1a"]
IfCondition25=(ActionTimer = 75)
IfTrueAction25=[!SetOption BattleStats MeasureName "Battle2"][!SetOption BattleStats MeterStyle "IntroStyle1"][!ShowMeter EnergonStats]
IfCondition26=(ActionTimer = 80)
IfTrueAction26=[!SetOption EnergonStats MeasureName "Energon1a"]
IfCondition27=(ActionTimer = 85)
IfTrueAction27=[!SetOption EnergonStats MeasureName "Energon2"][!SetOption EnergonStats MeterStyle "IntroStyle1"][!ShowMeter WeaponStats]
IfCondition28=(ActionTimer = 90)
IfTrueAction28=[!SetOption WeaponStats MeasureName "Weapon1a"]
IfCondition29=(ActionTimer = 95)
IfTrueAction29=[!SetOption WeaponStats MeasureName "Weapon2"][!SetOption WeaponStats MeterStyle "IntroStyle1"][!ShowMeter HQLocate]
IfCondition30=(ActionTimer = 100)
IfTrueAction30=[!SetOption HQLocate MeasureName "HQ1a"]
IfCondition31=(ActionTimer = 105)
IfTrueAction31=[!SetOption HQLocate MeasureName "HQ2"][!SetOption HQLocate MeterStyle "IntroStyle1"][!ShowMeter GroundBridge]
IfCondition32=(ActionTimer = 110)
IfTrueAction32=[!SetOption GroundBridge MeasureName "Ground1a"][!ShowMeter CLF][!SetOption CLF MeterStyle "IntroStyle1"]
IfCondition33=(ActionTimer = 115)
IfTrueAction33=[!SetOption GroundBridge MeasureName "Ground2"][!SetOption GroundBridge MeterStyle "IntroStyle1"][!SetOption DamageStats FontColor "#color1#"]
IfCondition34=(ActionTimer = 120)
IfTrueAction34=[!HideMeter DamageStats][!SetOption Navigation FontColor "#color1#"][!CommandMeasure Fade Activate(Out)]
IfCondition35=(ActionTimer = 123)
IfTrueAction35=[!HideMeter Navigation][!SetOption Location FontColor "#color1#"]
IfCondition36=(ActionTimer = 126)
IfTrueAction36=[!HideMeter Location][!SetOption ComLinks FontColor "#color1#"]
IfCondition37=(ActionTimer = 129)
IfTrueAction37=[!HideMeter ComLinks][!SetOption BattleStats FontColor "#color1#"]
IfCondition38=(ActionTimer = 132)
IfTrueAction38=[!HideMeter BattleStats][!SetOption EnergonStats FontColor "#color1#"]
IfCondition39=(ActionTimer = 135)
IfTrueAction39=[!HideMeter EnergonStats][!SetOption WeaponStats FontColor "#color1#"]
IfCondition40=(ActionTimer = 138)
IfTrueAction40=[!HideMeter WeaponStats][!SetOption HQLocate FontColor "#color1#"]
IfCondition41=(ActionTimer = 141)
IfTrueAction41=[!HideMeter HQLocate][!SetOption CLF FontColor "#color1#"]
IfCondition42=(ActionTimer = 144)
IfTrueAction42=[!HideMeter CLF][!SetOption GroundBridge FontColor "#color1#"]
IfCondition43=(ActionTimer = 147)
IfTrueAction43=[!HideMeter GroundBridge][!HideMeter ONLINE][!HideMeter Insignia0][!ShowMeter ROLLOUT]
IfCondition44=(ActionTimer = 152)
IfTrueAction44=[!HideMeter ROLLOUT][!SetOption BangOutH InvertMeasure "1"][!EnableMeasure BangOutH]
IfCondition45=(ActionTimer = 162)
IfTrueAction45=[!EnableMeasure move00][!PauseMeasure ActionTimer]
This is the ActionTimer I'm talking about, which makes start-up animation about 17 sec long when Update=100.