AWS Thinkbox Discussion Forums

Asset Tracking

How hard would it be to get PRT paths listed in the Asset Tracking functionality of Max? Its a nice central place to check that paths are UIN before rendering over a network.

+1 on that.

I added it to my plugin, it wasn’t that hard. I only have one path per instance though.

B.

We have had this on the ToDo list for ages, but unfortunately the PRT Loader is a scripted plugin, and AFAIK parameters of scripted plugins cannot be made visible to the Asset Tracker or Asset Manager in an easy way (but I could be wrong).
Our hope was to reimplement PRT Loader as a true C++ plugin for Krakatoa 2.0, but with all the other stuff and me not being part of the project for half of its run, it fell out of scope.
Of course, some of the UI features of the new PRT Loader would have been dropped and it would have been incompatible with old scene files, so it might have been for the better…

So how does the internal plugin know about the filepath(s)? (or anything else for that matter)

In c++: override Animatable::EnumAuxFiles(AssetEnumCallback& nameEnum, DWORD flags) is how you declare assets to ATS.
In MXS you can just add custom dependencies in the ATS directly. (i haven’t tested it myself). ATSCustomDepsOps.AddFile Filename
I could imagine the MXS method orphaning some paths if the nodes were deleted. but cleanup callbackscripts could help here.

Did you end up using the internal paramblock system for your c++ plugins? It could be reasonable to add an array of strings parameter/asset to that internal plugin before going fully c++.

yeah, I would want it.

Maybe then Krakatoa assets tracking system in Krakatoa menu?

This has been solved and you can test it in the RC4 we posted today.

*In Asset Tracker, you can now see all PRT sequences and edit them as regular external references.

*You can also access and modify the paths using the Asset Metadata functions in MAXScript, or 3rd party applications, without opening the scene.

For example, I created a PRT Loader in Max, added 10 partitions and saved as a MAX file.
Then I could access the assets in the file AND MODIFY THEM directly on disk:

[code]scenefilename = @“c:\temp\testAsset.max”
“c:\temp\testAsset.max”
theAssets = getMAXFileAssetMetadata scenefilename
#((AssetMetadata_StructDef assetId:"{AFFC626A-8B94-49BE-96E5-3F5184EED6FB}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part02of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{E8B1C887-2BF2-406A-8A88-2C4111A645F8}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part08of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{90468703-AE03-4129-AEA0-33CC0618D7B1}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part06of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{717DF0D1-B75A-4266-A8E3-2CA5CE4F4B26}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part05of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{69333E68-2AE1-4FB2-9A32-05146EE4F5C9}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part04of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{0D6C7FF7-CCFB-4C47-95ED-28E56B074B2F}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part03of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{B4E2936E-27FF-469E-90C5-2818D6EB3B5E}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part07of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{FF13C1A4-992D-43F9-831C-466BBD93A400}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part10of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{0C809FFA-499A-4448-B545-A43360B5D539}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part09of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{72EB43A9-6935-4B12-864E-DF1B3BC79D92}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part01of10_0000.prt” type:#Other))
print theAssets
(AssetMetadata_StructDef assetId:"{AFFC626A-8B94-49BE-96E5-3F5184EED6FB}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part02of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{E8B1C887-2BF2-406A-8A88-2C4111A645F8}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part08of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{90468703-AE03-4129-AEA0-33CC0618D7B1}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part06of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{717DF0D1-B75A-4266-A8E3-2CA5CE4F4B26}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part05of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{69333E68-2AE1-4FB2-9A32-05146EE4F5C9}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part04of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{0D6C7FF7-CCFB-4C47-95ED-28E56B074B2F}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part03of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{B4E2936E-27FF-469E-90C5-2818D6EB3B5E}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part07of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{FF13C1A4-992D-43F9-831C-466BBD93A400}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part10of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{0C809FFA-499A-4448-B545-A43360B5D539}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part09of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{72EB43A9-6935-4B12-864E-DF1B3BC79D92}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part01of10_0000.prt” type:#Other)
OK

theAssets[1].filename
“C:\Temp\partitions\SmokeTest\smoketest__part02of10_0000.prt”
theAssets[1].filename = “C:\Temp\partitions\SmokeTest\smoketest__part01of10_0000.prt”
“C:\Temp\partitions\SmokeTest\smoketest__part01of10_0000.prt”
setMAXFileAssetMetadata scenefilename theAssets
true
theAssets = getMAXFileAssetMetadata scenefilename
#((AssetMetadata_StructDef assetId:"{AFFC626A-8B94-49BE-96E5-3F5184EED6FB}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part01of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{E8B1C887-2BF2-406A-8A88-2C4111A645F8}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part08of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{90468703-AE03-4129-AEA0-33CC0618D7B1}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part06of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{717DF0D1-B75A-4266-A8E3-2CA5CE4F4B26}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part05of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{69333E68-2AE1-4FB2-9A32-05146EE4F5C9}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part04of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{0D6C7FF7-CCFB-4C47-95ED-28E56B074B2F}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part03of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{B4E2936E-27FF-469E-90C5-2818D6EB3B5E}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part07of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{FF13C1A4-992D-43F9-831C-466BBD93A400}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part10of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{0C809FFA-499A-4448-B545-A43360B5D539}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part09of10_0000.prt” type:#Other), (AssetMetadata_StructDef assetId:"{72EB43A9-6935-4B12-864E-DF1B3BC79D92}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part01of10_0000.prt” type:#Other))
print theAssets
(AssetMetadata_StructDef assetId:"{AFFC626A-8B94-49BE-96E5-3F5184EED6FB}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part01of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{E8B1C887-2BF2-406A-8A88-2C4111A645F8}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part08of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{90468703-AE03-4129-AEA0-33CC0618D7B1}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part06of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{717DF0D1-B75A-4266-A8E3-2CA5CE4F4B26}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part05of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{69333E68-2AE1-4FB2-9A32-05146EE4F5C9}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part04of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{0D6C7FF7-CCFB-4C47-95ED-28E56B074B2F}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part03of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{B4E2936E-27FF-469E-90C5-2818D6EB3B5E}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part07of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{FF13C1A4-992D-43F9-831C-466BBD93A400}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part10of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{0C809FFA-499A-4448-B545-A43360B5D539}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part09of10_0000.prt” type:#Other)
(AssetMetadata_StructDef assetId:"{72EB43A9-6935-4B12-864E-DF1B3BC79D92}" filename:“C:\Temp\partitions\SmokeTest\smoketest__part01of10_0000.prt” type:#Other)
OK[/code]

Thanks Bobo! :slight_smile:

Nice.

Hmm… So Deadline could localize the PRT’s onto the slaves after job submission?

Awesome! THanks as always.

Privacy | Site terms | Cookie preferences