国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Three.js加載FBX模型并解析骨骼動畫

這篇具有很好參考價值的文章主要介紹了Three.js加載FBX模型并解析骨骼動畫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

通過Threejs先加載一個.FBX格式的三維模型文件,然后解析該文件中的骨骼動畫信息。?

FBX

加載器FBXLoader.js

<!-- 引入fbx模型加載庫FBXLoader -->
<script src="http://www.yanhuangxueyuan.com/versions/threejsR92/examples/js/loaders/FBXLoader.js"></script>
<!-- 輔助文件 -->
<script src="http://www.yanhuangxueyuan.com/versions/threejsR92/examples/js/libs/inflate.min.js"></script>

加載fbx模型文件

加載模型文件,加載完成后,如果模型顯示位置不符合要求,可以通過Threejs程序進行平移、縮放等操作。

var loader = new THREE.FBXLoader();//創(chuàng)建一個FBX加載器
loader.load("SambaDancing.fbx", function(obj) {
  console.log(obj);//查看加載后返回的模型對象
  scene.add(obj)
  // 適當平移fbx模型位置
  obj.translateY(-80);
})

查看FBX模型幀動畫數(shù)據(jù)

stl、obj都是靜態(tài)模型,不可以包含動畫,fbx除了包含幾何、材質(zhì)信息,可以存儲骨骼動畫等數(shù)據(jù)。

解析之前可以先在瀏覽器控制臺查看動畫相關的數(shù)據(jù)是如何存儲的??梢钥吹?code>obj.animations屬性的數(shù)組包含兩個剪輯對象AnimationClip,obj.animations[0]對應剪輯對象AnimationClip包含多組關鍵幀KeyframeTrack數(shù)據(jù),obj.animations[1]對應的剪輯對象AnimationClip沒有關鍵幀數(shù)據(jù),也就是說沒有關鍵幀動畫。具體的開發(fā)中,可能提供的模型有很多包含關鍵幀動畫的剪輯對象AnimationClip,可以根據(jù)自己的需要解析某個剪輯對象AnimationClip對應的動畫。

Three.js加載FBX模型并解析骨骼動畫

執(zhí)行第一個

Three.js加載FBX模型并解析骨骼動畫

解析fbx模型骨骼動畫?

var mixer=null;//聲明一個混合器變量
var loader = new THREE.FBXLoader();//創(chuàng)建一個FBX加載器
loader.load("SambaDancing.fbx", function(obj) {
  // console.log(obj)
  scene.add(obj)
  obj.translateY(-80);
  // obj作為參數(shù)創(chuàng)建一個混合器,解析播放obj及其子對象包含的動畫數(shù)據(jù)
  mixer = new THREE.AnimationMixer(obj);
  // 查看動畫數(shù)據(jù)
  console.log(obj.animations)
  // obj.animations[0]:獲得剪輯對象clip
  var AnimationAction=mixer.clipAction(obj.animations[0]);
  // AnimationAction.timeScale = 1; //默認1,可以調(diào)節(jié)播放速度
  // AnimationAction.loop = THREE.LoopOnce; //不循環(huán)播放
  // AnimationAction.clampWhenFinished=true;//暫停在最后一幀播放的狀態(tài)
  AnimationAction.play();//播放動畫
})

?需要注意,在渲染函數(shù)中需要更新混合器mixer相關的時間,不然動畫不會生效文章來源地址http://www.zghlxwxcb.cn/news/detail-467153.html

var clock = new THREE.Clock();
// 渲染函數(shù)
function render() {
  renderer.render(scene, camera); 
  requestAnimationFrame(render);

  if (mixer !== null) {
    //clock.getDelta()方法獲得兩幀的時間間隔
    // 更新混合器相關的時間
    mixer.update(clock.getDelta());
  }
}
render();

到了這里,關于Three.js加載FBX模型并解析骨骼動畫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 如何使用 ThreeJs 以 glTF、FBX 和 OBJ 文件格式加載 3D 模型,使用 ThreeJS 加載和顯示帶有紋理的 3D 模型

    在本文中,我展示了如何使用 ThreeJS 在 Web 視圖中加載 3D 模型。Three.js 是一個跨瀏覽器的 JavaScript 庫和應用程序編程接口,用于使用 WebGL 在 Web 瀏覽器中創(chuàng)建和顯示動畫 3D 計算機圖形。加載不完整的原因有很多,例如紋理和材質(zhì)渲染不正確。 創(chuàng)建場景 渲染場景 動畫立方體

    2023年04月08日
    瀏覽(32)
  • 【THREE.JS學習(3)】使用THREEJS加載GeoJSON地圖數(shù)據(jù)

    【THREE.JS學習(3)】使用THREEJS加載GeoJSON地圖數(shù)據(jù)

    本文接著系列文章(2)進行介紹,以VUE2為開發(fā)框架,該文涉及代碼存放在HelloWorld.vue中。 相較于上一篇文章對div命名class等,該文簡潔許多。 接著引入核心庫 其中,{OrbitControls}為控制器,加載后可以通過鼠標來移動加載數(shù)據(jù)的方向、放縮等 Three.js中的坐標系是以單位為米(

    2023年04月09日
    瀏覽(106)
  • 安卓上的 3D 模型加載 和骨骼動畫 庫 SceneView

    如果你要加載3D 模型,比如Maya 3D max 生成的 3d 模型文件,你會發(fā)現(xiàn)基本沒有好用的快捷的庫, github上是有一個比較出名的3d 庫 , https://github.com/the3deer/android-3D-model-viewer , 但是他的骨骼動畫那塊寫的云里霧里的,如果你要控制某些骨骼節(jié)點運動,你會發(fā)現(xiàn)不好著手, 這里有

    2024年02月06日
    瀏覽(20)
  • ThreeJS-3D教學八-OBJLoader模型加載+動畫

    ThreeJS-3D教學八-OBJLoader模型加載+動畫

    先看效果圖: 本篇給大家介紹下模型加載的知識,用到了OBJLoader對應的模型,為了增加趣味性,花了些時間,利用new THREE.Points獲取到模型上的點,做了一個動畫效果,其實就是操作 Y軸上的點,先降低上0,然后再還原,代碼如下: 如果有同學從我第一篇文章開始學到現(xiàn)在,

    2024年04月24日
    瀏覽(21)
  • blender導出UE4用的FBX骨骼動畫

    blender導出UE4用的FBX骨骼動畫

    blender基礎準備 部分約束修改器會在導出的時候會被烘培 blender當前幀的物體狀態(tài)會變成UE4的默認狀態(tài) blender導出準備 路徑模式:自動 內(nèi)嵌紋理:True 批量模式:關閉 選定的物體:True 活動集合:False 物體類型:所有類型 自定義屬性:False 縮放:1 應用縮放:FBX全部 前進:-X前進 向上:Z向上

    2024年02月04日
    瀏覽(17)
  • uniapp通過renderjs加載3D模型,支持FBX、GLB和GLTF模型,模型可自動適應。

    n-text-loading是我的自定義loading組件,可以自行替換 id是threeView是模型顯示的位置, props里面的url是模型鏈接,cameraZ是相機位置,默認100,一般不需要改,有些z軸很長的模型旋轉(zhuǎn)的時候會有一部分相機看不到這個時候就需要調(diào)整這個值了,這兩個要從后臺上傳。 :prop=“url”,

    2024年02月14日
    瀏覽(19)
  • Three.js 進階之旅:滾動控制模型動畫和相機動畫 ?

    Three.js 進階之旅:滾動控制模型動畫和相機動畫 ?

    聲明:本文涉及圖文和模型素材僅用于個人學習、研究和欣賞,請勿二次修改、非法傳播、轉(zhuǎn)載、出版、商用、及進行其他獲利行為。 專欄上篇文章《Three.js 進階之旅:頁面*滑滾動-王國之淚》 講解并實現(xiàn)了如何使用 R3F 進行頁面圖片*滑滾動,本文內(nèi)容在上節(jié)的基礎上,學習

    2024年02月06日
    瀏覽(22)
  • VUE使用Three.js實現(xiàn)模型,點擊交互,相機旋轉(zhuǎn)視角跟隨移動(Threejs中使用Tweenjs,含demo源碼)

    VUE使用Three.js實現(xiàn)模型,點擊交互,相機旋轉(zhuǎn)視角跟隨移動(Threejs中使用Tweenjs,含demo源碼)

    目錄 一、Three.js是什么? 二、VUE簡單使用Three.js步驟 1.npm安裝 2.template模板 3.引入庫 4.定義全局變量 5.初始化場景 6.初始化相機 7.初始化燈光 8.初始化渲染器 9.創(chuàng)建模型(這里我搭建的模型是一個簡單雙面貨架模型) 10.根據(jù)瀏覽器窗口自適應 11.初始化函數(shù),頁面加載完成時調(diào)用

    2024年02月03日
    瀏覽(104)
  • Three.js之加載外部三維模型

    建模軟件繪制3D場景 … 加載.gltf文件(模型加載全流程) 注:基于Three.js v0.155.0 三維建模軟件 gltf格式 加載.gltf文件 OrbitControls輔助設置相機參數(shù):相機位置、相機目標對象 gltf不同文件形式(.glb) 模型命名(程序與美術協(xié)作): .getObjectByName() 遞歸遍歷層級模型修改材質(zhì): .traverse

    2024年02月05日
    瀏覽(37)
  • Three.js--》建模軟件如何加載外部3D模型?

    Three.js--》建模軟件如何加載外部3D模型?

    目錄 三維建模軟件的介紹 Blender官方文檔介紹 Blender軟件安裝 GLTF格式簡介 gltf不同文件形式 ????????看過我之前講解的three文章的人都知道,我在創(chuàng)建模型的時候都沒有使用three.js自帶的一些簡單模型,而是引入外部的模型并加載到頁面上, 簡言之 :對于簡單的立方體、

    2024年02月06日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包