国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種三維動(dòng)畫引擎的資源打包方法及裝置的制造方法

      文檔序號(hào):9471160閱讀:740來源:國知局
      一種三維動(dòng)畫引擎的資源打包方法及裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本申請涉及計(jì)算機(jī)視頻游戲開發(fā)技術(shù),尤其涉及一種三維動(dòng)畫引擎的資源打包方法及裝置。
      【背景技術(shù)】
      [0002]Unity是由Unity Technologies開發(fā)的一個(gè)用于創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫等類型互動(dòng)內(nèi)容的多平臺(tái)的綜合型游戲開發(fā)工具,是一個(gè)全面整合的專業(yè)游戲引擎。
      [0003]鑒于操作平臺(tái)和Unity自身的限制,Unity資源一般都通過打包為資源包(AssetBundle)的方式進(jìn)行動(dòng)態(tài)更新與加載。Unity資源指的是用于生成場景及場景中各種物體的元素,例如模型貼圖素材、場景源文件、插件等。Assetbundle是Unity Pro提供的功能,它可以把多個(gè)游戲?qū)ο蠡蛘哔Y源二進(jìn)制文件封裝到Assetbundle中,提供了封裝與解包的方法。
      [0004]對于資源龐大的游戲來說,資源之間的各種依賴關(guān)系處理以及打包的時(shí)間消耗是個(gè)較大的難題,嚴(yán)重影響開發(fā)效率。

      【發(fā)明內(nèi)容】

      [0005]本申請?zhí)峁┝艘环N三維動(dòng)畫引擎的資源打包方法,可以避免重復(fù)的資源打包,縮短打包所需的時(shí)間。
      [0006]本申請實(shí)施例提供的一種三維動(dòng)畫引擎的資源打包方法,包括:
      [0007]A、讀取上次打包結(jié)束時(shí)保存的資源數(shù)據(jù)和打包信息,生成歷史資源數(shù)據(jù)列表和歷史打包信息列表;
      [0008]B、對資源目錄進(jìn)行遍歷,記錄所有的原始游戲資源并收集本次的資源數(shù)據(jù)和打包信息;
      [0009]C、比較本次的資源數(shù)據(jù)與歷史資源數(shù)據(jù)列表,以及比較本次的打包信息和歷史打包信息列表,分析哪些資源需要重新打包,生成重打包資源列表;
      [0010]D、遍歷重打包資源列表,判斷其子資源是否已被打包,若是,則對該資源進(jìn)行打包,將該資源從重打包資源列表中刪除,并加入已打包列表,否則先跳過;如此循環(huán)遍歷直到重打包資源列表為空;
      [0011]E、保存本次的資源數(shù)據(jù)和打包信息。
      [0012]較佳地,步驟A中,若不存在上次打包結(jié)束時(shí)保存的資源數(shù)據(jù)和打包信息,則生成兩個(gè)對應(yīng)的空表。
      [0013]較佳地,所述原始游戲資源包括:渲染器、貼圖、材質(zhì)、模型、動(dòng)畫、網(wǎng)格、預(yù)制件、場景或以上內(nèi)容的任意組合。
      [0014]較佳地,所述資源數(shù)據(jù)包括:資源路徑、文件大小與MD5值、對應(yīng)的元數(shù)據(jù)文件大小和MD5值、父資源列表、子資源列表、打包的包名稱。
      [0015]較佳地,所述打包信息包括每個(gè)包的名稱以及其所包含的資源名稱。
      [0016]較佳地,該方法進(jìn)一步包括:增加強(qiáng)制打包的設(shè)置選項(xiàng),對于某些非公共的可以被打入父資源包的子資源,強(qiáng)制令它們單獨(dú)打成一個(gè)包。
      [0017]較佳地,打包命名規(guī)則包括:
      [0018]規(guī)則一:如果某一資源被指定強(qiáng)制打包,則其包名稱為該資源名稱。
      [0019]較佳地,打包命名規(guī)則進(jìn)一步包括:
      [0020]規(guī)則二:非強(qiáng)制打包資源,如果父資源列表為空,則其包名稱為資源名稱,規(guī)則二的優(yōu)先級(jí)低于規(guī)則一。
      [0021]較佳地,打包命名規(guī)則進(jìn)一步包括:
      [0022]規(guī)則三:如果父資源只有一個(gè),則其包名稱為父資源的包名稱,同時(shí)將與該資源同名的包內(nèi)所有的資源所對應(yīng)的包名稱改為父資源包名稱;規(guī)則三的優(yōu)先級(jí)低于規(guī)則二。
      [0023]較佳地,打包命名規(guī)則進(jìn)一步包括:
      [0024]規(guī)則四:如果有多個(gè)父資源,則其包名稱為資源名稱;規(guī)則四的優(yōu)先級(jí)低于規(guī)則
      _- O
      [0025]較佳地,令歷史資源數(shù)據(jù)列表中的歷史資源數(shù)據(jù)為TA1,歷史打包信息列表中的歷史打包數(shù)據(jù)為TBl,本次收集的資源數(shù)據(jù)和打包信息為TA2和TB2 ;步驟C包括:
      [0026]Cl、若任一資源的本次的資源數(shù)據(jù)與歷史資源數(shù)據(jù)列表中的對應(yīng)記錄不一致,將該資源的臟標(biāo)記設(shè)置為True,否則將該資源的臟標(biāo)記設(shè)置為false ;
      [0027]C2、若任一資源滿足如下條件之一,設(shè)置該資源的重打包標(biāo)記為True,否則設(shè)置該資源的重打包標(biāo)記為false:
      [0028]該資源在TA2中不存在對應(yīng)的包名稱;
      [0029]該資源位于TB2中的一個(gè)包,且該包在TBl和TB2中包含的資源列表不一致;
      [0030]該資源在TAl中的臟標(biāo)記和強(qiáng)制打包屬性均為True ;
      [0031]該資源的任一子資源的臟標(biāo)記為True,且強(qiáng)制打包標(biāo)記為False ;
      [0032]該資源的任一直接或間接父資源的重打包標(biāo)記為True ;
      [0033]在資源位于TB2的一個(gè)包中,該包的資源列表中存在需要重新打包的資源;
      [0034]C3、生成包含所有重打包標(biāo)記為True的資源的重打包資源列表。
      [0035]較佳地,步驟Cl包括:
      [0036]如果任一資源滿足如下條件之一,設(shè)置該資源的臟標(biāo)記為True,若都不滿足設(shè)置該資源的臟標(biāo)記為false:
      [0037]該資源包含在TA2中,但不包含在TAl ;
      [0038]該資源在TAl和TA2中的文件和元數(shù)據(jù)的大小和MD5值不一致;
      [0039]該資源在TAl和TA2中的強(qiáng)制打包標(biāo)記和包名稱不一致;
      [0040]該資源在TAl和TA2中的子資源列表不一致。
      [0041]可選地,所述三維動(dòng)畫引擎為Unity引擎。
      [0042]本申請實(shí)施例還提供了一種用于實(shí)現(xiàn)三維動(dòng)畫引擎的資源打包的裝置,包括:
      [0043]歷史信息模塊,用于讀取上次打包結(jié)束時(shí)保存的資源數(shù)據(jù)和打包信息,生成歷史資源數(shù)據(jù)列表和歷史打包信息列表;
      [0044]當(dāng)前信息模塊,用于對資源目錄進(jìn)行遍歷,記錄所有的原始游戲資源,收集并保存本次的資源數(shù)據(jù)和打包信息;
      [0045]比較模塊,用于比較本次的資源數(shù)據(jù)與歷史資源數(shù)據(jù)列表,以及比較本次的打包信息和歷史打包信息列表,分析哪些資源需要重新打包,生成重打包資源列表;
      [0046]打包模塊,用于遍歷重打包資源列表,判斷其子資源是否已被打包,若是,則對該資源進(jìn)行打包,將該資源從重打包資源列表中刪除,并加入已打包列表,否則先跳過;如此循環(huán)遍歷直到重打包資源列表為空。
      [0047]較佳地,若不存在上次打包結(jié)束時(shí)保存的資源數(shù)據(jù)和打包信息,則歷史信息模塊生成兩個(gè)對應(yīng)的空表。
      [0048]較佳地,所述原始游戲資源包括:渲染器、貼圖、材質(zhì)、模型、動(dòng)畫、網(wǎng)格、預(yù)制件、場景或以上內(nèi)容的任意組合。
      [0049]較佳地,所述資源數(shù)據(jù)包括:資源路徑、文件大小與MD5值、對應(yīng)的元數(shù)據(jù)文件大小和MD5值、父資源列表、子資源列表、打包的包名稱。
      [0050]較佳地,所述打包信息包括每個(gè)包的名稱以及其所包含的資源名稱。
      [0051 ] 較佳地,所述比較模塊進(jìn)一步包括:
      [0052]強(qiáng)制打包單元,用于根據(jù)強(qiáng)制打包的設(shè)置選項(xiàng),對于某些非公共的可以被打入父資源包的子資源,強(qiáng)制令它們單獨(dú)打成一個(gè)包。
      [0053]較佳地,打包模塊的打包命名規(guī)則包括:
      [0054]規(guī)則一:如果某一資源被指定強(qiáng)制打包,則其包名稱為該資源名稱。
      [0055]較佳地,打包命名規(guī)則進(jìn)一步包括:
      [0056]規(guī)則二:非強(qiáng)制打包資源,如果父資源列表為空,則其包名稱為資源名稱,規(guī)則二的優(yōu)先級(jí)低于規(guī)則一。
      [0057]較佳地,打包命名規(guī)則進(jìn)一步包括:
      [0058]規(guī)則三:如果父資源只有一個(gè),則其包名稱為父資源的包名稱,同時(shí)將與該資源同名的包內(nèi)所有的資源所對應(yīng)的包名稱改為父資源包名稱;規(guī)則三的優(yōu)先級(jí)低于規(guī)則二。
      [0059]較佳地,打包命名規(guī)則進(jìn)一步包括:
      [0060]規(guī)則四:如果有多個(gè)父資源,則其包名稱為資源名稱;規(guī)則四的優(yōu)先級(jí)低于規(guī)則
      _- O
      [0061]較佳地,令歷史資源數(shù)據(jù)列表中的歷史資源數(shù)據(jù)為TA1,歷史打包信息列表中的歷史打包數(shù)據(jù)為TBl,本次收集的資源數(shù)據(jù)和打包信息為TA2和TB2 ;比較模塊包括:
      [0062]臟標(biāo)記設(shè)置單元,用于當(dāng)任一資源的本次的資源數(shù)據(jù)與歷史資源數(shù)據(jù)列表中的對應(yīng)記錄不一致時(shí),將該資源的臟標(biāo)記設(shè)置為True,否則將該資源的臟標(biāo)記設(shè)置為false ;
      [0063]重打包標(biāo)記設(shè)置單元,用于當(dāng)任一資源滿足如下條件之一時(shí),設(shè)置該資源的重打包標(biāo)記為True,否則設(shè)置該資源的重打包標(biāo)記為false:
      [0064]該資源在TA2中不存在對應(yīng)的
      當(dāng)前第1頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1