{"id":49369830,"url":"https://github.com/hubblecommand/directional_sprites","last_synced_at":"2026-04-27T22:02:19.319Z","repository":{"id":271266485,"uuid":"830697357","full_name":"HubbleCommand/directional_sprites","owner":"HubbleCommand","description":"n-directional sprites in 2D and 3D, for Godot 4.x","archived":false,"fork":false,"pushed_at":"2025-01-06T16:20:30.000Z","size":6363,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-06T17:28:23.021Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"GDScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HubbleCommand.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-18T19:47:13.000Z","updated_at":"2025-01-06T16:20:34.000Z","dependencies_parsed_at":"2025-01-06T17:28:25.961Z","dependency_job_id":"d9ad81f2-b9a8-4cd3-bc26-e08bf13ebf0f","html_url":"https://github.com/HubbleCommand/directional_sprites","commit_stats":null,"previous_names":["hubblecommand/directional_sprites"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HubbleCommand/directional_sprites","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HubbleCommand%2Fdirectional_sprites","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HubbleCommand%2Fdirectional_sprites/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HubbleCommand%2Fdirectional_sprites/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HubbleCommand%2Fdirectional_sprites/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HubbleCommand","download_url":"https://codeload.github.com/HubbleCommand/directional_sprites/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HubbleCommand%2Fdirectional_sprites/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32356602,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-27T22:02:08.180Z","updated_at":"2026-04-27T22:02:19.312Z","avatar_url":"https://github.com/HubbleCommand.png","language":"GDScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Directional Sprites\nn-directional sprites in 2D and 3D, for Godot 4.x\n\n![3d demo](https://github.com/HubbleCommand/directional_sprites/blob/main/media/demo3d.gif)\n\nMake sure all of your animations and frames have the same orientation and number of directions.\n\n\n## Scripts\nSome helper python scripts for making sprite sheets.\n\n`build_sprite_sheet.py` generates a single image with sprite sheet frames.\n\n`convert_col.py` converts one color to another in a batch operation. Useful for making backgrounds transparent.\n\n\n## 3D : (Animated) Directional Sprite 3D\n\nTwo nodes have been added, `DirectionalSprite3D` and `AnimatedDirectionalSprite3D`.\n\nThey work similar to their non-directional counterparts, [Sprite3D](https://docs.godotengine.org/en/stable/classes/class_sprite3d.html) and [AnimatedSprite3D](https://docs.godotengine.org/en/stable/classes/class_animatedsprite3d.html).\n\nThe only two properties that have been added are `directions` and `orientation`.\n- `directions` is the number of frames / directions each of your frames has.\n- `orientation` is the axis of the direction frames (vertical or horizontal)\n\nFor all other properties, read up on the base nodes linked above.\n\nIn all cases, make sure you have enabled Shadows on your light nodes.\n\n\n## 2D : (Animated) Directional Sprite 2D\nWhile directional sprites are mostly known in the 3D world from games like [DOOM](https://en.wikipedia.org/wiki/Doom_(1993_video_game)) and [Wolfenstein 3D](https://en.wikipedia.org/wiki/Wolfenstein_3D), directional sprites are also prevailant in 2D games like [RimWorld](https://rimworldgame.com/).\n\nAs with 3D, two new 2D nodes are added: `DirectionalSprite2D` and `AnimatedDirectionalSprite2D`.\n\nThey work similar to their non-directional counterparts, [Sprite2D](https://docs.godotengine.org/en/stable/classes/class_sprite2d.html) and [AnimatedSprite2D](https://docs.godotengine.org/en/stable/classes/class_animatedsprite2d.html).\n\nThe only two properties that have been added are `directions` and `orientation`.\n- `directions` is the number of frames / directions each of your frames has.\n- `orientation` is the axis of the direction frames (vertical or horizontal)\n\nFor all other properties, read up on the base nodes linked above.\n\nThe major difference between 2D and 3D is how lighting works.\nRead the next section for details.\n\n\n### Lighting and Shadows\n2D lighting requires a LightOccluder2D nodes, the Sprites won't generate shadow on their own. In all cases, make sure you have enabled Shadows on your light nodes.\n\nWhile the [official documentation](https://docs.godotengine.org/en/stable/tutorials/2d/2d_lights_and_shadows.html) is a good start, it doesn't provide a complete solution.\n\nIn the case of shadows and occluders with sprites, we usually don't want the shadows to self-cast on the sprite itself.\nWith the official example, the `LightOccluder2D`s cast shadows on Sprites, which we don't want.\nTo fix this, follow the solution [detailed here](https://github.com/godotengine/godot/issues/74265#issuecomment-1755039506).\nUse two `PointLight2D`s, each on a different light layer (the `Item Cull Mask` on `Range` and/or `Shadow`).\nOne layer should be for the occluders and shadow casting, while the other should just be to light up the sprites.\nSo, make sure only the Lights on the correct layer have shadows enabled.\nCheck the 2D demo to see it in action.\nNote that having the same `PointLight2D` on different `Range` `Item Cull Mask` layers won't work.\n\nNote that in the future (4.4+), Godot may [use z-index for shadow casting](https://github.com/godotengine/godot/pull/93881).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhubblecommand%2Fdirectional_sprites","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhubblecommand%2Fdirectional_sprites","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhubblecommand%2Fdirectional_sprites/lists"}