Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Made UUID show mod for cool viewer. Need to figure out how to get .ANIM from cache.
#1
Brick 
SHORT:

I figured out how to make coolvl viewer show UUIDs for animations in the avatar inventory, regardless of permissions.

I now want to know how to get a specific animation UUID from cache. "SLCachedb2" didn't work with coolvl viewer or firestorm. Is it obsolete now?



LONG:

Today I started modifiying the cool viewer to get animation UUIDs (It was my own animation that had a permission bug, and it was just an excuse to learn to code).


So I changed this in the "llinventorybridge.cpp" file.   around line 575 I commending out     ||       and          /(isItemPermissive() || gAgent.isGodlike()))       

=====
    if (show_asset_id)
            {
                // OK-isocamera get uuid
                items.push_back(std::string("Copy Asset UUID"));
                if (not_first_selected_item)                                                     // ||
                                                                                                             //!(isItemPermissive() || gAgent.isGodlike()))
                {
                    disabled_items.push_back(std::string("Copy Asset UUID"));
                }
                need_separator = true;
            }
=====

This made my day as I was able to get the UUID of my animation back.

Then I wanted to download it to have the BVH of it again (not that I needed it, I'm a huge nerd and wanted to see if I could hide data in the non-significant digits for making a modified viewer do tricks. I need to verify how much rounding error there is for that purpose).

This is where I tried "SLCachedb2" which didn't work with coolvl viewer or firestorm. Is it obsolete now? Did SL change the cache format or location??



P.S.: feel free to point me at a thousand better methods to do this. I will be happy to learn them. However I'm a huge nerd and will be coding my own stuff anyhow!
Reply
#2
(12-09-2017, 03:16 PM)JabbaDeHatt Wrote: Guests cannot see links in the messages. Please register to forum by clicking here to see links.SHORT:

I figured out how to make coolvl viewer show UUIDs for animations in the avatar inventory, regardless of permissions.

I now want to know how to get a specific animation UUID from cache. "SLCachedb2" didn't work with coolvl viewer or firestorm. Is it obsolete now?



LONG:

Today I started modifiying the cool viewer to get animation UUIDs (It was my own animation that had a permission bug, and it was just an excuse to learn to code).


So I changed this in the "llinventorybridge.cpp" file.   around line 575 I commending out     ||       and          /(isItemPermissive() || gAgent.isGodlike()))       

=====
    if (show_asset_id)
            {
                // OK-isocamera get uuid
                items.push_back(std::string("Copy Asset UUID"));
                if (not_first_selected_item)                                                     // ||
                                                                                                             //!(isItemPermissive() || gAgent.isGodlike()))
                {
                    disabled_items.push_back(std::string("Copy Asset UUID"));
                }
                need_separator = true;
            }
=====

This made my day as I was able to get the UUID of my animation back.

Then I wanted to download it to have the BVH of it again (not that I needed it, I'm a huge nerd and wanted to see if I could hide data in the non-significant digits for making a modified viewer do tricks. I need to verify how much rounding error there is for that purpose).

This is where I tried "SLCachedb2" which didn't work with coolvl viewer or firestorm. Is it obsolete now? Did SL change the cache format or location??



P.S.: feel free to point me at a thousand better methods to do this. I will be happy to learn them. However I'm a huge nerd and will be coding my own stuff anyhow!

Animation files (in Linden format) are stored locally in the cache files, located at the root of the cache's texture. Cache files contain, in addition to animations, other files as well. These include the sounds, meshes (.slm) and many others.

    data.db2.x.*
    index.db2.x.*

index.db2.x.* contains n record of 34 bytes

     0  -  3    Offset
     4  -  5    Magic No.
     6  -  7    Flags
     8  - 11    time
    12  - 27    UUID
    28  - 29    Type
    30  - 33    Size

animations records are of Type = 20

animations file content start at <Offset> in the file data.db2.x.*  and is <Size> bytes long.
    
    
If you know the UUID of the animation, then look in the index file for the record that has the same UUID, verify that the type is 20.
Open the data file and take <Size> bytes starting from <Offset>.
You got the animation file in .anim format

I hope this can help
Reply
#3
(12-09-2017, 03:16 PM)JabbaDeHatt Wrote: Guests cannot see links in the messages. Please register to forum by clicking here to see links.SHORT:

I figured out how to make coolvl viewer show UUIDs for animations in the avatar inventory, regardless of permissions.

I now want to know how to get a specific animation UUID from cache. "SLCachedb2" didn't work with coolvl viewer or firestorm. Is it obsolete now?



LONG:

Today I started modifiying the cool viewer to get animation UUIDs (It was my own animation that had a permission bug, and it was just an excuse to learn to code).


So I changed this in the "llinventorybridge.cpp" file.   around line 575 I commending out     ||       and          /(isItemPermissive() || gAgent.isGodlike()))       

=====
    if (show_asset_id)
            {
                // OK-isocamera get uuid
                items.push_back(std::string("Copy Asset UUID"));
                if (not_first_selected_item)                                                     // ||
                                                                                                             //!(isItemPermissive() || gAgent.isGodlike()))
                {
                    disabled_items.push_back(std::string("Copy Asset UUID"));
                }
                need_separator = true;
            }
=====

This made my day as I was able to get the UUID of my animation back.

Then I wanted to download it to have the BVH of it again (not that I needed it, I'm a huge nerd and wanted to see if I could hide data in the non-significant digits for making a modified viewer do tricks. I need to verify how much rounding error there is for that purpose).

This is where I tried "SLCachedb2" which didn't work with coolvl viewer or firestorm. Is it obsolete now? Did SL change the cache format or location??



P.S.: feel free to point me at a thousand better methods to do this. I will be happy to learn them. However I'm a huge nerd and will be coding my own stuff anyhow!

maybe this will help

Guests cannot see links in the messages. Please register to forum by clicking here to see links.
Guests cannot see links in the messages. Please register to forum by clicking here to see links.



[Image: 10ifb54.png]


Reply
#4
SHORT:

I now managed to get BVH files out of the cache. Method provided in the LONG part.

I now need a method to export rigged mesh (I already made non-rigged mesh exportable by commenting out more permission checks in the viewer code).
(I'm not afraid to get my hands dirty and code what is missing, if no solution is known by this forum, but of course I check for a known solution first?)

LONG:


Guests cannot see links in the messages. Please register to forum by clicking here to see links.
Guests cannot see links in the messages. Please register to forum by clicking here to see links.

These worked! Their SLCachedb2 failed where other versions I have of SLCachedb2 failed thru bugs, cool viewer incompatibility, or lack of documentation on required steps.

Missing manual for their version of SLCachedb2:
-don't mind the black-on-black of the dates, it's just a graphical glitch. You can still click on them to change them and you'll be able to see while doing it (typically set "yesterday and tomorrow" for getting whichever animations are cerent).
-You're expected to put SLCachedb2 where these 2 files are, or vice versa:
   data.db2.x.*
   index.db2.x.*
-The "UUID list" method from the other version of SLCachedb2 is not supported.
-The output is BVH files, not ANIM files. A few of them may have been uploaded as ANIM files using a modified viewer for extra features, these extra features may or may not be lost in the conversion to BVH.
Reply
#5
(12-12-2017, 01:42 AM)JabbaDeHatt Wrote: Guests cannot see links in the messages. Please register to forum by clicking here to see links.SHORT:

I now managed to get BVH files out of the cache. Method provided in the LONG part.

I now need a method to export rigged mesh (I already made non-rigged mesh exportable by commenting out more permission checks in the viewer code).
(I'm not afraid to get my hands dirty and code what is missing, if no solution is known by this forum, but of course I check for a known solution first?)

LONG:


Guests cannot see links in the messages. Please register to forum by clicking here to see links.
Guests cannot see links in the messages. Please register to forum by clicking here to see links.

These worked! Their SLCachedb2 failed where other versions I have of SLCachedb2 failed thru bugs, cool viewer incompatibility, or lack of documentation on required steps.

Missing manual for their version of SLCachedb2:
-don't mind the black-on-black of the dates, it's just a graphical glitch. You can still click on them to change them and you'll be able to see while doing it (typically set "yesterday and tomorrow" for getting whichever animations are cerent).
-You're expected to put SLCachedb2 where these 2 files are, or vice versa:
   data.db2.x.*
   index.db2.x.*
-The "UUID list" method from the other version of SLCachedb2 is not supported.
-The output is BVH files, not ANIM files. A few of them may have been uploaded as ANIM files using a modified viewer for extra features, these extra features may or may not be lost in the conversion to BVH.

The links I gave You are uploaded by Gina43

The same Gina made several tools for us

Including one for exporting rigged mesh including the rigging

She shared that tool in the VIP section.



[Image: 10ifb54.png]


Reply
#6
I expect to get a tool that get the job done, but do I get source code for it too? I'd like to integrate it into a viewer I'm making for my own project.
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  Development Environment On Windows for latest Singularity Viewer Fransico 5 422 01-25-2017, 07:47 AM
Last Post: C.Nails
  Cross Compile Viewer for Windows From Linux Possible? Fransico 1 216 01-25-2017, 05:51 AM
Last Post: Deziree
  KDU 7.2.1 for viewer compilers Official 10 2,020 01-24-2017, 08:37 PM
Last Post: Fransico
  Guide to compile a source viewer adding some features. arseniolupin123 16 2,075 04-22-2014, 03:16 AM
Last Post: Hacktaz123
  Viewer Source Code for Grids Spoton3d Avination TheDon 1 523 01-08-2014, 06:23 AM
Last Post: nooggnik
  Request: Zen Viewer source code dtr125 1 391 02-15-2013, 05:57 PM
Last Post: Sahulat
Tongue KDU 6.4 source code for compiling with Viewer 2 Based clients Tester 6 948 12-28-2012, 10:31 AM
Last Post: Tester
  How to pull a viewer out of visual...Help. nooneimportant 2 539 03-01-2011, 03:41 AM
Last Post: nooneimportant
  [Help] Problem with Snow Storm Viewer sirmajor 11 856 11-25-2010, 10:48 AM
Last Post: sirmajor
  [Help] Register Activation for viewer sirmajor 0 371 10-10-2010, 07:43 AM
Last Post: sirmajor



Users browsing this thread: 1 Guest(s)