feat: Add KoikatsuBlenderPipeline addon with import/export functionality
- Add core addon files (__init__.py, KKPanel.py, preferences.py, common.py) - Add import pipeline with armature, mesh, and material modification modules - Add export pipeline with material baking and FBX preparation utilities - Add material combiner tool for texture atlas generation and optimization - Add extras utilities for animation, rigging, and asset management - Add bone orientation data from better_fbx for accurate skeletal structure - Add comprehensive documentation and wiki with multi-language support (EN, JP, ZH) - Add animation library retargeting lists for ARP and Rokoko motion capture - Add Rigify integration scripts for advanced rigging workflows - Add shader file (KK Shader V8.0.blend) for material rendering - Add manifest and license files for addon distribution - Add changelog documenting version history and improvements - Initialize complete Blender addon project for Koikatsu character import/export
This commit is contained in:
30
exporting/material_combiner/get_pillow.py
Normal file
30
exporting/material_combiner/get_pillow.py
Normal file
@@ -0,0 +1,30 @@
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
from typing import Set
|
||||
from . import globs
|
||||
from ... import common as c
|
||||
from ...interface.dictionary_en import t
|
||||
import bpy
|
||||
|
||||
class InstallPIL(bpy.types.Operator):
|
||||
bl_idname = 'kkbp.get_pillow'
|
||||
bl_label = 'Install Pillow'
|
||||
bl_description = t('pillow_tt')
|
||||
|
||||
def execute(self, context: bpy.types.Context) -> Set[str]:
|
||||
try:
|
||||
from PIL import Image, ImageChops
|
||||
except ImportError:
|
||||
self._install_pillow()
|
||||
|
||||
globs.pil_exist = 'restart'
|
||||
|
||||
self.report({'INFO'}, 'Installation complete')
|
||||
return {'FINISHED'}
|
||||
|
||||
@staticmethod
|
||||
def _install_pillow() -> None:
|
||||
from pip import _internal
|
||||
_internal.main(['install', 'pip', 'setuptools', 'wheel', '-U', '--user'])
|
||||
_internal.main(['install', 'Pillow', '--user'])
|
||||
Reference in New Issue
Block a user