Templates to accompany Armory SDK. Check out the manual.
Note: Download the package from releases. Only use the latest revision of this repository if you are using git Armory.
Starter Scenes
Home Page: https://github.com/armory3d/armory/wiki
License: zlib License
Templates to accompany Armory SDK. Check out the manual.
Note: Download the package from releases. Only use the latest revision of this repository if you are using git Armory.
There are several issues with building the template projects.
The results below are from https://github.com/tong/armory_examples_browser/actions building for the html5 target
It uses my fork of armory_templates where every project is flattened to repo root and has blend files saved with armory 21.07, beside that unchanged.
Also this doesn't mean that the projects run correctly, these are just the build time errors.
<project-name> <exit-code> <build-duration>
✖ archery: 255, 2444ms
✔ first_person: 0, 10282ms
✔ platformer: 0, 9597ms
✔ race_track: 0, 4081ms
✔ third_person: 0, 10376ms
✖ third_person_terrain: 1, 12531ms
✔ top_down: 0, 8391ms
✔ twin_stick: 0, 8643ms
✔ vehicle: 0, 3913ms
The complete build log: templates.log
Details:
ERROR: There were errors in the node update procedure
A node of type LNOnMouseNode in tree "NodeTree" failed to be updated, because the node's update procedure itself failed. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 173, in replace
setattr(newnode, dest_prop_name, getattr(node, src_prop_name))
TypeError: bpy_struct: item.attr = val: enum "Released" not found in ('started', 'down', 'released', 'moved')
A node of type LNOnKeyboardNode in tree "NodeTree" failed to be updated, because the node's update procedure itself failed. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 173, in replace
setattr(newnode, dest_prop_name, getattr(node, src_prop_name))
TypeError: bpy_struct: item.attr = val: enum "Released" not found in ('started', 'down', 'released')
A node of type LNPlayActionNode in tree "NodeTree" failed to be updated, because there is no (longer?) an update routine for this version of the node. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 126, in replace
response = node.get_replacement_node(tree)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/arm_nodes.py", line 74, in get_replacement_node
raise LookupError(f"the current node class {repr(type(self)):s} does not implement get_replacement_node() even though it has updated")
LookupError: the current node class <class 'arm.logicnode.deprecated.LN_play_action.PlayActionNode'> does not implement get_replacement_node() even though it has updated
A node of type LNPlayActionNode in tree "NodeTree" failed to be updated, because there is no (longer?) an update routine for this version of the node. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 126, in replace
response = node.get_replacement_node(tree)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/arm_nodes.py", line 74, in get_replacement_node
raise LookupError(f"the current node class {repr(type(self)):s} does not implement get_replacement_node() even though it has updated")
LookupError: the current node class <class 'arm.logicnode.deprecated.LN_play_action.PlayActionNode'> does not implement get_replacement_node() even though it has updated
A node of type LNVectorMathNode in tree "NodeTree" failed to be updated, because there is no (longer?) an update routine for this version of the node. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 193, in replace
dest_socket = newnode.outputs[dest_socket_id]
IndexError: bpy_prop_collection[index]: index 1 out of range, size 1
A node of type LNPlayActionNode in tree "NodeTree" failed to be updated, because there is no (longer?) an update routine for this version of the node. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 126, in replace
response = node.get_replacement_node(tree)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/arm_nodes.py", line 74, in get_replacement_node
raise LookupError(f"the current node class {repr(type(self)):s} does not implement get_replacement_node() even though it has updated")
LookupError: the current node class <class 'arm.logicnode.deprecated.LN_play_action.PlayActionNode'> does not implement get_replacement_node() even though it has updated
A node of type LNPlayActionNode in tree "NodeTree" failed to be updated, because there is no (longer?) an update routine for this version of the node. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 126, in replace
response = node.get_replacement_node(tree)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/arm_nodes.py", line 74, in get_replacement_node
raise LookupError(f"the current node class {repr(type(self)):s} does not implement get_replacement_node() even though it has updated")
LookupError: the current node class <class 'arm.logicnode.deprecated.LN_play_action.PlayActionNode'> does not implement get_replacement_node() even though it has updated
A node of type LNOnKeyboardNode in tree "NodeTree" failed to be updated, because the node's update procedure itself failed. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 173, in replace
setattr(newnode, dest_prop_name, getattr(node, src_prop_name))
TypeError: bpy_struct: item.attr = val: enum "Started" not found in ('started', 'down', 'released')
A node of type LNOnMouseNode in tree "NodeTree" failed to be updated, because the node's update procedure itself failed. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 173, in replace
setattr(newnode, dest_prop_name, getattr(node, src_prop_name))
TypeError: bpy_struct: item.attr = val: enum "Started" not found in ('started', 'down', 'released', 'moved')
A node of type LNScaleObjectNode in tree "NodeTree" failed to be updated, because there is no (longer?) an update routine for this version of the node. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 126, in replace
response = node.get_replacement_node(tree)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/arm_nodes.py", line 74, in get_replacement_node
raise LookupError(f"the current node class {repr(type(self)):s} does not implement get_replacement_node() even though it has updated")
LookupError: the current node class <class 'arm.logicnode.deprecated.LN_scale_object.ScaleObjectNode'> does not implement get_replacement_node() even though it has updated
A node of type LNOnKeyboardNode in tree "NodeTree" failed to be updated, because the node's update procedure itself failed. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 173, in replace
setattr(newnode, dest_prop_name, getattr(node, src_prop_name))
TypeError: bpy_struct: item.attr = val: enum "Started" not found in ('started', 'down', 'released')
A node of type LNOnKeyboardNode in tree "NodeTree" failed to be updated, because the node's update procedure itself failed. Original exception:
Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 232, in replace_all
replace(tree, node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/logicnode/replacement.py", line 173, in replace
setattr(newnode, dest_prop_name, getattr(node, src_prop_name))
TypeError: bpy_struct: item.attr = val: enum "Started" not found in ('started', 'down', 'released')
Exporting Scene
Python: Traceback (most recent call last):
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/props_ui.py", line 1039, in execute
make.play()
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/make.py", line 528, in play
build(target=runtime_to_target(), is_play=True)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/make.py", line 416, in build
export_data(fp, sdk_path)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/make.py", line 153, in export_data
ArmoryExporter.export_scene(bpy.context, asset_path, scene=scene, depsgraph=depsgraph)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/exporter.py", line 155, in export_scene
cls(context, filepath, scene, depsgraph).execute()
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/exporter.py", line 2157, in execute
self.export_materials()
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/exporter.py", line 1836, in export_materials
sd, rpasses = make_material.parse(material, o, mat_users, mat_armusers)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/make.py", line 45, in parse
rpasses, shader_data, shader_data_name, bind_constants, bind_textures = make_shader.build(material, mat_users, mat_armusers)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/make_shader.py", line 74, in build
con = make_mesh.make(rp, rpasses)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/make_mesh.py", line 62, in make
make_deferred(con_mesh, rpasses)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/make_mesh.py", line 198, in make_deferred
make_base(con_mesh, parse_opacity=parse_opacity)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/make_mesh.py", line 124, in make_base
cycles.parse(mat_state.nodes, con_mesh, vert, frag, geom, tesc, tese, parse_opacity=parse_opacity)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles.py", line 62, in parse
parse_material_output(output_node, custom_particle_node)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles.py", line 123, in parse_material_output
out_disp = parse_displacement_input(node.inputs[2])
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles.py", line 255, in parse_displacement_input
return parse_vector_input(inp)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles.py", line 267, in parse_vector_input
res_var = write_result(link)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles.py", line 519, in write_result
res = parse_vector(link.from_node, link.from_socket)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles.py", line 340, in parse_vector
return node_parser_funcs[node.type](node, socket, state)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles_nodes/nodes_vector.py", line 140, in parse_displacement
height = c.parse_value_input(node.inputs[0])
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles.py", line 389, in parse_value_input
res_var = write_result(link)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles.py", line 519, in write_result
res = parse_vector(link.from_node, link.from_socket)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles.py", line 340, in parse_vector
return node_parser_funcs[node.type](node, socket, state)
File "/home/tong/dev/ARMORY/armsdk//armory/blender/arm/material/cycles_nodes/nodes_texture.py", line 123, in parse_tex_image
if tex['file'] is not None:
TypeError: 'NoneType' object is not subscriptable
Runtime ERROR: Camera rotation isn't working
I don't seem to have found any part of the key binding in the source code for this project. I spent a few days carefully reading the source code, trying to find the implementation method for "WASD" button movement in the project, but found nothing.
If the author sees this reply, please answer my questions. Thank you
Hating to be the first one.
Third person terrain is not working with blender 2.8 beta 0.6 after updating to the latest SDK. I get a black screen and infinite runtime errors like this one:
TypeError
at init (krom.js:2488:5)
at iron_App.render (krom.js:6317:5)
at kha_System.render (krom.js:25904:3)
at kha_SystemImpl.renderCallback (krom.js:26029:2)
Uncaught exception:
b.b[i] = p.b[i * 4];
Ironically 0.6beta release does compile and run without runtime errors, but I cannot see any terrain.
(If it helps, the terrain examples don't work either. The other templates and examples seem to work fine)
Im a beginner on Armory3d and i don't know how to fix it. So i decided to ask to this beautiful community :)
On third/first person templates, i get low fps and i don't know how to fix it. Can somebody help me?
System :
OS : Mac Os X
Processor : 2,7 GHz Quad-Core Intel Core i5
Memory : 8 GB 1600 MHz DDR3
Graphics : NVIDIA GeForce GT 640M 512 MB graphics
WebGL, works fine locally (button is fine), runs on GitHub (button is abnormal, button is gone)
https://losemry.github.io/web3/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.