Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
A Unified Master Library for your Objects & Textures
#1
A question often heard around here is "so what are you going to do with the body?" and "why would anyone think that's inappropriate?"

Heard less often but of greater relevance to users is the question "How can I make it more easy to manage my objects and textures between the multiple computers I have FrameForge installed on?"

Related to that question is a problem that our OSX users face when upgrading to a new version: "How do I migrate all of my objects and textures from my old installation to my new version's installation?"

My hope is that this post will lay out how you can easily manage your objects and textures with multiple computers by creating a master unified library of your obejcts and textures. Doing so allows you to work on your previz projects from multiple computers without having to worry if your laptop has all the same objects as your workstation, for example. It can also make upgrading to new versions of FrameForge without needing to reinstall your expansion packs or migrating objects & textures you created & imported while using your previous version. It can also make it easier to collaborate with colleagues without running into those "FrameForge is unable to locate object X" error messages when you open a previz file your partner created with objects you lack in your object library.

A Unified Master Object & Texture Library
[Image: DJx85bI.png]
Background details to be aware of
If you install FrameForge Previz, version 3, 3.5 or 3.6, on a PC running a modern variant of Windows (7, 8, 8.1 or 10) all of the objects and textures that are installed by default, by expansion pack or a custom created imported object end up in this directory:
Code: Select all
Code:
C:\ProgramData\FrameForge Previz Studio

If you install FrameForge Previz, version 3, 3.5 or 3.6, on a Mac running a modern variant of OSX all of the objects and textures that are installed by default, by expansion pack or a custom created imported object end up in a sub-directory labelled "FrameForge Previz Studio Support" located in the FrameForge application directory. For example, if I decided during the install that FrameForge should only be accessible to my user account then the path to the directory containing all of those items would be:
Code: Select all
Code:
/Users/Support/Applications/FrameForge Previz Studio 3.6/FrameForge Previz Studio Support

Regardless of your choice of operating system, this directory contain sub-directories that are pretty self explanatory:
* Object Library - contains all of your installed the 3d models (labelled simply "Library" on a PC)
* Texture Library - contains all of the textures needed by the various installed 3d models (labelled simply "textures" on a PC)

You may have more items than just these 2 but these are the ones this post focuses on.

You can open a File Explorer window (PC) or a Finder window (Mac) directly to these locations from within FrameForge by going to the Tools drop down menu and hovering your mouse of Manage Support Folders. This will expand the options to display "Object Library" or "Texture Library" and clicking either one will open up your computer's default file navigation program at that location. This is an easy way to confirm just where your installation's library is located on your computer.

The Concept - Cloud Based Library Backup and File Sync
You are probably familiar with the idea on this one but I'll spell it out for those who are not. Cloud based file backup and sync is a service that has been around for a number of years now. It's basically a method for ensuring that files in two or more locations are updated via certain rules. In some cases, depending on the provider of the service, the data is backed up and retrievable if lost locally.
[Image: VEQJ1BA.jpg]
So if I have a laptop, a tablet and an office workstation all running some kind of file syncing software and I make a change to a file while working on my laptop, the syncing software will update the file of the same name located on my tablet and office workstation to reflect that change.

I imagine that you can see where this is all leading: use a file syncing service so that my laptop, tablet and office workstation all have access to the same Object & Texture library. Therefore, any changes to an object or newly imported custom objects or textures that I accomplish while at the office are immediately available to me when I'm working at home on my laptop.

Service Providers
There are any number of options out there that range from free to...the opposite of free. Some commercial providers offer a free plan of some kind which are limited in terms of overall capacity and maximum file size. A few of the big names include DropBox, Box Sync, Google Drive and Mega. Most companies will offer much greater capacity on a paid account, of course. You can find a list of file sync software and service providers on this wikipage:
https://en.wikipedia.org/wiki/Comparison...n_software
Who or what you choose is up to you. All have their own pros and cons, advocates and detractors. For the example I am going to use the Google Drive free service which offers more than enough capacity at 15GB.

Implementation on a PC
It all sounds pretty straightforward so far but there can be a few issues that many don't see coming. One of those hurdles is that some of the bigger providers don't give you a lot of choice in terms of where the directory to be synced is located in your file system. For example, in order to use Google Drive (and most other services) you have to download and install a utility which does the monitoring and syncing of files. This utility creates a directory called Google Drive in the root of my user account's home directory:
Code: Select all
Code:
C:\Users\<my user account name>\Google Drive

Anything I want sync'd between my computers I can just stick in this directory. This presents a problem though because the Google Drive utility doesn't let you change this location and, as already mentioned, the FrameForge Object and Textures libraries are located elsewhere. If I move them from their default location to the sync directory, when I launch FrameForge I won't have any objects or textures because FrameForge won't be able to find them. So how can I sync them? If we can't change the sync location, lets change where FrameForge looks for its Object & Texture libraries, specifically the Google Drive sync directory

Instructions for Microsoft Windows Vista through 10.
The process is incredibly simple. In summary, all you have to do is copy the object and texture libraries from their default location to wherever your sync directory location is located and then create a shortcut in the FrameForge program directory called Library that points there. I'll detail individual steps below and just to be clear, in this example I am working on a computer running Windows 8.1 Pro, FrameForge version build 18 and the file sync provider is Google Drive. The same steps work with FrameForge version 3.5 and Windows Vista, 7 or 10.
* Assuming you have FrameForge version 3.5 and the Google Drive utility installed and running, navigate to the following location:
Code: Select all
Code:
C:\ProgramData\FrameForge Previz Studio

* You should see a handful of directories, one being "Objects" and another being "textures". These are the important one but we are going to grab it all so perform a "select-all" (CTRL+A) and copy these items to your clipboard (CTRL+C).
* Now you should navigate to the Google Drive sync directory which should be here:
Code: Select all
Code:
%HOMEPATH%\Google Drive

or if the sight of a Windows environment variable path makes your eyes cross:
Code: Select all
Code:
C:\Users\<whatever your user account name is>\Google Drive

* I think it wise to create a sub-directory specifically for these items here. You can name it the same as the default "FrameForge Previz Studio" if you like. I named mine "ObjectLib" You could name yours "Definitely not Pornography" if that's what tickles you. My point is that it doesn't really matter the name as long as you create a sub-directory here and then paste (CTRL+V) those items we copied to our clipboard from the default location earlier.
* Once the paste operation is complete and there is a full copy of the object & texture library located in the sync directory, navigate to the FrameForge program directory. Again, I'm using version 3.6 in this example so I navigate here:
Code: Select all
Code:
C:\Program Files\FrameForge Previz Studio 3.6

* Here is the final step and the one all of the preceding steps hinge on: changing where FrameForge looks for its objects and textures. All you need to do is create a "Shortcut" called "Library" in this directory. Doing so is easy. The file explorer Home ribbon has a button called "New Item", clicking it give you options of items to create, Shortcut being one of them. You could right click on any empty space in the file explorer window so the context menu appears, hover your mouse over "New" until the slide out appears and then choose "Shortcut" from the options available. Either one will bring up a dialogue box asking for the location of the item you want to create a shortcut for. You can use the "Browse" button if you want or just type in the location of the directory you created in the Google Drive sync directory that contains all of the items we copy/pasted into it a few moments ago. Remember...I named mine "ObjectLib" so I would simply type in:
Code: Select all
Code:
%HOMEPATH%\Google Drive\ObjectLib

or in it's entirety
Code: Select all
Code:
C:\Users\<my user account name>\Google Drive\ObjectLib


That's it, those are the steps. The Google Drive utility will have been busy this entire time indexing and backing up all of the items I placed in the Google Drive directory. Since I installed the same utility on my home laptop earlier in the day, the utility on that computer is now busily downloading copies of all the items I placed on this workstation. They are syncing. More importantly, if I launch FrameForge, it will find its objects and textures in the new location. Should I, while working on this workstation, create some new object for use in FrameForge and import it, later that night when I get home and log on to my laptop (and assuming I have repeated the process of changing where FrameForge should look for its libraries here as well) I'll find it available to me there as well.

Instructions for Apple OSX
As I said earlier, different versions of FrameForge install themselves and all of the objects and texture they need into their own distinct directories. if you have version 3.5 installed and upgrade to version 3.6, you'll find 2 separate directories for both on your Mac. Still, there is something to be said for consolidating your Objects and Textures. If you follow the paradigm I've laid out so far and you use FrameForge on multiple computers already, you can see the benefit of a sync'd master library of objects and textures. It can also be a time saver if you have a lot of custom-created and imported objects or you have installed some or all of the expansion packs. Like my previous example of upgrading between ver3.5 and ver 3.6, consolidating your libraries means you would not have to manually install into version 3.6 all of the expansion packs you installed for version 3.5.

OSX does things a little differently from Windows and....oh no...let me interject the following obligatory statements:
* Please don't start a flame war over which OS is better. We don't have a preference. We don't care. They both suck or rule equally.
* Should they appear, remain calm and do not feed the trolls.
Anyway, creating a Unified Master Library that can be sync'd with other computers on OSX is basically the same process but the technical details are a tad different obviously. The following steps show how I approached it. I used a Mac running OSX 10.11, FrameForge version 3.6.0.14 and again I used Google Drive as the service provider.

* The Google Drive utility for OSX allows a little more flexibility in where it gets installed but the sync directory still ends up in a specific location, that being:
Code: Select all
Code:
/Users/<your user account name>/Google Drive

* Since I am consolidating my object libraries to one location for reasons already discussed, choosing the location for the master library seems an obvious one, the Google Drive sync directory. Therefore I want to move the existing object and texture libraries there now.
* Just like with the Windows process, I recommend creating a sub-directory within the Google Drive directory specifically for your master library. Call if whatever you like, just don't forget what or where it is. Again, I will make mine "ObjectLib" located at:
Code: Select all
Code:
/Users/<my user account name>/Google Drive/ObjectLib

* Unlike the Windows process, I want to move the existing object and texture libraries to the new location, not copy them. You can use Finder to Cut the existing directories from their existing location and Paste them into the new location or you could use Terminal and a basic shell command to move them. For example, one of the sub-directories I want to move from the FrameForge Support directory to the ObjectLib directory is, naturally, "Object Library". Using Terminal and basic shell commands to accomplish that is simple:
Code: Select all
Code:
mv ~/Applications/FrameForge\ Previz\ Studio\ 3.6/FrameForge\ Previz\ Studio\ Support/Object\ Library/ ~/Google\ Drive/ObjectLib/

If you are unfamiliar with Terminal, what ~ means or why there are all these backslashes in this command then just stick to using finder. This post is already pretty long without explaining the basics of the shell. Perhaps another time.
* Moving the Object Library is just a start since there are other directories to move. The Texture Library is just as important as the Object Library directory so I want to move that as well. Again, use Finder to Cut and Paste exactly like the Object Library was moved or, again with Terminal:
Code: Select all
Code:
mv ~/Applications/FrameForge\ Previz\ Studio\ 3.6/FrameForge\ Previz\ Studio\ Support/Texture\ Library/ ~/Google\ Drive/ObjectLib/

I followed the same process on the other directories as well and thus, in my example, I ended up with the following:
* ~/Google Drive/ObjectLib/Object Library
* ~/Google Drive/ObjectLib/Texture Library
* ~/Google Drive/ObjectLib/Ground Glass
* ~/Google Drive/ObjectLib/Prime Collections
* ~/Google Drive/ObjectLib/Control Pads

Since I moved the directories and their contents to ObjectLib, the directory where they were originally located, FrameForge Previz Studio Support, should be empty. If not, then something went wrong. Remember, the OSX process is different from the PC process and we have to move the object and texture libraries, not just copy them to a new location. Why? Because symlinks won't work if a file or directory of the same name is present.

symwhaaat?

Symlink is the nickname for any file that contains a reference to another file or directory in the form of an absolute or relative path and that affects pathname resolution. Think of symlinks as you would an Alias. They've been in use since the early days of Unix and they are everywhere so don't be intimidated. We are going to use symlinks to make FrameForge look in the new ObjectLib directory for its objects, textures, ground glass, prime collections and control pad information. FrameForge thinks the directory containing its objects is in
Code: Select all
Code:
FrameForge Previz Studio Support/Object Library

But we moved that object library to the sync'd ObjectLib directory and FrameForge will have a cow. However, if we create a symlink there named "Object Library" which points to ~/Google Drive/ObjectLib/Object Library whenever FrameForge looks for an object, its attempt to look in the default location will seamlessly appear to be looking in the new location. Creating a symlink is easy but you are going to have to use the Terminal shell if you are going to follow the same method I am in this example. After opening up a Terminal shell window, I am going to create symlinks for the 5 directories I moved earlier by using the "ln" command with the "-s" flag. Looks like this:
Code: Select all
Code:
ln -s ~/Google\ Drive/ObjectLib/Object\ Library/ ~/Applications/FrameForge\ Previz\ Studio\ 3.6/FrameForge\ Previz\ Studio\ Support/Object\ Library
ln -s ~/Google\ Drive/ObjectLib/Texture\ Library/ ~/Applications/FrameForge\ Previz\ Studio\ 3.6/FrameForge\ Previz\ Studio\ Support/Texture\ Library
ln -s ~/Google\ Drive/ObjectLib/Ground\ Glass/ ~/Applications/FrameForge\ Previz\ Studio\ 3.6/FrameForge\ Previz\ Studio\ Support/Ground\ Glass
ln -s ~/Google\ Drive/ObjectLib/Prime\ Collections/ ~/Applications/FrameForge\ Previz\ Studio\ 3.6/FrameForge\ Previz\ Studio\ Support/Prime\ Collections
ln -s ~/Google\ Drive/ObjectLib/Control\ Pads/ ~/Applications/FrameForge\ Previz\ Studio\ 3.6/FrameForge\ Previz\ Studio\ Support/Control\ Pads


Now, when FrameForge looks for an object or texture, it thinks it is looking in the default location but its actually looking in the new sync'd location.

That's it, those are the steps. The Google Drive utility will have been busy this entire time indexing and backing up all of the items I placed in the Google Drive directory. Since I installed the same utility on my home laptop earlier in the day, the utility on that computer is now busily downloading copies of all the items I placed on this workstation. They are syncing. More importantly, if I launch FrameForge, it will find its objects and textures in the new location. Should I, while working on this workstation, create some new object for use in FrameForge and import it, later that night when I get home and log on to my laptop (and assuming I have repeated the process of changing where FrameForge should look for its libraries here as well) I'll find it available to me there as well.

Whats great about this approach is that it works if your home computer is a Mac and you office workstation runs Windows. Also, consolidating all of your objects and libraries means that if you Upgrade to a new version, all you have to do is remove the new installs object and texture libraries and then create symlinks to your sync'd directory and you save yourself all the time that would have been consumed installing expansion packs or re-importing custom object and textures.

Anyway, I hope someone found this helpful. If so, follow me on Twitter, friend me on Facebook, subscribe to me on YouTube, stalk me on Instagram, watch my Vines, endorse me on LinkedIn, cyberbully me on MySpace, review me on Yelp, join my circle on Google+, pin my Pinterest, check out my Tumblr, follow my Flikr feed, slam my political ideologies on Reddit, meet me at a Meetup, criticize my creative side on DeviantArt, praise my quirky funny sense of humor presented in animated GIF form on my Imgur feed.
[Image: c9Cuvhp.png]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)