From 1e867a553e6cecae9dfcd8fa19e419c3f10253a8 Mon Sep 17 00:00:00 2001 From: Aurelien Vaillant Date: Sat, 4 May 2024 16:30:53 +0200 Subject: [PATCH] Clear unused asset, and make a basic addon --- .github/lint.py | 25 ------- .github/package.py | 15 ---- .github/version.py | 74 ------------------- .github/workflows/initialize_data.yml | 54 -------------- .github/workflows/linter.yml | 29 -------- .github/workflows/package_addon.yml | 71 ------------------ .github/workflows/package_preset.yml | 46 ------------ .github/workflows/pr_main.yml | 60 --------------- .github/workflows/pr_main_start.yml | 46 ------------ .github/workflows/unit_test.yml | 28 ------- Fange Pipeline/Pipline.py | 16 ++++ .../__init__.py | 12 +-- presets/sm-unity-building.py | 41 ++++++++++ presets/sm-unity-character.py | 41 ++++++++++ presets/sm-unity-props.py | 41 ++++++++++ presets/sm-unity-tile.py | 41 ++++++++++ readme.md | 46 ++---------- tests/dependency.json | 7 -- 18 files changed, 194 insertions(+), 499 deletions(-) delete mode 100644 .github/lint.py delete mode 100644 .github/package.py delete mode 100644 .github/version.py delete mode 100644 .github/workflows/initialize_data.yml delete mode 100644 .github/workflows/linter.yml delete mode 100644 .github/workflows/package_addon.yml delete mode 100644 .github/workflows/package_preset.yml delete mode 100644 .github/workflows/pr_main.yml delete mode 100644 .github/workflows/pr_main_start.yml delete mode 100644 .github/workflows/unit_test.yml create mode 100644 Fange Pipeline/Pipline.py rename {blender_addon_folder => Fange Pipeline}/__init__.py (61%) create mode 100644 presets/sm-unity-building.py create mode 100644 presets/sm-unity-character.py create mode 100644 presets/sm-unity-props.py create mode 100644 presets/sm-unity-tile.py diff --git a/.github/lint.py b/.github/lint.py deleted file mode 100644 index d4d0138..0000000 --- a/.github/lint.py +++ /dev/null @@ -1,25 +0,0 @@ -import sys -import os -import pathlib - -from pylint import lint - - -if __name__ == "__main__": - folder: str = '' - for v in sys.argv: - if '--module=' in v: - folder = v.replace('--module=', '') - - if folder is False: - print(f'Module folder not set.') - sys.exit(1) - - run = lint.Run([f'--rcfile={pathlib.Path(os.getcwd(), "linter", ".pylintrc")}', folder], - do_exit=False) - - if run.linter.stats.fatal or run.linter.stats.error: - print('Pylint failed.') - sys.exit(1) - - sys.exit(0) diff --git a/.github/package.py b/.github/package.py deleted file mode 100644 index 0778b4e..0000000 --- a/.github/package.py +++ /dev/null @@ -1,15 +0,0 @@ -import glob -import os - - -def get_folder_name(): - addon = glob.glob(os.getcwd() + "/*/__init__.py", recursive=True) - - return os.path.basename(os.path.dirname(addon[0])) - - -if __name__ == "__main__": - name = get_folder_name() - - # Keep the print value, it's request to output a string value available - print(name) diff --git a/.github/version.py b/.github/version.py deleted file mode 100644 index f086507..0000000 --- a/.github/version.py +++ /dev/null @@ -1,74 +0,0 @@ -import os -import re -import sys - -from pathlib import Path - - -class SetupVersion: - def __init__(self, version: str, folder: str): - self.addon_file = Path(os.getcwd(), folder, '__init__.py') - self.tag = self.conform_tag_to_blender(version) - self.update_addon_init() - - def update_addon_init(self): - """Simple function to update the bl_info to set the Git tag release""" - regex, update = r'[0-9]{1,2}\, [0-9]{1,2}\, [0-9]{1,2}', '' - - try: - with open(self.addon_file, "r") as f: - i = 0 - lines = f.readlines() - for line in lines: - if ' \'version\':' in line: - print('Actual set : ', line) - line = re.sub(regex, self.tag, line) - lines[i] = line - update = lines - print('Update version : ', line) - break - i += 1 - - with open(self.addon_file, 'w') as f: - f.writelines(update) - - except FileNotFoundError as exception: - print(f'Can\'t find a file :\n\t{exception}') - - @staticmethod - def conform_tag_to_blender(version): - """This function convert all '.' with a coma and remove the alphabetic entry, to be ready with blender 'bl - info' value """ - version = re.sub(r'\.', ', ', version) - version = version.replace('v', '') - - return version - - -class SetupError(Exception): - """No tag or folder name valid""" - pass - - -if __name__ == "__main__": - tag, name = '', '' - - for value in sys.argv: - if '--tag' in value: - tag = value.replace('--tag=', '') - print(f'[UpdateVersion] Set the tag {tag}') - - if 'name' in value: - name = value.replace('--name=', '') - print(f'[UpdateVersion] Set the folder {name}') - - try: - if not tag or not name: - raise SetupError - else: - print(f'[UpdateVersion] Set the tag {tag}, for "{name}"') - bump = SetupVersion(tag, name) - - except SetupError: - print(SetupError.__doc__) - sys.exit(1) diff --git a/.github/workflows/initialize_data.yml b/.github/workflows/initialize_data.yml deleted file mode 100644 index a6449bd..0000000 --- a/.github/workflows/initialize_data.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Create base release - -on: - workflow_call: - outputs: - version_type: - description: "Give the bump type for this release" - value: ${{ jobs.init-release-data.outputs.version_type }} - version_number: - description: "String about the tag version, integer only" - value: ${{ jobs.init-release-data.outputs.version_number }} - version_draft: - description: "Boolean if the release are draft or not" - value: ${{ jobs.init-release-data.outputs.version_draft }} - version_name: - description: "Number version with a prefix v." - value: v${{ jobs.init-release-data.outputs.version_name }} - -jobs: - init-release-data: - name: Initialize all data about the package - runs-on: ubuntu-latest - outputs: - version_type: ${{ steps.bump_setup.outputs.type }} - version_number: ${{ steps.semantic_setup.outputs.version }} - version_draft: ${{ steps.semantic_setup.outputs.draft }} - version_name: ${{ steps.semantic_setup.outputs.version }} - steps: - - name: Get the Semantic tag Version - id: get_semantic_setup - uses: oprypin/find-latest-tag@v1.1.0 - with: - repository: ${{ github.repository }} - releases-only: true - prefix: 'v' - token: ${{ secrets.GITHUB_TOKEN }} - - - name: From all use case, get the Tag version - id: semantic_setup - run: | - tag=${{ steps.get_semantic_setup.outputs.tag }} - if [ "${{ github.event.action }}" == "closed" ]; then - echo "Close the pull request, get the previous tag" - echo "::set-output name=version::${tag:1}" - echo "::set-output name=draft::false" - elif [ "${{ github.event.action }}" == "opened" ]; then - echo "Create a new tag from a new pull request" - echo "::set-output name=version::${{ steps.new_semantic_setup.outputs.version }}" - echo "::set-output name=draft::true" - else - echo "Update the pull request, keep the tag value" - echo "::set-output name=version::${tag:1}" - echo "::set-output name=draft::true" - fi diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml deleted file mode 100644 index 9a37468..0000000 --- a/.github/workflows/linter.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Pylinter - -on: - workflow_call: - push: - branches-ignore: - - main - - develop - - -jobs: - unit-test: - name: Python Linter - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - uses: actions/setup-python@v2 - with: - python-version: "3.10" - - name: Install the linter app and set package name - id: config - run: | - echo "::set-output name=folder::$(python '.github/package.py')" - python -m pip install --upgrade pip - python -m pip install -r linter/requirements_linter.txt - - name: Execute Pylint - run: | - cd ${{ github.workspace }} - python '${{ github.workspace }}/.github/lint.py' --module=${{ steps.config.outputs.folder }} diff --git a/.github/workflows/package_addon.yml b/.github/workflows/package_addon.yml deleted file mode 100644 index 363415e..0000000 --- a/.github/workflows/package_addon.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: Package Blender Plugin - -# How to start the Github Action -on: - workflow_call: - inputs: - num_version: - description: 'Get the desired number version' - type: string - required: true - default: '0.0.0' - name_version: - description: 'The release name used' - type: string - required: true - default: 'v0.0.0' - draft_version: - description: 'Info about the release, publish or a draft' - type: string - required: true - default: 'false' - - -# Execute this command -jobs: - make-archive: - name: Make Addon Package - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - - name: Setup package variable - id: folder - run: | - echo "::set-output name=folder::$(python '.github/package.py')" - echo "::set-output name=package::$(python '.github/package.py').zip" - - # Update the bl info version, update the init file and push if needed - - name: Change version number in the bl info addon data - run: python '.github/version.py' --tag=${{ inputs.num_version }} --name=${{ steps.folder.outputs.folder }} - - - name: Commit the previous update - uses: actions-js/push@v1.3 - if: ${{ github.event.action }} == 'opened' - with: - github_token: ${{secrets.GITHUB_TOKEN}} - author_name: Moderlab - author_email: a.vaillant@moderlab.com - message: '[Bot] Bump to ${{ inputs.num_version }} version.' - branch: develop - force: true - - # Make an archive with the plugin source only - - name: Create zip archive release - run: | - cd '${{ github.workspace }}' - zip -r '${{ github.workspace }}/releases/${{ steps.folder.outputs.package }}' ${{ steps.folder.outputs.folder }} - - - uses: actions/upload-artifact@v2 - with: - name: ${{ steps.folder.outputs.folder }} - path: ${{ github.workspace }}/releases/${{ steps.folder.outputs.package }} - - - name: Update the github release - if: github.event_name == 'pull_request' - uses: johnwbyrd/update-release@v1.0.0 - with: - token: ${{ secrets.GITHUB_TOKEN }} - files: '${{ github.workspace }}/releases/${{ steps.folder.outputs.package }}' - release: ${{ inputs.name_version }} - tag: ${{ inputs.name_version }} \ No newline at end of file diff --git a/.github/workflows/package_preset.yml b/.github/workflows/package_preset.yml deleted file mode 100644 index 44277ab..0000000 --- a/.github/workflows/package_preset.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Package Blender Plugin - -# How to start the Github Action -on: - workflow_call: - inputs: - name_version: - description: 'The release name used' - type: string - required: true - default: 'v0.0.0' - - -# Execute this command -jobs: - make-archive: - name: Make Addon Package - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - - name: Setup package variable - id: folder - run: | - echo "::set-output name=folder::$(python '.github/package.py')_preset" - echo "::set-output name=package::$(python '.github/package.py')_preset.zip" - - # Make an archive with the plugin source only - - name: Create zip archive release - run: | - cd '${{ github.workspace }}/presets' - zip -r '../releases/${{ steps.folder.outputs.package }}' '.' - - - uses: actions/upload-artifact@v2 - with: - name: ${{ steps.folder.outputs.folder }} - path: ${{ github.workspace }}/releases/${{ steps.folder.outputs.package }} - - - name: Update the github release - if: github.event_name == 'pull_request' - uses: johnwbyrd/update-release@v1.0.0 - with: - token: ${{ secrets.GITHUB_TOKEN }} - files: '${{ github.workspace }}/releases/${{ steps.folder.outputs.package }}' - release: ${{ inputs.name_version }} - tag: ${{ inputs.name_version }} \ No newline at end of file diff --git a/.github/workflows/pr_main.yml b/.github/workflows/pr_main.yml deleted file mode 100644 index 0c7921c..0000000 --- a/.github/workflows/pr_main.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Create addon release - -on: - pull_request: - branches: - [main] - types: - [edited, synchronize, closed] - - -jobs: - init-release-data: - name: Initialize all data about the package - uses: Moderlab-Production/BlenderTemplate/.github/workflows/initialize_data.yml@main - - unit-test: - uses: Moderlab-Production/BlenderTemplate/.github/workflows/unit_test.yml@main - - py-linter: - uses: Moderlab-Production/BlenderTemplate/.github/workflows/linter.yml@main - - release-package-addon: - name: Generate archive package addon - needs: - - init-release-data - - unit-test - - py-linter - uses: Moderlab-Production/BlenderTemplate/.github/workflows/package_addon.yml@main - with: - num_version: ${{ needs.init-release-data.outputs.version_number }} - name_version: ${{ needs.init-release-data.outputs.version_name }} - draft_version: ${{ needs.init-release-data.outputs.version_draft }} - - release-package-preset: - name: Generate archive package preset - needs: - - init-release-data - - unit-test - - py-linter - uses: Moderlab-Production/BlenderTemplate/.github/workflows/package_preset.yml@main - with: - name_version: ${{ needs.init-release-data.outputs.version_name }} - - publish-release: - name: Publish the Github Release - needs: - - init-release-data - - release-package-addon - - release-package-preset - runs-on: ubuntu-latest - steps: - - name: Update/Publish the release - uses: tubone24/update_release@v1.3.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAG_NAME: ${{ needs.init-release-data.outputs.version_name }} - with: - release_name: ${{ needs.init-release-data.outputs.version_name }} - body: '' - prerelease: ${{ needs.init-release-data.outputs.version_draft }} diff --git a/.github/workflows/pr_main_start.yml b/.github/workflows/pr_main_start.yml deleted file mode 100644 index 99a5157..0000000 --- a/.github/workflows/pr_main_start.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Create addon release - -on: - pull_request: - branches: - [main] - types: - [opened] - - -jobs: - init-release: - name: Generate the release - runs-on: ubuntu-latest - steps: - - name: Setup bump release - id: bump_setup - run: | - if [ ${{ contains(github.event.pull_request.labels.*.name, 'release:major') }} == true ]; then - echo "::set-output name=type::major" - elif [ ${{ contains(github.event.pull_request.labels.*.name, 'release:minor') }} == true ]; then - echo "::set-output name=type::minor" - else - echo "::set-output name=type::patch" - fi - - - uses: actions/checkout@main - - - name: Create new Semantic Version - uses: zwaldowski/semver-release-action@v2 - id: new_semantic_setup - with: - bump: ${{ steps.bump_setup.outputs.type }} - github_token: ${{ secrets.GITHUB_TOKEN }} - dry_run: true - prefix: v - - - name: Make the github release - uses: ncipollo/release-action@v1.10.0 - with: - token: ${{ secrets.GITHUB_TOKEN }} - prerelease: true - tag: ${{ steps.new_semantic_setup.outputs.version_tag }} - - unit-test: - uses: Moderlab-Production/BlenderTemplate/.github/workflows/unit_test.yml@main diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml deleted file mode 100644 index 6a2e732..0000000 --- a/.github/workflows/unit_test.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Unit Test - -on: - workflow_call: - push: - branches-ignore: - - main - - develop - - -jobs: - unit-test: - name: Unit Test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - uses: actions/setup-python@v2 - with: - python-version: "3.10" - - name: Setup python to execute all Unit Test - run: | - python -m pip install --upgrade pip - python -m pip install -r tests/requirements.txt - - - name: Start all Unit Test - run: | - cd ${{ github.workspace }} - python tests/main.py \ No newline at end of file diff --git a/Fange Pipeline/Pipline.py b/Fange Pipeline/Pipline.py new file mode 100644 index 0000000..b8d6182 --- /dev/null +++ b/Fange Pipeline/Pipline.py @@ -0,0 +1,16 @@ +""" +Pipeline to export Placeholder inside Unity + +About building setup: + - Get each placeholder collection, and export it has unique mesh with the `SM_` prefix + +""" + +import bpy + +coll = 'Placeholder' + +for collection in bpy.data.collections: + print(f'[Pipeline] Collection "{collection.name}"') + if collection.name is 'coll': + print(f'[Pipeline] Collection placeholder found') \ No newline at end of file diff --git a/blender_addon_folder/__init__.py b/Fange Pipeline/__init__.py similarity index 61% rename from blender_addon_folder/__init__.py rename to Fange Pipeline/__init__.py index b6aa4d0..9d5d813 100644 --- a/blender_addon_folder/__init__.py +++ b/Fange Pipeline/__init__.py @@ -1,15 +1,15 @@ import bpy bl_info = { - 'name': 'Addon Name', - 'description': 'Add your description', - 'author': 'Moderlab, Aurelien Vaillant, Nicolas Salles, Jeremy Duchesne', - 'version': (0, 0, 0), - 'blender': (3, 0, 0), + 'name': 'Fange Pipeline', + 'description': 'Pipeline about the game project "Fange"', + 'author': 'Graou Studio, Aurelien Vaillant', + 'version': (0, 0, 1), + 'blender': (4, 1, 0), 'doc_url': "", 'tracker_url': "", 'support': "COMMUNITY", - 'category': 'Moderlab', + 'category': 'Graou Studio', } modules_class = [ diff --git a/presets/sm-unity-building.py b/presets/sm-unity-building.py new file mode 100644 index 0000000..cae0b10 --- /dev/null +++ b/presets/sm-unity-building.py @@ -0,0 +1,41 @@ +import bpy +op = bpy.context.active_operator + +#op.filepath = 'W:\\Graou Studio\\Game Projects\\Fange Prototype\\Assets\\Graph\\Buildings\\' +op.use_selection = True +op.use_visible = False +op.use_active_collection = False +op.global_scale = 1.0 +op.apply_unit_scale = True +op.apply_scale_options = 'FBX_SCALE_NONE' +op.use_space_transform = True +op.bake_space_transform = True +op.object_types = {'MESH'} +op.use_mesh_modifiers = True +op.use_mesh_modifiers_render = True +op.mesh_smooth_type = 'OFF' +op.colors_type = 'SRGB' +op.prioritize_active_color = False +op.use_subsurf = False +op.use_mesh_edges = False +op.use_tspace = False +op.use_triangles = False +op.use_custom_props = False +op.add_leaf_bones = True +op.primary_bone_axis = 'Y' +op.secondary_bone_axis = 'X' +op.use_armature_deform_only = False +op.armature_nodetype = 'NULL' +op.bake_anim = False +op.bake_anim_use_all_bones = True +op.bake_anim_use_nla_strips = True +op.bake_anim_use_all_actions = True +op.bake_anim_force_startend_keying = True +op.bake_anim_step = 1.0 +op.bake_anim_simplify_factor = 1.0 +op.path_mode = 'AUTO' +op.embed_textures = False +op.batch_mode = 'OFF' +op.use_batch_own_dir = True +op.axis_forward = 'X' +op.axis_up = 'Y' diff --git a/presets/sm-unity-character.py b/presets/sm-unity-character.py new file mode 100644 index 0000000..d019c70 --- /dev/null +++ b/presets/sm-unity-character.py @@ -0,0 +1,41 @@ +import bpy +op = bpy.context.active_operator + +#op.filepath = 'W:\\Graou Studio\\Game Projects\\Fange Prototype\\Assets\\Graph\\Characters\\' +op.use_selection = True +op.use_visible = False +op.use_active_collection = False +op.global_scale = 1.0 +op.apply_unit_scale = True +op.apply_scale_options = 'FBX_SCALE_NONE' +op.use_space_transform = True +op.bake_space_transform = True +op.object_types = {'MESH'} +op.use_mesh_modifiers = True +op.use_mesh_modifiers_render = True +op.mesh_smooth_type = 'OFF' +op.colors_type = 'SRGB' +op.prioritize_active_color = False +op.use_subsurf = False +op.use_mesh_edges = False +op.use_tspace = False +op.use_triangles = False +op.use_custom_props = False +op.add_leaf_bones = True +op.primary_bone_axis = 'Y' +op.secondary_bone_axis = 'X' +op.use_armature_deform_only = False +op.armature_nodetype = 'NULL' +op.bake_anim = False +op.bake_anim_use_all_bones = True +op.bake_anim_use_nla_strips = True +op.bake_anim_use_all_actions = True +op.bake_anim_force_startend_keying = True +op.bake_anim_step = 1.0 +op.bake_anim_simplify_factor = 1.0 +op.path_mode = 'AUTO' +op.embed_textures = False +op.batch_mode = 'OFF' +op.use_batch_own_dir = True +op.axis_forward = 'X' +op.axis_up = 'Y' diff --git a/presets/sm-unity-props.py b/presets/sm-unity-props.py new file mode 100644 index 0000000..9a76bbd --- /dev/null +++ b/presets/sm-unity-props.py @@ -0,0 +1,41 @@ +import bpy +op = bpy.context.active_operator + +#op.filepath = 'D:\\Users\\Aurelien\\Documents\\untitled.fbx' +op.use_selection = True +op.use_visible = False +op.use_active_collection = False +op.global_scale = 1.0 +op.apply_unit_scale = True +op.apply_scale_options = 'FBX_SCALE_NONE' +op.use_space_transform = True +op.bake_space_transform = True +op.object_types = {'MESH'} +op.use_mesh_modifiers = True +op.use_mesh_modifiers_render = True +op.mesh_smooth_type = 'OFF' +op.colors_type = 'SRGB' +op.prioritize_active_color = False +op.use_subsurf = False +op.use_mesh_edges = False +op.use_tspace = False +op.use_triangles = False +op.use_custom_props = False +op.add_leaf_bones = True +op.primary_bone_axis = 'Y' +op.secondary_bone_axis = 'X' +op.use_armature_deform_only = False +op.armature_nodetype = 'NULL' +op.bake_anim = False +op.bake_anim_use_all_bones = True +op.bake_anim_use_nla_strips = True +op.bake_anim_use_all_actions = True +op.bake_anim_force_startend_keying = True +op.bake_anim_step = 1.0 +op.bake_anim_simplify_factor = 1.0 +op.path_mode = 'AUTO' +op.embed_textures = False +op.batch_mode = 'OFF' +op.use_batch_own_dir = True +op.axis_forward = 'X' +op.axis_up = 'Y' diff --git a/presets/sm-unity-tile.py b/presets/sm-unity-tile.py new file mode 100644 index 0000000..405a765 --- /dev/null +++ b/presets/sm-unity-tile.py @@ -0,0 +1,41 @@ +import bpy +op = bpy.context.active_operator + +#op.filepath = 'W:\\Graou Studio\\Game Projects\\Fange Prototype\\Assets\\Graph\\' +op.use_selection = True +op.use_visible = False +op.use_active_collection = False +op.global_scale = 1.5 +op.apply_unit_scale = True +op.apply_scale_options = 'FBX_SCALE_NONE' +op.use_space_transform = True +op.bake_space_transform = True +op.object_types = {'MESH'} +op.use_mesh_modifiers = True +op.use_mesh_modifiers_render = True +op.mesh_smooth_type = 'OFF' +op.colors_type = 'SRGB' +op.prioritize_active_color = False +op.use_subsurf = False +op.use_mesh_edges = False +op.use_tspace = False +op.use_triangles = False +op.use_custom_props = False +op.add_leaf_bones = True +op.primary_bone_axis = 'Y' +op.secondary_bone_axis = 'X' +op.use_armature_deform_only = False +op.armature_nodetype = 'NULL' +op.bake_anim = False +op.bake_anim_use_all_bones = True +op.bake_anim_use_nla_strips = True +op.bake_anim_use_all_actions = True +op.bake_anim_force_startend_keying = True +op.bake_anim_step = 1.0 +op.bake_anim_simplify_factor = 1.0 +op.path_mode = 'AUTO' +op.embed_textures = False +op.batch_mode = 'OFF' +op.use_batch_own_dir = True +op.axis_forward = 'X' +op.axis_up = 'Y' diff --git a/readme.md b/readme.md index 7c91ccd..23b9e11 100644 --- a/readme.md +++ b/readme.md @@ -1,40 +1,10 @@ -[![Python 3.10.2](https://img.shields.io/badge/python-3.10.2-sucess.svg)](https://www.python.org/downloads/release/python-3102/) -![Blender](https://img.shields.io/badge/blender-3.1.0-sucess) +[![Python 3.11](https://img.shields.io/badge/python-3.11-sucess.svg)](https://www.python.org/downloads/release/python-3102/) +![Blender](https://img.shields.io/badge/blender-4.1.1-sucess) -# Blender Addon -This repository is a toolbox to create a new blender addon. To used-it, clone this repository and rename the folder "blender_addon_folder" with your addon name. -It's important to change some files : -- [x] Update the file "tests/main.py", line 29, set your addon name. - ```python - # Prepare Blender and Unreal dependency - generate_archive(archives, 'blender_addon_folder') - ``` -- [x] You can remove the folder "presets" and disable the workflow (`.github/workflows/pr_main.yml`, line 38 and 53) +# Fange Pipeline +This addon control a bridge with Blender and Unity - -> ⚠️ It's more easy to use the "_" with your addon folder name, the "-" character can be problematic with python use. - -All features covered with this template are : -- [x] Generate addon release (.zip archive) -- [x] Generate preset release (.zip archive) -- [x] Update addon version (bl info) with tag name -- [x] Execute unit test with Github Action (check if the addon can be installed with blender) -- [x] Configuration with Pycharm to test locally - - -## Unit Test -All unit tests call docker image [stilobique/blender](https://hub.docker.com/repository/docker/stilobique/blender). It's a simple ubuntu image with blender compile. -If you want change the blender version tested, edit the `main.py` inside the `tests` folder ; change the tag version with your requested tag. - -`````python -class Container(enum.Enum): - """Enumerate about the Geometry node""" - BLENDER = ContainerObject(name='Blender', image='stilobique/blender', tag='3.1.2') -````` - - -# Addons/Plugins dependency -Update json file `tests/dependency.json` with name, archive and repository Github path. Each entry require `archive -name`, the repository url path '{owner}/{repo}' and optional parameter if the release needed to be a prerelease. - -> ⛔ The `moderlab_plugin` need to be on last entry. +# Todo Features +- [ ] Linter check +- [ ] Unity Test +- [ ] Release \ No newline at end of file diff --git a/tests/dependency.json b/tests/dependency.json index a449c26..827c7d2 100644 --- a/tests/dependency.json +++ b/tests/dependency.json @@ -1,11 +1,4 @@ { "blender": { - "moderlab_type": ["moderlab_type.zip", "Moderlab-Production/BlenderObjectType", "prerelease"], - "moderlab_pie": ["moderlab_plugin.zip", "Moderlab-Production/BlenderPieMenu"], - "moderlab_plugin": ["moderlab_plugin.zip", "Moderlab-Production/BlenderPlugin"] - }, - "unreal": { - "unreal-pipeline": ["unreal-moderlab-pipeline.zip", "Moderlab-Production/UnrealPipeline"], - "unreal-type": ["Moderlab-Unreal-Type.zip", "Moderlab-Production/UnrealType"] } } \ No newline at end of file