Commit Graph
100 Commits
Author SHA1 Message Date
yyc12345 10de948a79 feat: update scripts
- add meshes builder (copyer).
- fix json compressor.
2025-07-24 10:16:58 +08:00
yyc12345 0ae95e927f refactor: re-layput project
- move assets (raw jsons, icons, meshes and i18n data) into the root of repo.
- move script into the root of repo.
- modify blender manifest according to this changes.
- optimize gitignore.
2025-07-24 09:44:38 +08:00
yyc12345 9f591113f8 refactor: refactor toolset (not finished) 2025-07-23 22:35:47 +08:00
yyc12345 685a0b8066 fix: rotate 4 flames when creating sector pair.
- according to Lee623 report, rotate 90 degree for 4 flames startpoint when creating sector pair to correspond with models in ballance asset library.
2025-07-18 14:42:33 +08:00
yyc12345 a1a215ec19 fix: fix span between checkpoint and resetpoint.
- change the span between checkpoint and resetpoint to prevent paper ball model respawn offset error.
- the span between 4 flames and resetpoint now is 3.65
- the span for 2 flames now is 3.3258
- these data were measured by Lee623 and picked by mode number in all original levels (because there is no uniform number in original levels).
2025-07-18 14:30:18 +08:00
yyc12345 3bed920f11 refactor: rename some operators and modules.
- rename module OP_MTL_fix_all_material to OP_MTL_fix_all_materials.
- rename operator BBP_OT_fix_all_material to BBP_OT_fix_all_materials.
- rename module UTIL_naming_convension to UTIL_naming_convention.
- change some translation contexts to correspond with this change.
2025-07-18 14:13:19 +08:00
yyc12345 6dc82aade6 doc: update fake-bpy-module.
- update fake-bpy-module for dev and write its version, which is suit for blender 4.5, in doc.
2025-07-18 09:43:27 +08:00
yyc12345 ac6692cd97 feat: bump version up to 4.3
- update blender version to 4.5 LTS.
- there is no compatibility issue when porting to blender 4.5.
- bump plugin version up to 4.3 in manifest and document (which has not been updated a while).
2025-07-17 20:08:07 +08:00
yyc12345 14de9f3f1b i18n: update translation 2025-01-23 13:09:11 +08:00
yyc12345 dd64c0ce04 feat: finish work of release
- bump up version to 4.2
- update document about translation.
2025-01-21 10:10:36 +08:00
yyc12345 84f6baae6a i18n: basically finish translation 2025-01-20 22:38:29 +08:00
yyc12345 5afbf679ed i18n: update translations 2025-01-20 20:32:08 +08:00
yyc12345 89f5b5990d i18n: update translation 2025-01-20 18:21:14 +08:00
yyc12345 b441063061 i18n: first commit about i18n translation.
- add i18n translation files.
- add document about how to translate this plugin.
- fix some field descriptions in source code.
2025-01-20 16:08:46 +08:00
yyc12345 b96550ca5c feat: finish BME prototype improvement 2025-01-20 10:07:45 +08:00
yyc12345 cc74a2ca8b feat: add i18n for forgetten entries.
- add i18n for progress hints when importing or exporting virtools file.
- add i18n for naming convention report.
2025-01-19 10:52:20 +08:00
yyc12345 f9fe4af1fe feat: update BME structure 2025-01-19 10:29:58 +08:00
yyc12345 4a96906002 feat: update BME prototypes
- update BMe prototypes. add chris suggested component for future changes.
- add new 2 custom function in BME environment.
2025-01-18 19:09:32 +08:00
yyc12345 c448216496 doc: update document 2025-01-17 22:22:51 +08:00
yyc12345 f10c273067 fix: improve BME extractor
- improve BMe extractor with new added classes.
- I have written a half of BME validator, but I gave up now.
	* it takes too much time and I don't want to pay more on it. postpone it to next update.
	* I annotate all of BMe validator code for future implementation.
	* the improvement of BME json files (upgrade them to YAML format) also is postponed.
- change some interface in common.py. synchronize it to other modules using it.
2025-01-17 17:53:03 +08:00
yyc12345 04aa879c22 feat: finish i18n extract work
- masically finish u18n extract work (most fields are extracted)
2025-01-12 15:15:29 +08:00
yyc12345 4ffe29654b feat: add translation context for operators and their properties.
- add translation context for operator, menu, panel and etc. and their associated properties.
- improve some name and description but not finished.
- move reset BME material function inside BMEMaterialsHelper.
- rename variable of collection visitor in BME adder operator for clear meaning.
- replace some message box to report in ballance elements reset operator, BME materials reset operator and rail UV operator
2025-01-11 21:36:11 +08:00
yyc12345 1d7ac76d0e chore: update the generator of json
- add PO file extractor for BME prototypes.
- add validator for BME prototypes but not finished.
- update json builder script.
2025-01-09 21:41:52 +08:00
yyc12345 77315ffbea fix: fix previous commit remained issues.
- vt encodings in list showcase now works.
- modify some usage of message_box to Operator.report to make it more like blender suggested.
2025-01-08 20:20:10 +08:00
yyc12345 0862ecd269 feat: use list to display virtools encodings settings, instead of raw string.
- use list to show bmap encoding settings, instead of user input raw string. it will give a more obvisous interface.
	* add bmap encoding setting properties in ptrprop_resolver.
	* update ptrprop_resolver for more clear usage.
- following features has not been implemented yet.
	* default value for bmap encoding list.
	* the bridge function in ioport_shared module (filter empty item in result)
	* validate encoding list result when importing and exporting virtools file.
2025-01-08 13:21:35 +08:00
yyc12345 f4d3e48be2 refactor: add 2 classes to refactor old code which raise too much erros by linter.
- add TinyMutex to resolve the issue that we can not operate the virtools group infos of 2 individual objects.
	* use this new class for all class need resource mutex, such as ballance element, bme materials and etc.
- add CollectionVisitor to resolve that blender have bad document and type hint for runtime bpy.types.CollectionProperty.
	* now all visit to CollectionProperty are delegated by this class.
2025-01-06 15:12:14 +08:00
yyc12345 6ae8899912 feat: add new operator about convert curve to mesh with group infos.
- add a new operator which can converte selected object to mesh, and if object is curve and has bevel object, it will copy the virtools group info of bevel object at the same time.
- add a hint in virtools group panel to tell user that the virtools group of non-mesh object will not be saved.
2025-01-05 20:06:40 +08:00
yyc12345 76f1cdc3c7 fix: fix various rail creation issue.
- move rail creation function into an individual file, UTIL_rail_creator.py
- add flip options for screw rails. this allow user to create any types of screw rail they needed.
2025-01-04 20:13:20 +08:00
yyc12345 8105b110f2 feat: add default rail material when creating rail.
- add default rail material when creating rail.
	* add Rail material in bme material.
- remove negative screw radius feature when creating curve rail.
	* originally negative screw radius will cause normal flip issue when creating.
	* however, negative screw radius feature can no fulfill each shapes of screw style. it is more convenient using blender mirror feature after creating screw rail.
	* thus I remove this feature, not fix it (I can fix it).
2025-01-04 12:28:59 +08:00
yyc12345 acb87b3844 fix: fix step count error when exporting virtools file 2025-01-04 10:19:31 +08:00
yyc12345 94d5c934c6 fix: fix light direction issue when importing and exporting virtools file. 2025-01-03 23:42:44 +08:00
yyc12345 3372c7a4b7 feat: add light support in exporting virtools file.
Publish docs via GitHub Pages / Deploy docs (push) Has been cancelled
- support light type when exporting virtools.
- both import and export virtools file now support light type. however there is a slight bug about light direction need to be resolved.
- fix bug that exporter throw exception if exported collection contain non-mesh object or exported object is not mesh object.
- fix the usage of BMMeshTrans according to upstream changes.
2025-01-03 17:36:44 +08:00
yyc12345 4181096a9e fix: redirect some reference of bpy.context to context passed by operator argument 2025-01-03 10:37:26 +08:00
yyc12345 89a5e6367b feat: improve name conflict strategy UI layout 2025-01-03 09:55:02 +08:00
yyc12345 cb893b770a feat: add light object support in importing virtools file.
- fix all `def poll(self)` to `def poll(cls)` to let it fit class method name convention.
- fix wrong progress counter when importing virtools file.
- add light support when importing virtools file.
- add corresponding conflict strategy and resolver for light.
2025-01-03 09:36:32 +08:00
yyc12345 2f08455518 feat: add virtools light features.
- add virtools light feature for blender light type and add all essential operators, functions and structs.
- remove PyBMap from repository. order builder fetch it on their own.
- update gitignore.
2024-12-31 14:40:41 +08:00
yyc12345 729e12ed7b feat: update virtools file importer and exporter
- use panel to organise property group in virtools file importer and exporter.
- move all ballance params and virtools params into ioport_shared module and enable different showcase according to the argument passed to show function presenting whether current window is importer or exporter.
- add multiple type ignore to ignore the error of bpy operator member field type hints.
2024-12-30 17:53:42 +08:00
yyc12345 fe47861bd0 fix: fix issue of BME module prototype 2024-11-02 17:44:06 +08:00
yyc12345 c894d88c54 doc: modify document to mark changes
- add universal encoding infos in documentation.
- bump up version to 4.1 for release.
2024-09-21 23:30:56 +08:00
yyc12345 c8d59ef5f4 feat: update PyBMap dependency.
- update PyBMap dependency.
- use BMap 0.2 instead of old one.
- change default encoding name string according to the change of LibCmo changes.
2024-09-21 22:59:14 +08:00
yyc12345 f5c50ae079 fix: fix legacy align issue.
- fix issus that legacy align can not align object with non-1 scale factors.
- refactor some functions in legacy align to have better looking.
- fix issus that legacy fail to align objects since second executing by forcely updating view layer.
2024-09-07 20:34:22 +08:00
yyc12345 b1199f6a21 doc: translate documentation 2024-07-27 11:44:35 +08:00
yyc12345 47a8d81ecd doc: translate documentation 2024-07-26 09:46:16 +08:00
yyc12345 24ac07a3b3 doc: translate documentation 2024-07-25 10:37:16 +08:00
yyc12345 b647d7256f doc: translate documentation 2024-07-24 13:49:13 +08:00
yyc12345 421f01b3db doc: translate documentation 2024-07-23 11:01:41 +08:00
yyc12345 f215d3487f doc: translate documentation 2024-07-22 16:40:52 +08:00
yyc12345 1661f82a07 doc: update english documentation 2024-07-21 14:42:02 +08:00
yyc12345 512e7e868b doc: add english documentation.
- add english documentation for install-plugin and tech-info chapters.
- modify gitignore because we do not need redist folder any more.
2024-07-20 10:26:50 +08:00
yyc12345 427bad4f6b fix: fix various trivial issues
- update blender_manifest.toml to the latest version and fix the issues raised by blender when packaging.
- use blender do packaging work. remove redist.py because blender_manifest.toml has gitignore like filter feature when packaging.
- update document about installing, configurating, building plugin for blender 4.2.
- update a document image for blender 4.2.
2024-07-19 15:25:38 +08:00
yyc12345 209d212287 fix: fix blender mesh writer issue.
- fix blender mesh writer with the reference of FBX Importer.
- ballance map importer now may works as expected (still need more review).
2024-07-18 20:23:21 +08:00
yyc12345 2271b0a621 fix: remove bl_info.
- remove bl_info in __init__.py because blender_manifest.toml has replace it.
2024-07-17 21:20:40 +08:00
yyc12345 6940428b88 fix: fix blender 4.2 mesh issue.
- fix issue that blender 4.2 lost use_auto_smooth and calc_split_normals. (it almost works but not perfect. still need more debugging)
- remove depracted material blend_mode. use modern one instead. (the modern setting make me consufes but it works)
2024-07-17 19:45:35 +08:00
yyc12345 aa602a7bb8 fix: update to blender 4.2 LTS
- update to Blender 4.2 LTS
- fix issue that can not find specular property in priniciple BSDF when applying virtools material.
- update blender manifest toml to let plugin works.
- there are various mesh works need to be fixed in later commits. this commit can not works normally on blender 4.2
2024-07-17 09:23:16 +08:00
yyc12345 8588f097a2 fix: change default screw steps to 28.
- change default screw steps to 28 (7 steps for 90 degree)
- update blender mesh annotation.
2024-05-25 20:32:30 +08:00
yyc12345 5d8ffb7e48 feat: add redist script
- add redist script for the convenience of building plugin package, especially for Blender 4.2
2024-05-21 16:19:13 +08:00
yyc12345 270fddff52 feat: do some trivial adaptions for blender 4.2 LTS
- add blender_manifest.toml
- add a removal note for bl_info in __init__.py.
- it doesn't mean that this plugin now can be used in blender 4.2. I just add some trivial changes which do not break current compatibility to reduce migration work in future.
2024-05-17 09:15:12 +08:00
yyc12345 084e7fbe61 feat: add extra transform for rail creation
- add extra transform for rail creation.
- remove scale from extra transform because it is rarely used. because Ballance can not handle the physicalization of scaled object.
2024-05-13 13:39:42 +08:00
yyc12345 190be6ec61 fix: restore extra transform to identy when entering bme operator. 2024-05-10 15:33:28 +08:00
yyc12345 36e925101e feat: extra transform properties for bme creation.
- add extra transform properties (translation, rotation and scale) for bme creation operator. this is good for "what you seen is what you gotten" and can increase user experience when add bme protorypes. please note these extra transform is applied to object after moving to cursor, not the mesh self.
- fix a weired bug that bme creation execute() may get outdated configurations when switch bme type in pop up window. the solution is simply adding an extra outdated flag checker at the head of execute(). but i have no spare time to research whether this patch is correct for this bug.
2024-05-10 14:44:37 +08:00
yyc12345 84e7e8380f feat: hide some operators in edit mode and add some notify for grouping oper.
- now grouping, ungrouping clear groups operators will show a report at the bottom of blender to indicate their work have done.
- disable fix material, 3ds max align, select by virtools group operators in edit mode to prevent any possible undefined behavior.
2024-04-22 21:06:41 +08:00
yyc12345 c58af8ce48 fix: fix face generation error of BME streets prototype. 2024-04-22 21:06:35 +08:00
yyc12345 07298fd21c feat: add blc params in exporter. fix bme.
- add ballance params section and successive switch in virtools file exporter to allow user manually cancel sector group ensurance which give user a way to export component, not the whole level.
- add mirror matrix detection in bme creation. a mirror matrix will reverse triangle indice order. we need reverse it again when facing mirror matrix. this resolves the issue when applying term 3.
- use mirror, not rotation to create straight floor in bme which give a better looks in game.
2024-04-07 10:35:06 +08:00
yyc12345 3a1a0fb0f6 doc: update document
- add section about ballance related props
2024-04-06 15:43:42 +08:00
yyc12345 3396947115 feat: add ballance map sector field in scene
- add ballance map sector info in scene to indicate the maximum sector count of this map.
- this adding will prevent the bug that the exported ballance map do not have successive sector groups. because original implement will not create sector group if no component in corresponding sector and previous remedy still have bug. and if this happended, ballance will show spaceship in wrong sector. this adding is the final solution of this bug.
- exlarge ballance map sector info when user adding component. the enlarged value will be calculated by user input sector.
- auto enlarge ballance map sector info when importing. this will give user a fluent experience when modifying existing map.
- exporting map will also use ballance map sector info to pre-create successive sector group as term 2 stated.
- move sector name extractor from virtools file exporting module to naming convention module.
2024-04-01 14:39:11 +08:00
yyc12345 6cf2ab895d fix: fix unregister error in virtools group
- fix del attribute error when unregister virtools group.
2024-03-30 16:12:34 +08:00
yyc12345 b039dd8b43 fix: fix grouping and naming error
- fix wood and rail soundeffect grouping error.
- fix checkpoint and resetpoint naming error again (forget to change PC/PR).
2024-02-20 21:52:50 +08:00
yyc12345 8bad1a487c add swing series adder 2024-02-18 22:11:06 +08:00
yyc12345 0f18559d3f chore: switch doc gen from ng to master 2024-02-13 12:19:20 +08:00
yyc12345 5a5053440c update doc english part 2024-02-13 12:06:16 +08:00
yyc12345 02a1222210 feat: flatten uv backward search mode
- support backward successive face searching to resolve some failed flatten uv in floor mode.
2024-02-13 10:58:44 +08:00
yyc12345 f8c344f65e doc: add doc.
- finish uv section of doc.
- fix issue about the wrong calc of coordinate system axis vector in flatten uv (change it from left hand to right hand).
- fix rail uv display text.
2024-02-12 22:39:44 +08:00
yyc12345 0bec108dcb feat: add fix material feature.
bring ballance virtools helper used fix_texture (renamed as fix material to correspond with the real object operated by this function) into blender plugin.
2024-02-12 11:42:09 +08:00
yyc12345 997839a187 feat: select object after creation of floor, rail and component 2024-02-11 17:11:05 +08:00
yyc12345 da71d5560c doc: update manual 2024-02-11 16:38:06 +08:00
yyc12345 02082bf99e fix issue. add doc.
- fix TwoFlames Resetpoint naming error.
- add doc parts.
2024-02-08 23:21:53 +08:00
yyc12345 c82c094519 add shadow group as the essential group for floor type. 2024-02-08 13:50:56 +08:00
yyc12345 8ec101e1f1 update flatten uv
- add `failed` counter for special flatten uv.
- ignore invalid face when checking them to prevent potential recursive checking.
2024-01-22 22:25:04 +08:00
yyc12345 8499c25b67 add redist folder. fix doc and readme 2024-01-14 21:25:12 +08:00
yyc12345 200ac40648 update doc 2024-01-14 17:08:53 +08:00
yyc12345 25091a48a7 finish specific flatten uv 2024-01-14 12:07:47 +08:00
yyc12345 259f99ddf8 refactor flatten for future dev 2024-01-12 23:55:28 +08:00
yyc12345 f123bdacc0 finish bme struct 2024-01-12 17:18:41 +08:00
yyc12345 8f27fec3c8 update bme struct 2024-01-10 22:37:41 +08:00
yyc12345 0d0d4db2db try nomaterial 2024-01-09 21:02:56 +08:00
yyc12345 bfbdf5c99b fix rail cret issues
- add transition rail oper
- set sharp edge only when cap is available.
- fix normal flip issue in straight rail.
2024-01-09 17:52:30 +08:00
yyc12345 50b2cf2cf1 add docs. add mkdocs deploy 2024-01-08 23:36:59 +08:00
yyc12345 013096459a finish rail adder 2024-01-08 15:08:20 +08:00
yyc12345 31aa5c3127 add null normal support in bme. fix rail cret draw() 2024-01-08 10:28:56 +08:00
yyc12345 f9502fe2d4 basically finish rail adder 2024-01-07 17:33:21 +08:00
yyc12345 b5565d796a add a part of rail adder 2024-01-06 23:51:11 +08:00
yyc12345 6b31401240 add bme struct. fix bmap type hint 2024-01-04 17:29:01 +08:00
yyc12345 2c006b4528 add conflict resolver 2024-01-04 10:35:52 +08:00
yyc12345 680f367a42 fix issues
- disable bmx import/export temporaryly
- optimize the ui display of importing/exporting. (use box to organize props)
- place button horizontally, not vertically in virtools material.
- disallow apply in legacy align if no axis selected.
- add applied step counter in legacy alignment.
- add feedback for reseting bme material/component. (add a message box to show success)
2024-01-01 13:07:10 +08:00
yyc12345 318d661ac1 separate gitignore and add document 2023-12-31 19:31:41 +08:00
yyc12345 321e1b6fe9 finish rename opers 2023-12-31 17:35:15 +08:00
yyc12345 20aba6c273 fix issue. add feat.
- add ignored bmesh update function in flatten uv
- finish select by group, add, rm, clear group functions.
2023-12-30 22:17:42 +08:00
yyc12345 c5ce6e8a2c add border in bme 2023-12-27 16:05:35 +08:00
yyc12345 9315ff723d fix issues
- apply transform when creating BME struct's vertices and faces.
- add 3ds max align operator. support Apply button in a nasty way.
2023-12-26 22:23:56 +08:00
yyc12345 50b7eb0bce fix issues
- fix Sector group no-successive issue when saving as nmo
- add nong ventilator adder.
- use copy.copy to write some code to reduce the calling of get/set_raw_vt_mtl()
- keep texture when apply virtools mtl preset.
2023-12-25 15:04:22 +08:00