永久在线亚洲观看|亚洲日韩久久AV无码|亚洲无码视频在线免费看|欧美亚洲一区二区三区视频|人人澡人人澡人人看添AV|动漫精品视频一区二区三区|亚洲国产另类久久久精品极度|极品美女熟妇又黄又爽视频一区



  • 速看(blender的插件在哪)blender啟用插件,blender插件開發(fā)入門,一天一天歌詞,

    保健品 nanfang 2024-04-16 01:50 217 0

    1.blender插件開發(fā)教程

    身為游戲開發(fā)者,不想只用blender建模,想寫插件提升工作效率?一、介紹我希望這篇文章可以讓你快速入門,早知道插件的套路,少走彎路,這篇文章將先直接快速演示一遍如何創(chuàng)建插件工程,從為blender添加一個(gè)簡單實(shí)用小功能開始,開始帶大家在接下來的時(shí)間逐漸熟悉blender插件開發(fā),然辦公家具定制后才是回過頭來,介紹必要的常識資料。

    2.blender插件有什么用

    (我想大家在blender畫貼圖后,一定會一遍一遍不厭其煩的手動保存貼圖-UV/Image_Editor-Image-Save All Images,因?yàn)閎lender文件保存時(shí)不會保存貼圖等數(shù)據(jù),一旦什么時(shí)候忘記保存貼圖,在心安理得保存完blender文件后關(guān)閉blender猛然想起貼圖沒了,可謂欲吐血。

    3.blender插件怎么使用

    這次要添加的簡單又極其實(shí)用的功能便是:保存blender文件時(shí)自動保存所有已修改圖片)

    4.blender插件介紹

    建議跟隨本文章演示做一遍,本篇文章創(chuàng)建的基礎(chǔ)工程將在未來不斷填充擴(kuò)展功能本文章使用2辦公家具定制.79版本,建議插件入門不要使用2.8版本二、創(chuàng)建第一個(gè)插件工程1、進(jìn)入blender的用戶插件文件夾,創(chuàng)建工程文件

    5.blender自帶插件

    上兩圖貼出了blender的兩個(gè)插件路徑第一個(gè)路徑是用戶目錄插件,目錄:user\AppData\Roaming\Blender Foundation\Blender\scripts\addons,代表非系統(tǒng)原生插件,blender所有安裝的外置插件最終都會被解壓放置到這個(gè)文件夾下。

    6.blender實(shí)用插件

    安裝插件可以在blender的addon界面直接選擇zip文件安裝,也可以把zip文件中文件夾直接拖入此目錄完成安裝第二個(gè)是系統(tǒng)插件路徑,不建議將自辦公家具定制己寫的插件放入此地,此地不少系統(tǒng)插件的代碼可在以后做參考用,值得了解。

    7.blender必備插件

    請?jiān)趗ser\AppData\Roaming\Blender Foundation\Blender\scripts\addons文件夾下新建工程文件夾HelloAddon,并在HelloAddon文件夾下再次新建三個(gè)文件夾“command_

    8.blender自帶插件講解

    operators”"model_data"、"view_panels"工程文件布局仿造mvc,在前期,我們會經(jīng)常與command_operators與view panels打交道,組合blender自身的命令與編寫相關(guān)界面,至于數(shù)據(jù)辦公家具定制層自然也都是blender內(nèi)置的各種數(shù)據(jù)了,基本不需要自定義數(shù)據(jù)層,暫不關(guān)注model_data文件夾。

    9.blender插件網(wǎng)

    我使用的文本編輯器為sublime3,僅有方便打開工程文件與python語法高亮功能:

    10.blender插件安裝在哪

    2、新建基礎(chǔ)腳本a.HelloAddon文件夾下新建入口腳本__init__.py

    bl_info = { "name": "HelloAddon", "author": "作者", "version": (1, 0), "blender": (2, 79, 0), "loc辦公家具定制ation": "View3D > Tool Shelf >HelloAddon Panel", "description": "插件描述", "warning": "", "wiki_url": "", "category": "3D View", } import bpy import logging from . import model_data from . import command_operators from . i辦公家具定制mport view_panels def register(): bpy.utils.register_module(__name__) command_operators.register() view_panels.register() def unregister(): bpy.utils.unregister_module(__name__) command_operators.unregister() view_panels.unregister(辦公家具定制) if __name__ == "__main__": register()

    以上代碼就是套路,不需要理解,主體為bpy.utils.register_module(__name_),作用是注冊import進(jìn)來的所有模塊至于command_operators.register() 與 view_panels.register()則代表其他非模塊相關(guān)的注冊。

    這里的代碼以后要新建工程直接ctrl c即可。view_panels文件夾底新建腳本_init__.py

    import bpy def register(): pass 辦公家具定制 def unregister(): pass3、開始添加自動保存圖片功能command_operators文件夾下新建腳本save_dirty_images.py

    import bpy from bpy.app.handlers import persistent from bpy.types import Operator @persistent def save_dirty_images(dummy): bpy.ops.image.save_dirty() pr辦公家具定制int(save image)

    保存文件時(shí)自動保存圖片的其中一句關(guān)鍵代碼就在這里,即使用了系統(tǒng)命令bpy.ops.image.savedirty()擴(kuò)展:可以在blender的系統(tǒng)腳本中找到此命令的類SaveDirty(Operator) 查看實(shí)現(xiàn)path:blender/release/scripts/startup/bl_operators/image.py:。

    這個(gè)類的參數(shù)Operator,代表此類為blender可調(diào)用的操作類,其他函數(shù)中可根據(jù)bl_idname中的值直接調(diào)用執(zhí)行此類的execute方法,bl_label為blender界面中直接調(diào)用執(zhí)行此方法的命令名稱,可在blender辦公家具定制2.79中空格鍵鍵入SaveAllDirtyImages直接執(zhí)行此類中的execute中的函數(shù)功能。

    我們的腳本中首先使用了一個(gè)空函數(shù)save_dirty_images(dummy)調(diào)用命令bpy.ops.image.save_dirty(),即執(zhí)行系統(tǒng)類SaveDirty(operator)的execute方法,這樣包裝起來是為了后續(xù)要將此函數(shù)傳入blender的保存文件回調(diào)方法中做參數(shù),該方法接受一個(gè)函數(shù)而不是方法,且@persistent與(dummy)是必須的參數(shù)。

    此外我們在save_dirty_images函數(shù)底下 print(save image)輸出語句,以便待會能在控制臺看到執(zhí)行辦公家具定制成功的消息這里雖然創(chuàng)建了可直接執(zhí)行的命令,但要使得保存blender時(shí)自動保存修改過的圖片,還差了一步:找到blender保存文件的回調(diào)函數(shù),并將此類附加上去。

    commandoperators文件夾下新建_init__.py腳本

    import bpy from . import( save_dirty_images, ) def register(): #bpy.app.handlers.save_pre.append為blender保存文件時(shí)的回調(diào) bpy.app.handlers.save_辦公家具定制pre.append(save_dirty_images.save_dirty_images) def unregister(): bpy.app.handlers.save_pre.append(save_dirty_images.save_dirty_images)

    好了,我們的目的已經(jīng)達(dá)到了,接下來打開blender,開始看效果!4、打開blender,啟用插件,測試功能ctrl+alt+U打開配置界面,啟用HelloAddon,并點(diǎn)擊左下按鈕SaveUserSettings保存設(shè)置。

    Window/Toggle System Console打開控制臺,待辦公家具定制會可看到命令執(zhí)行成功我們要輸出的語句。

    回到blender主界面,空格鍵后輸入SaveAllDirtyImages,可以看到我們剛才寫的函數(shù):

    回車鍵執(zhí)行,可看到控制臺輸出了“save image”

    也可以直接ctrl-s保存blender文件,也會在控制臺輸出save image,代表確實(shí)執(zhí)行了保存圖片命令,不過我們目前還未創(chuàng)建圖片,沒能看到效果,創(chuàng)建圖片的步驟留給讀者自行嘗試,在image editor創(chuàng)建圖片后切換到paint模式抹兩筆,先手動將圖片保存到自己要的目錄,然后就可以開始測試了,繼續(xù)往圖片上抹,然后ctrl-s保存blender文件,將能觀察到圖片也自動保存更新了。

    保存blende辦公家具定制r文件時(shí)自動保存所有更改圖片,從此再無忘記保存圖片的煩惱,各位讀者用起來!5、功能升級上述雖然實(shí)現(xiàn)了保存文件自動保存圖片功能,但唯一的缺點(diǎn)是其只對已有保存路徑的圖片而言有效,若是新建圖片還未保存指定保存路徑,那么此方法會將其直接忽視掉,原因見前面的系統(tǒng)腳本實(shí)現(xiàn)。

    所以我們現(xiàn)在來改寫系統(tǒng)的方法,當(dāng)然不是直接更改系統(tǒng)文件,我們將其實(shí)現(xiàn)copy出來,加上一個(gè)提示功能:若有新建圖片未指定保存路徑,則自動將圖片保存到blender文件的根目錄下。代碼如下:

    import bpy import os from bpy.app.handlers import persistent辦公家具定制 from bpy.types import Operator @persistent def save_dirty_images(dummy): unique_paths = set() for image in bpy.data.images: if image.is_dirty: if image.packed_file: if image.library: self.report({WARNING}, "Packed lib辦公家具定制rary image: %r from library %r" " cant be re-packed" % (image.name, image.library.filepath)) else: image.pack(as_png=True) else: # 若blender與圖片均無路徑,則忽略此圖片自動保存 # 若blender有路徑而圖片無路徑,根目錄上自動保存 if image.filepath == "": if not bpy.data.辦公家具定制filepath == "": filepath = CreateUniquePath(os.path.split(bpy.data.filepath)[0] + "\\", image.name, ".png") image.filepath = filepath else: filepath = bpy.path.abspath(image.filepath, library=image.library) if "\\" not in filepath and "/" not in filep辦公家具定制ath: print("Invalid path: " + filepath) elif filepath in unique_paths: print("Path used by more than one image: %r" % filepath) else: unique_paths.add(filepath) image.save() print(save image) def CreateUniquePath(base_path, fi辦公家具定制le_name, extension): path = base_path + file_name + extension while os.path.isfile(path): file_name += ".001" path = base_path + file_name + extension return path class SaveDirty(Operator): """Save all modified textures""" bl_idname =辦公家具定制 "image.save_dirty_images" bl_label = "SaveAllDirtyImages" def execute(self, context): save_dirty_images(None) return {FINISHED}

    將代碼更改后,現(xiàn)在能保存新建未指定路徑的圖片,路徑圖片名稱將與blender文件內(nèi)的圖片名稱相同,若根目錄下已有相同名稱圖片,則保存名稱往后疊加.001到這里為止,一個(gè)完整而實(shí)用的小功能就完成了!6、為下一篇文章做準(zhǔn)備。

    只有一個(gè)看不見摸不著的命令怎么行,本著全都要的原則,下面我辦公家具定制們來實(shí)現(xiàn)一個(gè)UI的hello world!下面先來寫一個(gè)界面函數(shù)view_panels文件夾底下新建腳本hello_panel.py,并修改viewpanels/_init__.py,添加語句。

    from . import(hello_panel)

    view_panels文件夾底下新建腳本hello_panel.py

    importbpyfrombpy.typesimportPanel,Menu,UIList,PropertyGroupfromHelloAddonimportcommand_operatorsclass

    HelloWorld(Panel):bl_space_type=VIEW_3Dbl_辦公家具定制region_type=TOOLSbl_category=HelloAddonbl_idname=hello_world

    bl_label=HelloWorld# bl_options = {DEFAULT_CLOSED}defdraw(self,context):layout=self.layoutlayout.label

    ("你好UI")layout.operator("image.save_dirty_images",text="保存圖片")重新打開blender(注意blender插件更改后需要重啟blender):

    可以看到T面板已經(jīng)出現(xiàn)HelloAddon面板,包含HelloWorld標(biāo)辦公家具定制題(由bl_label決定)與Label“你好UI”以及按鈕“保存圖片”三、blender腳本插件入門心得跟著上面做完一個(gè)插件功能,現(xiàn)在開始介紹如何自行深入學(xué)習(xí)blender腳本:。

    途徑1:打開blender的text editor,很多模板文件可供復(fù)讀(制):

    途徑2:活用python console中的.后代碼提示快捷鍵自動補(bǔ)全查看方法

    默認(rèn)的智能提示快捷鍵未ctrl+space,對中國人而言實(shí)在不友好,我改為了ctrl+alt+/,建議讀者也改為此鍵位途徑3:關(guān)注Outliner的Data-Blocks面板,極其方便,新手時(shí)對blender數(shù)據(jù)塊摸不著頭腦時(shí)務(wù)必打開此面板,直接。

    http:/辦公家具定制/bpy.data.xxx點(diǎn)出來,如bpy.data.images[myimage]....、bpy.data.objects[myobj].data...,此面板下要找什么數(shù)據(jù)一路沿著+號點(diǎn)下去即可看到,可以說是可視化的代碼自動補(bǔ)全!

    途徑4:查詢api(實(shí)用性不高)

    途徑5:blender python 全球最大愛好者論壇:Stack Exchange

    途徑6:查看各類開源插件blender插件那么多,隨便拿起一個(gè)找到想學(xué)的功能就可以開始copy了,不需要自己從零走,何樂不為本篇文章到此結(jié)束,有什么想法歡迎提出,下一篇文章內(nèi)容將根據(jù)評論區(qū)而定,當(dāng)然這第一篇文章很可能根本沒什么人看到,那我就按照自辦公家具定制己想法繼續(xù)走啦。

    標(biāo)簽列表

      凤翔县| 石台县| 额济纳旗| 夏邑县| 亚东县| 英超| 黔江区| 沈丘县| 施甸县| 石家庄市| 中卫市| 眉山市| 子洲县| 正蓝旗| 天全县| 通渭县| 房山区| 广德县| 民乐县| 南开区| 芷江| 泸定县| 青州市| 峨山| 东辽县| 无极县| 凤翔县| 平顶山市| 乐业县| 宜城市| 枝江市| 湖南省| 无锡市| 太保市| 宁强县| 鞍山市| 登封市| 宜宾市| 从江县| 沂水县| 隆尧县|