Custom Asset Importing: Difference between revisions

From Ardenfall Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 56: Line 56:
|path: the path to the asset bundle file
|path: the path to the asset bundle file
|-
|-
|Item
|ScriptableObject
|Creates a new item based on properties.
|Creates a new item based on properties.
|item
|scriptable_object
|(See documentation)
|path: the path to the scriptable object definition file
|}
|}


Line 92: Line 92:
If you leave it blank, will not import any materials.
If you leave it blank, will not import any materials.
|}
|}
'''Item'''
Creates a new item in a few different ways.<u>Properties (Common)</u>
{| class="wikitable"
|+
!Property
!Required
!Default
!Description
|-
|item_type
|NO
| "child"
|The item importer type. Supports:
"child", "misc", "melee"
|-
|name
|YES
| -
|The visual name of the item. Will also determine the internal name used for searching via the item search tool.
|-
|model
|YES
| -
|The mod asset id for the model.
|-
|value
|NO
|0
|The gold value of the item
|-
|weight
|NO
|0
|The weight of the item
|}
<u>Properties (Child Item Type)</u>
The child item type simply means it will create an item based off an existing item ID in the lookup table.
{| class="wikitable"
{| class="wikitable"
!Property
!Required
!Default
!Description
|-
|parent
|YES
| -
|The item id in the lookup table to base this item off of. Example: the misc item's lookup ID is "f7e839cb08435be4d96f3766500416e3.11400000"
|}
|}
<u>Properties (Misc Item Type)</u>
The misc item type is a fast way to create a miscellaneous item. These items have no ability to equip, but do have a value, weight, etc.  There are no unique properties for the misc item type.
{| class="wikitable"
!Property
!Required
!Default
!Description
|-
| -
| -
| -
| -
|}<u>Properties (Melee Item Type)</u>The melee item type is the most complex item to import, due to having several special values to determine damage and 'whoosh' visual points.
{| class="wikitable"
!Property
!Required
!Default
!Description
|-
|weapon_type
|YES
| -
|The type of weapon to create. Can be katana, greatsword, greataxe, and dagger.
|-
|trail_start
|YES
| -
|The local vector of where the trail starts on the weapon. In the format of (x,y,z).
|-
|trail_end
|YES
| -
|The local vector of where the trail ends on the weapon. In the format of (x,y,z).
|}
=== Common Shaders ===
=== Common Shaders ===



Revision as of 00:40, 20 July 2026

At some point you may want to import a new model, texture, sound, etc.

This can be done one of two ways - manually via scripting, or by using the built in mod asset importer feature. I suggest the latter, unless you want to do something funky.

Asset Manifest

Every mod can have an asset manifest file defined. This lists out all assets you want to import.

Create a file called manifest.txt in your mod directory.

Example Asset Manifest

{
  "assets": [
    {
      "assetId": "testmod.dog",
      "type": "texture",
      "properties": [
        {
          "name": "path",
          "value": "Assets/dog.png"
        }
      ]
    }
  ]
}

Built in Importers

There are several built in importers to load up your assets. Most of them are pretty self explanatory!

Name Description ID Properties
GLTFScene Imports a GLTF file as a GameObject. Ideal for weapons, items, simple objects.

You can define a built in material to use, and it will automatically apply said material + hook up included textures.

gltf_scene path: the path to the gltf file

shader: (optional) the shader id to import.

Texture Imports a .png or .jpeg as a Texture2D texture path: the path to the image file
AudioClip Imports a .mp3, .wav, or .ogg as an ArdenAudioClip audio_clip path: the path to the audio file
AssetBundle Imports a unity asset bundle. asset_bundle path: the path to the asset bundle file
ScriptableObject Creates a new item based on properties. scriptable_object path: the path to the scriptable object definition file

GLTFScene

A GLTF scene / model importer. Will import the GLTF object as a gameobject.

Supports material applying using ModMaterialResolver.

Built on the GLTFFast library.

Properties

Property Required Default Description
path YES - The path to the gltf / glb file
shader NO "Ardenfall/SimpleDiffuse" Defines the shader to be imported.

Only a single shader per scene is supported at the moment.

See Common Shaders for a list of shaders to try out.

If you leave it blank, will not import any materials.

Common Shaders

SimpleDiffuse

"Ardenfall/Simple Diffuse"

The most common shader used in Ardenfall. An opaque shader that supports:

- Texture, Color, Cullmode, Cutoff

- Specularity, Fake Specularity

- Emission Texture, Emission Color, Emission Fading, Time of Day Emission

- Pivot Rotation Animation

- Vertex Wind Animation

- Fresnel

- Triplaner Texture

SimpleDiffuse Transparent

"Ardenfall/Simple Diffuse Transparent"

A version of the Simple Diffuse shader that is transparent.

EnchantableItem

"Ardenfall/Enchantable Item Diffuse"

The shader used for items that have enchanted glows. (Weapons)

CharacterSkin

"Ardenfall/Avatar/Character Skin"

The shader used for characters (humanoid skin, monsters bodies).

CharacterClothing

"Ardenfall/Avatar/Character Clothing"

The shader used for character clothing/armor.

Example: A Custom Weapon

TODO

Custom Importers

You can also create your own importers for yourself / others to utilize.

TODO