# Is there a reason why this should be core and not an add-on in the asset library?: # If this enhancement will not be used often, can it be worked around with a few lines of script?:Ĭurrently, you have to use `File` and various `load()`, `load_from_file()`, `load_from_buffer()` exposed methods scattered in various classes like `Image`, `AudioStreamSample` to replicate the import process to some degree (difficult to account for various peculiarities inherent to parsing files), so none of those existing methods provide a way to import those resources ***exactly*** like in the editor. I understand that a lot of importers are tied to the editor, so this likely needs a rewrite/refactor, or adding a build option to allow those importers to be available in `release` builds, at the very least. for *external* resources (outside of `res://`), we know that they are not imported, so import a file first using the same mechanism as in the editor, and then `load()` it normally.Īlternatively, perhaps `ResourceImporter` and corresponding `import()` GDScript method could be added (or exposed), to allow users to import external resources at run-time first, if this proves to be easier to implement and/or maintain. If yes, then just fetch the resource with `load()`. for *imported* resources (inside `res://`), look whether a particular file was previously imported. # Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams: I suggest to add a way to seamlessly `load()` external resources by first importing them if they are outside of the `res://` path, like `user://` or any other system path. # Describe the feature / enhancement and how it helps to overcome the problem or limitation: See also related issues and other proposals: This in turn leads to various confusions and misuse like with `Image.load()` and `ResourceLoader.load()`. Loading non-imported, external resources require you to ***replicate the import process at run-time first*** (which is already done in the editor), and then store a reference to the loaded resource somewhere for it to be accessed later, so it's not possible to use `load()` for those resources, because they were not actually imported, but created at run-time instead. Loading imported resources requires you to use `load()` or `ResourceLoader.load()`. The problem comes when you want to give a player an ability to load external assets which are not part of the original game, ***without*** creating additional tools to make `*.pck` files to be used by a player, because players are not developers, and there has to be an intuitive way to load external assets within a game itself. The export process involves packing all of the previously *imported* assets into a special `*.pck` file which is then unpacked upon running a particular game. Godot requires that most files must be () (converted from various file formats to `Resource`s, such as `*.png` to `Texture`) before they can be used in a game, and this works well for games which don't require dynamic loading of assets. See very useful discussion which illustrates the problem at godotengine/godot#17748. # Describe the problem or limitation you are having in your project: Mostly related to godotengine/godot#17848.Īlso () - Godot Engine extension, where some stuff gets exposed in non-editor builds. # Describe the project you are working on:Ī game with ***user-generated co … ntent*** (and less of a modding support). Any further questions regarding the Pikbest License, please feel free to send an email to. For Full Edition of Pikbest License Agreement, please click here to the Pikbest License page. →You cannot use “For Reference Only” content in any manner that entails advertising, marketing or commercialization of any product or service. →You cannot imply that the content is created or claimed to be the copyright of the artwork by you or someone other than the copyright holder of the Pikbest content. ![]() →You can only use an Item for lawful purposes. You can’t claim trademark or service mark rights over an Item within the End Product created using that Item. →You cannot use the content in the Pikbest Content (totally or partially) in any trademark, logo or part of the same. →You cannot use the content in the Pikbest Content in printed or electronic items aimed to be resold. →You cannot resell, redistribute, access, share or transfer Pikbest Content. While privileges are different upon different user types, there are some restrictions which are applicable to all Pikbest users. The Pikbest Authorization differs upon different situations. Pikbest authorizes the User in a non-transferable, non-exclusive manner and on a worldwide basis for the duration of the relevant rights to download, use and modify the Pikbest Content, as expressly permitted by the applicable license and subject to this document.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |