Search Unity

  1. Unity 2018.1 has arrived! Read about it here
    Dismiss Notice
  2. Scriptable Render Pipeline improvements, Texture Mipmap Streaming, and more! Check out what we have in store for you in the 2018.2 Beta.
    Dismiss Notice
  3. If you couldn't join the live stream, take a peek at what you missed.
    Dismiss Notice
  4. Improve your Unity skills with a certified instructor in a private, interactive classroom. Learn more.
    Dismiss Notice
  5. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  6. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

AssetBundle Graph Tool 1.0 Release

Discussion in 'Asset Bundles' started by hiroki-unity, Oct 21, 2016.

  1. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
    We are excited to bring you the first release of AssetBundle Graph Tool!
    While the tool is still in the prototype phase, we would be delighted if you grab a copy, test with your project and give us your feedback!



    DOWNLOAD
    • You can clone from our project website (BitBucket) or grab unitypackage. There are links to quickstart guide and FAQ on the later part of this post.
    WARNING:
    PLEASE ALWAYS MAKE A BACKUP of your project before testing this tool.

    Which version of Unity does this tool support?

    The tool supports Unity 5.4.1f1 and above.


    What does the tool do?

    AssetBundle Graph Tool is a visual toolset lets you configure and create Unity's AssetBundles easily, without much coding. It is aimed to be an intuitive and yet effective tool for real production for both small and large teams.


    What problems does this tool solve?

    We designed AssetBundle Graph Tool to be:
    • Easy to learn and flexible. The tool is simple enough to learn, but supports the complexity of real production needs.
    • A tool to solve AssetBundle use cases that do not work with scene structures and dependencies, such as character avatars, card illustrations and virtual store items.
    • A tool to provide AssetBundle pipeline to let artists and game designers free from AssetBundle configurations.
    You can read more about this tool in our blogpost.


    So, is this going to be how to build AssetBundles in future?

    Well, yes, but only one of the ways. Asset Bundle team knows that some of you want more low-level, granular controls, and some of you want tools that are more visual and intuitive. We would like to improve the Asset Bundle workflow in both ways. We are planning to provide more Asset Bundles tools, and even an improved API for better control and performance. When they come to the point we can share with you, they will arrive as experimental features just like others.


    Resources
    Quick Start Guide
    Example Projects
    Issue Tracker
    Please tell us if you found bugs/issues here.
    Also, if you have questions, thoughts and feedback please reply this thread to post.
     
    Last edited: Oct 21, 2016
    Gametyme and Stormy102 like this.
  2. pahe

    pahe

    Joined:
    May 10, 2011
    Posts:
    396
    Hey. That's nice.
    Will other issues with AB workflow and usage be getting some attention too? There were this great thread where we gave some feedback about improvements.

    Improving the workflow for building the bundles it definitely nice and helps improving to build the bundles with the correct options. Still I think that many devs won't get around an automated system to build many different assetbundles, instead of single huge ABs.

    One question I haven't found an answer for the tool is, how are dependencies between the different assetbundles handled? Like sharing textures between different assetbundles.
     
  3. strich

    strich

    Joined:
    Aug 14, 2012
    Posts:
    238
    The BitBucket Wiki is either private or doesn't exist - It is inaccessible.

    P.S. I really wish you guys started using GitHub instead. :/
     
    jbonastre likes this.
  4. jordiboni

    jordiboni

    Joined:
    Aug 14, 2013
    Posts:
    26
    Feature request: zoom option
     
    hiroki-unity likes this.
  5. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
    Thank you for pointing this out. It is public now.
     
  6. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
    Thank you for the feedback. I will add zoom option as requested feature.

     
  7. strich

    strich

    Joined:
    Aug 14, 2012
    Posts:
    238
    Same goes for the Issue Tracker.
     
  8. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
    Issues are public as well now - sorry I am not used to bitbucket just yet :confused:. We might move the project to github sometimes...
     
    strich likes this.
  9. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
    Assetbundle team is taking these feedbacks seriously and we are definitely having big attentions to other issues as well.

    Dependencies between the different assetbundles are collected automatically just like when you use standard assetbundle tool. So if you have texture T and 2 materials M1 and M2 where both M1 and M2 references texture T, and creating following assetbundles:
    M1.bundle : have M1
    M2.bundle : have M2
    T.bundle : have T

    The built assetbundle will have dependency set between M1->T and M2->T.

    Another feature I am looking forward to add is to find and automatically create asset bundle(s) which keeps shared assets among incoming assetbundle(s).
     
    ortin and pahe like this.
  10. pahe

    pahe

    Joined:
    May 10, 2011
    Posts:
    396
    @hiroki-unity Yes, sorry, you're right. Dependencies are automatically set. Was confused, but since 5.x it is done automatically.

    Our main problem with dependencies is mainly versioning related: If we update an dependency asset, then we need to update the version of other assets too, which use the referenced asset. The way we can do that is either manually (urgh...) or automatically by checking the hash value generated by the assetbundle build process. Now we found out that if we change textures (for an UI atlas for example), referencing prefabs don't change the hash when generating the AB. Bug?
     
    Last edited: Oct 26, 2016
    hiroki-unity likes this.
  11. infinitedev

    infinitedev

    Joined:
    Oct 24, 2013
    Posts:
    2
    Hi,

    Currently, I export every individual asset as a separate asset bundle, and use the dependency information generated by Unity to load dependency asset bundles at runtime. I wrote a script that goes and modifies all the .manifest files to give each asset it own asset bundle name. This seems to work well, but I was wondering what the Asset Bundle team at Unity considers this a sane approach. For example, is there a large overhead to loading 5 asset bundles with 1 asset each versus 1 asset bundle with 5 assets?

    I use uncompressed asset bundles, so I'm hoping there's little/no overhead.

    Thanks,
    Josh
     
  12. Doddler

    Doddler

    Joined:
    Jul 12, 2011
    Posts:
    243
    I've been giving it a try, and though it takes a bit of getting your head around, it's a pretty cool tool! However, I've run into a bunch of issues.

    Issue: If you have a lot of assets, creating a loader node can take upwards of several minutes (took me about 5 minutes). In my project, it caused unity to allocate just over 20gb of memory, making my system unstable after reaching 100% memory usage. Eventually it finished creating the loader node though. Once I limit the scope of the loader node it's not so bad though...

    upload_2016-10-25_15-17-47.png

    A more minor issue: There's no way to work around asset bundle size limits. A few hundred mb of textures can expand to beyond the asset bundle size limit (2gb I think) when set to true color, even if the size after compressionis small. In order to work around this limit, in my current build scripts I have to split bundles based on their uncompressed size. I don't see no easy way to work around this issue though with this system.

    Question: On one project, I have a list of assets I need in each bundle, and build bundles based on these lists. Would a custom filter be the best idea, or is there way to create a custom loader?
     
    hiroki-unity likes this.
  13. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
    Thank you for reporting this. Can you share me how many assets (and overall sizes) do you have for building assetbundles? I am currently working on improving performance for large scale projects.

    Thank you for your feedback on this one too. I think I can improve BundleConfig to check the incoming size of assets and auto-create additional asset bundle (and dependency) to weave asset bundle limit.

    I think the answer depends on how you create these lists and manages it. If the list is manually updated and your plan is to migrate to the tool completely then I would create several Loaders and Filters to replace the list. If the list is managed by other systems such as external DB or tools, then customizing loader which takes the list of assets would be the way to go (so that lack of assets can be detected)

    In current software design you will have to modify Loader code directly to to add these features. This is a good indication that all nodes should be more flexible to customize behavior.
     
  14. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    451
    Feature request: option for different graphs e.g. we have specific files that we can save the graphs to, so instead of having a massive graph mess on the screen, we can have different graphs we can switch between. Clicking build would, of course, build them all

    EDIT:
    After a bit of playing around, I notice you can have multiple loaders, which kinda negates the point of my request. Still, might be useful to some :)

    EDIT 2:
    After even more playing around, I've got a system that just parses the different assets into Meshes, Materials, Textures, Shaders etc. and puts them into their respective asset bundles. This is the easiest and (dare I say) most fun I've ever had with AssetBundles. I can put the aspirin back in the cupboard! :D

    Issue/Feature Request: Also, I notice that there are cached copies created in Assets\AssetBundleGraph\Cache\AssetBundles\[GUID]\[PlatformName]

    Is this necessary? I think they should be in a temporary location instead of in the Assets folder. From someone who uses version control, the ~80mb files would be uploaded and taking up unnecessary space. Otherwise, perhaps deleting them after exporting would be more appropriate.

    Feature Request: Have a scrollbar on the vertical axis too, with my setup the FilterNode is really tall.

    EDIT: If I create a node that goes below the window rect, then it shows the scrollbar but if the bounds of a node go outside there is no scrollbar on the vertical axis.

    Feature Request: When the asset bundle is finished building, could you give an option/make the export location open in Explorer/Finder/[Insert File Browser Here], similar to the way that the build window opens after doing a build?

    Matt
     
    Last edited: Oct 26, 2016
    hiroki-unity likes this.
  15. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    451
    AssetBundleGraph.PNG
    Well this is my finalised graph. It's pretty simple, no PrefabBuilder (could someone explain what this is, as I don't really get the purpose of it), grouping or modifier nodes. It takes assets from certain paths, feeds them through the filter, outputting texture, mesh, material, audio etc. bundles. Then it builds them to one final builder and exports them. AssetBundleGraph is a really beautifully made tool and I love it. Should be a default Window inside Unity. :D

    However, I feel more information on the different nodes and more examples on how to use the nodes. Maybe a new project, maybe with the assets from the Viking Village or Blacksmith, as opposed to just re-designing the AssetBundle demo with Tanks. Just curious how the other nodes would play their part with other assets. It would also be a good idea to test scalability and robustness with larger assets. ;)

    Anyway, thanks for releasing this @hiroki-unity - it's definitely a step towards making Asset Bundles more user-friendly and easier to access. :)

    - Matt

    EDIT: Fixed my crappy writing :confused:
     
    Last edited: Oct 26, 2016
    Andy-Touch and hiroki-unity like this.
  16. seldom

    seldom

    Joined:
    Dec 4, 2013
    Posts:
    102
    Thank you for releasing the project as open source. It was very easy to adapt your system to my own graphing tool, RelationsInspector. It can already act as a basic viewer for the build graph:

    AssetBundleGraph.gif
    Here's the add-in's source code.
     
    Stormy102 and hiroki-unity like this.
  17. Doddler

    Doddler

    Joined:
    Jul 12, 2011
    Posts:
    243
    I've found the cause of my massive memory problem. The TypeUtility class is making a call to AssetDatabase.LoadMainAssetAtPath(assetPath) in order to identify the type of asset it is... this means making a new loader node is going to effectively load every asset in your project into memory (because the default path is your entire assets directory), and again every time the load option is triggered. Which seems to be pretty often from the looks of things, including every time you type a letter in the node name or path. I threw in a dummy bit of code that identified the asset type based on extension and that works considerably better, to the point where I'd be satisfied using it regularly (4-5 second processing instead this, which doesn't include the 30s of garbage collection after). I don't know if there's an easy way to get details of an asset without loading it like that though...

    Best would be a choice to not count assets at all before hand, since that would obviously remove all processing time, at the expense of confusing mistakes. :p
     
    hiroki-unity likes this.
  18. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
    Thank you for the feedback. I am aware of this issue and currently working on it to get better scalability with release 1.1.
     
    srivello likes this.
  19. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    451
    Feature Request
    Hey @hiroki-unity as the assets aren't being set as being in asset bundles, could the tool automatically set the asset bundle names ON the asset? Otherwise, if the assets will be included in the final build.
    AssetBundleName.png
    EDIT:
    The code for this goes something like
    Code (CSharp):
    1. importer.assetBundleName = name;
    Feature Request
    Could you add in a snapping-feature, for example, if I hold down CTRL it will snap to the nearest 10 on X and Y axis? Just so I can keep my graphs lined up :)
     
    Last edited: Oct 28, 2016
    pigeon6 likes this.
  20. Doddler

    Doddler

    Joined:
    Jul 12, 2011
    Posts:
    243
    Is there a way to have a node that excludes all output in a specific platform build? My asset strategy in webgl is quite different from my desktop platform strategy, so it would be nice if you could have blocking nodes based on platform.
     
    pigeon6 likes this.
  21. xCyborg

    xCyborg

    Joined:
    Oct 4, 2010
    Posts:
    468
    Please don't tell me this does not support 5.5 beta, I'm getting some build errors with b10 here.
    And please tell me all these experimental features will eventually be integrated into Unity not just some optional scripts in BitBucket.
     
  22. pahe

    pahe

    Joined:
    May 10, 2011
    Posts:
    396
    Which errors do you get?
     
  23. xCyborg

    xCyborg

    Joined:
    Oct 4, 2010
    Posts:
    468
    Mostly definitions missing in BuildTargetUtility and a few others, screenshot attached.
     

    Attached Files:

    pigeon6 likes this.
  24. Huu-Loc

    Huu-Loc

    Joined:
    Nov 4, 2013
    Posts:
    12
    Hi @hiroki-unity,
    When do you plan to release version 1.1?
    This issue is actually annoying. All of the nodes are updated real-time,even while I am typing :(.
     
  25. Reichert

    Reichert

    Unity Technologies

    Joined:
    Jun 20, 2014
    Posts:
    57
    We're actually moving more toward open sourcing these kind of tools. What's missing - but in development - is a package manager built into Unity that can properly manage dependencies. So for now, yes, these will be drop in scripts but Very Soon will also be installable to your project directly in the Editor. And there will be two ways to do that - either to copy the package contents into your assets so they are versioned with your project (much like you do now), or linked to your project in a read-only way to a globally installed version of the package.
     
    movra and Stormy102 like this.
  26. xCyborg

    xCyborg

    Joined:
    Oct 4, 2010
    Posts:
    468
    I'd much rather this last option, the first is so tedious.
    But I thought Unity already has a Module Manager, and it's used all across the board, GUI, UnityVR, Hololens, online services and many other Unity extensions. Why don't you use this system for in-house solutions with ability to unload the extension and give us the extra option to globally install 3rd party plugins.
    Thanks.
     
    Last edited: Nov 13, 2016
  27. philmzo

    philmzo

    Joined:
    Dec 2, 2015
    Posts:
    7
    I'm surprised issues raised in BitBucket are not replied by Unity Staff.
    We can see you read them in the Recent Activity column though.
     
    Stormy102 likes this.
  28. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    451
    There isn't a "proper" Unity 5.5 version. There has no commits since 2016-10-28, over a month ago. It's a great tool, but it feels like it has just been dropped and the community is expected to support it.
     
  29. samnarain

    samnarain

    Joined:
    Jul 6, 2015
    Posts:
    99
    I don't want to be mean, but sadly that is how I am. I made a 5.5.x compatible fork, and submitted a pull-request. Since the very start I've been a huge fan of this tool; if you don't understand or appreciate it, it is probably not for you - or you don't understand the problems it can solve. I'm not aware for which open source community you speak, but the open source community I know, looks at the source, forks it, fixes or adds features, sends a PR and contacts the maintainer to merge it into a release. That is exactly what I did; I've always got a nice, professional response and backward/forward compatibility and testing on a variety of platforms is the reason why there isn't a fresh 5.5 update yet. That is how an open source project lives - collaboration and keeping productive and pragmatic contact. But, let me be nice for one second - Hiroki is currently working on a release that supports 5.5.X and the previous ones.

    I don't work for Unity, but I surely read them. And I've read yours.

    "First of all thanks for this process to help develop the use of AssetBundle. It seems great."
    "I'm the author of the previous report. I thought I was logged-in. I can send real URI through PM when you reply"
    ... and the list goes on ...

    Dear philmzo, this is an easy automation tool. If you don't understand AssetBundles, that is okay... you don't have to. Your issues are not even remotely an issue in relation to the source. They are questions with answers that can be found in the manual, the blog and everywhere else. Sorry, I am a mean person with poor people skills, I've Asperger (I really do), and I can't pursuit treatment (and I wouldn't), who could win an award for being a first class beef jerky.

    Dear Reichert. I love you. Well in the friendly way, you know like buy you a beer kind of love. Anyway, that is a good idea. In case you and your lovely friends (yes, I love them too), are looking for idea's - the horrible world of web technology have something called WebPack. Now if you would look at their core objectives (because the worse dependency hell in history of technology is truly in the world of isomorphic JavaScript), a tiny bit of their source and combine that with the workflow/visual approach like the ABGT tool. Won't be a big one, as CacheServer does node magic too, so I know there is a JS guy in your office hiding there who can translate that tricksery for you.

    He's working on it. The 5.5 errors are known and there is a fix - hang on - he's close to a release.

    You can filter and redirect them, or branch out with an importer node.
     
    Last edited: Dec 9, 2016
  30. samnarain

    samnarain

    Joined:
    Jul 6, 2015
    Posts:
    99
  31. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    451
  32. samnarain

    samnarain

    Joined:
    Jul 6, 2015
    Posts:
    99
    You're welcome. I noticed some of your feature requests, if you find the time can you add these to the repo? I'll see if I can do some grind work on these. Also, you might've missed "zooming", which is basically holding middle mouse and using vertical movement for zooming in and out (not perfect, but it works). If your graphs are reaching the borders, the scrollbars will appear as well - so most functionality you are looking for might just require some tiny usability tweaking (and I happen to be working on that part at the moment in my own fork to create a preferences section to provide some form of personalization).
     
    Stormy102 likes this.
  33. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    451
    Hey all, AssetBundle Graph Tool is still in development but Version 1.1 has been released here. The dev branch is being updated daily which has added new features such as multiple-graph support, as well as numerous bug fixes. If you're still using 1.0, make sure you update and keep an eye on the Bitbucket repo.
     
    samnarain likes this.
  34. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    639
    Hey guys, loving the tool, but I cant work out how to actually export any files, after hitting build my directory is still empty. Also by the last line on the flow diagram I have the value 0, if I tick and untick "uncompressed asset bundles" it goes up to 4, but build still produces no files. Is there any tutorial on how to use this ?

    I am seeing an error that says -
    Cannot mark assets and scenes in one AssetBundle. AssetBundle name is "bundle_0".

    I think a video tutorial of this tool would be great!.. this looks useful but my Chinese is not great :)



     
    Last edited: Mar 13, 2017
  35. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    451
    Are you on the latest version of the Asset Bundle Graph tool? It doesn't look like it to me. The latest stable version is 1.2 - you can download it at the repository here. Just download 1.2/release as your preferred format (zip, gz, etc). Update and then let me know if it's still happening.

    Matt
     
    radiantboy and samnarain like this.
  36. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    639
    Thanks, upgraded to new one, but now when I add a loader node I get errors immediately. Any ideas?

    Screenshot

    Also I dont really understand the "loader0" option "load path:".. Isnt the purpose of this tool to find the paths for you? If I leave it empty I get an error underneath in red, basically a null pointer. If I put something in here it goes away and a list of my assets appear below, not sure what they appear for, and what I am supposed to put in here? Either way I cannot get it to not have a "0" on the line from my loader to my filter.

    Gonna keep playing but I think its not working properly :) As you can see below..

    Screenshot of the Errors


    Cheers,
     
    Last edited: Mar 17, 2017
  37. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    451
    My advice would be to delete everything AGBT related apart from your graph. Then reimport the package.

    The point of the "Loader" is that you point it to a directory that you load the assets from. Then, you use other components, like the "Filter" to select certain assets, either by name or type. Then you have the config in which you can change the bundle name, the builder which gives options for compression or disabling treetype, and finally, the exporter, which saves the bundle in the place you specify.
    Leaving the loader empty means that it is loading EVERY asset. You want to have a different graph for each bundle essentially.

    You can PM me if you have more questions and there is documentation available here.
     
  38. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    639
    Hey, thanks very much for the help! It is incredibly annoying if you have to give it a specific directory, I have 250 gigs of assets in my game, and all of them sit in the root of "assets" - this wasnt even by design almost every single asset on the store ends up in there, I gave up organising them properly after the first week of dev in 2012 because it was evident you arent really meant to keep assets neat and organised because unity goes haywire. I thought if you give it the root dir (assets) then yes it will look through every asset I have but then it will only load ones that match the filters, but I see what you mean, the way I am doing it right now all my stuff would end up in one bundle (I thought it could intelligently deal with this somehow). I still dont really get how you are meant to organise this stuff on a very large game, ideally I would have a directory for each "scene" containing only its assets, but most of my scenes share assets so there would end up being a lot of duplication, not to mention the weeks of work this would take and the thousands of unity crashes that would occur, and then hours of reimporting everytime.

    I think this tool is not at all useful if it really is to be this way - I mean I cannot use it in this state - not to mention it crashes immediately with no proper error messages. This is the latest tool dropped in to my latest project from a fresh back up so there isnt really any point in me doing that again, I guess I just need to wait for it to be stable.

    To be honest I do not even care or want to use asset bundles (which have now held up my game dev for 6 months with zero progress and are really making me question my decision to use Unity). The ONLY reason I am even interested in any of this is due to the absolutely baffling 4 gig limit unity have on .res files when you make a build, and after weeks of researching I found that the 4 gig limit is just inherent and the only way to avoid it is to use asset bundles, that apparently do not have this limitation (thread https://forum.unity3d.com/threads/t...al-corruptions-need-help.395985/#post-2835620 ). I would have no problem just making a fresh build of my game using the ordinary asset systems (and not asset bundles) if it would actually produce a working build. It was working so perfectly about 5 months ago and then one day I must have pushed the texture limit over 4 gig and each build is just glitched to hell.

    Kind of at a loss as to how to proceed, everything works fine in the editor, but a build is not working well (something I find very often with unity :-( ), and now I find asset bundles are still a nightmare even with this tool. I just have to hope unity do something to fix all of this within 2017 or basically my game is going to end up on hold even longer.

    PS - I guess technically I could export each scene as a package (by right clicking and doing select dependencies), and then when I bring them into a new project forcibly put all of their assets into Assets/SCENE1/ and do the same for scene2 etc. I doubt it would end up working and there would still be a lot of duplication going on. The whole thing is damn confusing and demoralising, very often now I find myself thinking unity was not designed for such large open world games as mine and that I have long ago hit the limit on what I should be doing with unity. Quite a scary prospect because I wanted to make many many many more scenes and parts of my world!
     
    Last edited: Mar 18, 2017
  39. Stormy102

    Stormy102

    Joined:
    Jan 17, 2014
    Posts:
    451
    I know that there are issues with Unity, inherent with the 4gb limit and the clunky asset bundle system (which, btw is getting re-made). I'm currently going through a big reorganisation and it's f**king horrible. However, as game devs we have to persevere and go through all the sh!t that gets thrown at us.

    Asset bundles are really useful, as I'm finding out. I would really recommend using them. However, maybe you should split your assets into different bundles and load them all at the beginning. Here's how we do it.

    We have different bundles for each "category"
    • Items
    • Environment
    • Buildings
    • Entities
    Then we load them all at the beginning and assign them to a permanent Database script that holds instances to them so they aren't Garbage Collected.

    TL;DR
    It is worth reorganising. I know you're going to say "Wtf this guy doesn't have any idea". Yeah, my project is only 2gb. But there is nothing worse than having 50 tonnes of rubbish in your project.

    One really sneaky work-around is to create different scenes, reference different items and then put them earlier in the build list. This will split assets into different scenes and therefore different sharedassetsx.res. This is probably the best idea without delving head-first into asset bundles.

    If you want to PM me to talk about it in more detail, then feel free. I'm happy to help.

    Matt
     
    radiantboy and samnarain like this.
  40. GearKlik

    GearKlik

    Joined:
    Sep 21, 2015
    Posts:
    58
    I have a simple graph:


    It loads a directory, filters gameObjects, creates a config and builds bundles, but no matter what I try I keep getting :
    Error building Player because scripts have compile errors in the editor.

    in Unity's console.

    But the graph does not display any errors and nothing is exported. What am I doing wrong?

    We're using Perforce and have it setup in Unity. I noticed some other nodes generated errors because they couldn't write to an asset since it was locked, could it be a similar issue?

    EDIT: Interdasting, I restarted Unity and it works now. I had changed the build target from Windows Store and back to Standalone Windows so maybe it wasn't refreshing something.
     
    Last edited: Aug 16, 2017
  41. GearKlik

    GearKlik

    Joined:
    Sep 21, 2015
    Posts:
    58
    OK new issue, I'm trying to use the Overwrite Import Settings node on a filtered list of textures. The graph builds without errors but every time I build the settings in the Overwrite Import Settings node revert to default. eg I set max texture size to 1024 then build the graph. If I select the Overwrite Import Settings size as reverted back to 2048 and judging by the bundle file size it was built with the reverted default values. Any thoughts?
     
  42. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
    @GearKlik Thank you for reporting. Sound like an issue. There is a similar issue reported and fixed a while ago (issue #41)

    Which version of Unity and graph tool are you using? If it still happens on the newest graph tool (1.3), could you file your issue on bitbucket?

     
  43. GearKlik

    GearKlik

    Joined:
    Sep 21, 2015
    Posts:
    58
    Thanks for the reply! I'll check it out. Am on 5.6 and Graph v1.3

    OK next issue. When using Perforce source control the asset modifiers fail because the asset is write only. Should I log a bug?

    So to work around that and the fact the import modifiers don't revert the asset's settings back after the graph is evaluated I'm using the "Generate Assets >> Duplicate Asset" node. But then when I try to filter by texture importer to overwrite import settings it can't find any importers.

    How can I duplicate textures to a folder then set their import settings?
     
  44. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
    Thank you for more info. I suppose what you mean is the asset is set to read only ;) You would get errors such as UnauthorizedAccessException on read-only assets when you try to change import setting. That is an expected behavior. You need to checkout assets you are editing with Perforce.

    It sounds to me that you are trying to weave from Perforce control of your asset (which is generally not a good idea) so I recommend to work with Perforce for read/write controls, but here is how you can copy duplicated asset to certain folder and apply import setting. For today's graph tool you need 2 graphs.

    The first graph duplicates your asset, then export to directory. Make sure to use Flatten Directory option.
    ss1.png

    The second graph applies import setting. Set it to load from where you exported with the first graph, and make sure to enable "Use As Postprocessor" toggle button.
    ss2.png

    Of course, if you don't need to export duplicated asset and just use them straight, you can set import setting straight out of Generate Asset like this.

    ss3.png

     
  45. jonny2027

    jonny2027

    Joined:
    Jul 16, 2013
    Posts:
    43
    Hi all,

    Just getting started with this tool. I have an old project that I have upgraded to 2017.1.0p4 I have removed the old assetbundle graph tool and replaced it with version 1.3

    Based on what the previous version did to export asset bundles I have recreated the graph in version 1.3 but when I try to build I get the error

    Cannot mark assets and scenes in one AssetBundle. AssetBundle name is "bundle_0".

    Any suggestions?

    Thanks

    Jonathan
     

    Attached Files:

  46. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
    @jonny2027 This is the error happens when you try to include scene and asset into the same asset bundle (bundle_0).
    I recommend you to use Split By Filter node to split scenes and assets and store them separately.

     
    jonny2027 likes this.
  47. jonny2027

    jonny2027

    Joined:
    Jul 16, 2013
    Posts:
    43
    Oh right. Thanks for the information. Was it possible in the past to combine them? Just trying to reverse engineer what a previous company was doing so not sure how they achieved their end result.

    Thanks

    Jonathan
     
  48. hiroki-unity

    hiroki-unity

    Unity Technologies

    Joined:
    Jun 20, 2013
    Posts:
    21
  49. jonny2027

    jonny2027

    Joined:
    Jul 16, 2013
    Posts:
    43
    Great. I will check out the manual. Thanks for your help
     
  50. vamky

    vamky

    Joined:
    Aug 9, 2014
    Posts:
    46
    Hi

    I would like to make some custom node but the process seems to be pretty complicated. can we have some kind of guide or tutorial? May be even a custom node wizard?

    Best Regards