SpaceshipGenerator

A Blender script to procedurally generate 3D spaceships

Github星跟蹤圖

Spaceship Generator

A Blender script to procedurally generate 3D spaceships from a random seed.

Spaceship screenshots

Usage

  • Install Blender 2.76 or greater: http://blender.org/download/
  • Download newest add_mesh_SpaceshipGenerator.zip from the Releases section
  • Under File > User Preferences... > Add-ons > Install From File... open the downloaded ZIP file
  • Under File > User Preferences... > Add-ons enable this script (search for "spaceship")
  • Add a spaceship in the 3D View under Add > Mesh > Spaceship

How it works

Step-by-step animation

Watch on YouTube: https://www.youtube.com/watch?v=xJZyXqJ6nog

  • Start with a box.
  • Build the hull: Extrude the front/rear faces several times, adding random translation/scaling/rotation along the way.
  • Add asymmetry to the hull: Pick random faces and extrude them out in a similar manner, reducing in scale each time.
  • Add detail to the hull: Categorize each face by its orientation and generate details on it such as engines, antenna, weapon turrets, lights etc.
  • Sometimes apply horizontal symmetry.
  • Add a Bevel modifier to angularize the shape a bit.
  • Apply materials to the final result.
  • Take over the universe with your new infinite fleet of spaceships.

Extreme examples

The following screenshots were created using extreme values for the number of hull segments and asymmetry segments to show how the algorithm works.

Extreme spaceship screenshots

Tips and Tricks

  • By default the script will delete all objects starting with Spaceship before generating a new spaceship. To disable this feature, remove or comment out the call to reset_scene() around line 735 in the main function.
  • You can provide a seed to the generate_spaceship() function to always generate the same spaceship. For example, generate_spaceship('michael').
  • The generate_spaceship() function takes many more parameters that affect the generation process. Try playing with them!
  • You can replace the textures with your own ones. All textures are applied using global-space cube UVs. hull_normal.png is a normal map that adds extra surface "greebles". hull_lights_diffuse.png is an additive diffuse texture to set the color of the window lights. hull_lights_emit.png is an emissive texture to make the windows glow in darkness.

Credits

Written for fun as part of the /r/proceduralgeneration June 2016 monthly challenge.

Released under the MIT License.

Authored and maintained by Michael Davies.

GitHub @a1studmuffin
Twitter @butterparty

Special thanks to @panzi for bugfixes, a proper GUI and build script. Also to @mjrthemes for bugfixing.

主要指標

概覽
名稱與所有者a1studmuffin/SpaceshipGenerator
主編程語言Python
編程語言Python (語言數: 1)
平台
許可證Other
所有者活动
創建於2016-06-14 03:16:07
推送於2024-05-25 16:11:50
最后一次提交2020-12-23 11:56:07
發布數4
最新版本名稱v1.1.3 (發布於 )
第一版名稱v0.1.0 (發布於 )
用户参与
星數7.7k
關注者數223
派生數434
提交數40
已啟用問題?
問題數47
打開的問題數16
拉請求數4
打開的拉請求數9
關閉的拉請求數2
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?