Ogre換裝系統

來源:互聯網
上載者:User

Ogre換裝系統

         角色換裝作為遊戲裡一個古老而不可或缺的系統,各個引擎都有完備支援,Ogre也不例外。

         儘管網上一些討論把Ogre換裝說得諱莫如深,實際上它還是很簡單的。早在05年提及這個問題時,sinbad也只是說了一句“use Entity::shareSkeletonInstanceWith”。

         遊戲裡的換裝大致分為三類,下面逐一介紹其Ogre實現。

         一、更換紋理。這算是最簡單的一類,顧名思義,更換材質的貼圖即可。它在Ogre中的調用可能是這樣的:

body->getMaterial()->getTechnique(0)->getPass(0)->getTextureUnitState(0)->setTextureName("clothTexture");

更換紋理實現更換衣服

         二、掛接物體。此類應用多是將剛性、無形變的物體掛接到某個骨骼節點上,最常見的就是將武器掛接到手部骨骼,實現持握的效果。Ogre中調用如下:

body->attachObjectToBone("handBone", weapon);

 

掛接物體實現手持武器

         三、共用骨骼。這是最常被討論的一個,要求模型共用一套骨骼。以戴手套為例,手套模型需要共用裸模的骨骼,任何時候都做一樣的動作,如此表現為二者契合,以實現穿戴的效果。Ogre中使用如下調用:

glove->shareSkeletonInstanceWith(body);

         這類換裝要求美術人員做綁定時使用同一套骨骼,最終匯出的各個模型也應盡量指向相同的骨骼檔案。如果美術指向了名字不同的骨骼,在共用前你得費心調用Mesh:: setSkeletonName()重新指定,始終保證兩個模型使用的骨骼一致。這裡不推薦使用_notifySkeleton(),略顯暴力了。

 

共用骨骼實現手套、靴子與角色契合

         如果你碰巧也使用《火炬之光》的資源做實驗,會發現有些手套模型竟然包含有身體,這樣做的原因很多,防止兩個模型契合處有明顯接縫是其中之一。這時你需要在整合後隱藏那些多餘的SubEntity,這並不困難,嘗試過你便會明白。

         美好的事物理應簡單。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.