日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Unity一鍵OBJ導(dǎo)出:編輯器腳本實(shí)現(xiàn)3D模型格式轉(zhuǎn)換與批量處理

Unity一鍵OBJ導(dǎo)出:編輯器腳本實(shí)現(xiàn)3D模型格式轉(zhuǎn)換與批量處理 簡介這是一組面向Unity開發(fā)者的輕量級格式轉(zhuǎn)換腳本用于在編輯器環(huán)境中處理.unity3d資源文件。Unity3D格式可將場景、模型、紋理、動(dòng)畫等資源打包為單一文件而這套腳本正是為整合、優(yōu)化或格式轉(zhuǎn)換提供自動(dòng)化途徑幫助開發(fā)者降低模型復(fù)雜度、壓縮紋理、合并資源從而改善游戲加載速度與內(nèi)存占用。壓縮包內(nèi)僅含3個(gè)文件包括兩個(gè)JavaScript腳本和一個(gè)C#腳本整體體積僅5KB導(dǎo)入Assets/Editor目錄后即可在編輯器菜單中調(diào)用不會打進(jìn)發(fā)布包。已有333人學(xué)習(xí)下載。腳本基于Unity的AssetDatabase與序列化機(jī)制運(yùn)行覆蓋資源讀取、處理、導(dǎo)出全流程能夠減少手動(dòng)重復(fù)操作Editor目錄隔離設(shè)計(jì)也更適合需要自定義資源管線的初中級開發(fā)者快速上手或二次修改。 做Unity項(xiàng)目做到一定程度幾乎都會碰到模型格式對不上號的情況。上周美術(shù)丟給我一個(gè)模型包里面全是.ma和.3ds還特別備注了一句“引擎要什么格式自己轉(zhuǎn)一下”。以前遇到這種事要么開Blender手動(dòng)轉(zhuǎn)要么去找第三方轉(zhuǎn)換工具來回折騰效率特別低。這次我直接在Unity工程里寫了一個(gè)3D格式轉(zhuǎn)換腳本把常用的網(wǎng)格轉(zhuǎn)換邏輯封裝成菜單命令一鍵導(dǎo)出OBJ連命令行批量導(dǎo)出都做完了全程都沒離開Unity編輯器。實(shí)測下來簡單有效省了大量重復(fù)勞動(dòng)。這篇博文就把這個(gè)腳本的完整實(shí)現(xiàn)、原理和踩坑記錄整理出來給還在跟格式問題較勁的朋友一個(gè)參考。1. 為什么我決定在Unity內(nèi)部寫腳本做格式轉(zhuǎn)換1.1 從一次讓人頭大的模型交付說起上周美術(shù)丟給我一個(gè)模型包里面全是.ma和.3ds還特別備注了一句“引擎要什么格式自己轉(zhuǎn)一下”。這種“格式不太對”的破事我已經(jīng)不是第一次遇到以前的做法要么開Blender手動(dòng)轉(zhuǎn)要么在網(wǎng)上下一個(gè)格式轉(zhuǎn)換工具來回折騰效率特別低。后來有一回美術(shù)給的模型在第三方工具里轉(zhuǎn)出來跑進(jìn)Unity之后法線全反了材質(zhì)也丟了大半我想查一下原始導(dǎo)入的數(shù)據(jù)到底長什么樣才發(fā)現(xiàn)轉(zhuǎn)換工具根本沒把Unity可用的資源形態(tài)暴露給我。那之后我就下決心直接在Unity工程里寫一個(gè)3D格式轉(zhuǎn)換腳本。思路很簡單既然Unity已經(jīng)幫我把外部模型資源解析成了Mesh、材質(zhì)、貼圖那我在編輯器里讀取這些數(shù)據(jù)再用代碼重新序列化成目標(biāo)格式輸出就行。整個(gè)轉(zhuǎn)換過程不依賴任何外部軟件也不會因?yàn)楣ぞ甙姹静灰恢鲁霈F(xiàn)結(jié)果偏差。實(shí)測下來這套方案簡單有效雖然不能替代DCC軟件做精細(xì)調(diào)參但解決日常的格式交換、資源交付、批量處理完全夠用。1.2 對比三種常見轉(zhuǎn)換方案動(dòng)手之前我把市面上常見的方案快速過了一遍各有各的問題。第一種是找“萬能轉(zhuǎn)換器”。網(wǎng)上的轉(zhuǎn)換工具品類很多但實(shí)際用下來問題不少要么支持格式有限遇到.ma、.3ds、.dae這些“冷門貨”直接不認(rèn)要么碰到幾十萬頂點(diǎn)的超大Mesh就卡死還有一批在線轉(zhuǎn)換網(wǎng)站模型傳上去之后貼圖丟失是常態(tài)更不用說安全性。如果只是偶爾轉(zhuǎn)一個(gè)模型無所謂一旦批量轉(zhuǎn)換一個(gè)個(gè)點(diǎn)開工具選文件選參數(shù)重復(fù)勞動(dòng)能占掉一上午。第二種是DCC軟件中轉(zhuǎn)。打開Blender或者3ds Max導(dǎo)入再導(dǎo)出這個(gè)方法很萬能格式兼容性最好。但麻煩在于DCC軟件里的顯示效果和Unity最終渲染效果往往有差異轉(zhuǎn)出來到了Unity里可能比例不對、法線方向變了、貼圖路徑斷裂還得再調(diào)一輪。另外項(xiàng)目成員不一定都裝了Blender你臨時(shí)要轉(zhuǎn)一個(gè)模型還得先花時(shí)間裝環(huán)境。第三種就是本文要講的Unity腳本方案。它直接把Unity已經(jīng)導(dǎo)入解析好的資源再導(dǎo)出不依賴外部軟件結(jié)果所見即所得。尤其是在“模型最終要放到Unity里跑”這個(gè)場景下這個(gè)方案沒有任何多余環(huán)節(jié)。1.3 在Unity里做轉(zhuǎn)換的真正優(yōu)勢所見即所得這一點(diǎn)最值錢。腳本跑的是Unity渲染時(shí)真正用的那一份Mesh數(shù)據(jù)不像DCC轉(zhuǎn)完還可能二次走樣。導(dǎo)出后的模型拿到Blender或者其他工具里打開大小比例、頂點(diǎn)順序、材質(zhì)分布基本和Unity里看到的一致省掉了反復(fù)比對的時(shí)間。第二個(gè)優(yōu)勢是能復(fù)用Unity的整個(gè)資源管線。Unity導(dǎo)入FBX時(shí)已經(jīng)把網(wǎng)格、UV、法線、切線全解析好了腳本只需要從MeshFilter、SkinnedMeshRenderer上取數(shù)據(jù)。更進(jìn)一步我還可以在AssetPostprocessor里寫一個(gè)導(dǎo)入后自動(dòng)轉(zhuǎn)換的邏輯模型一拖進(jìn)工程就自動(dòng)輸出OBJ。這種“導(dǎo)入即轉(zhuǎn)換”的工作流外部工具鏈很難做到。第三個(gè)優(yōu)勢是沒有額外依賴。腳本其實(shí)就是幾個(gè).cs文件扔到Editor文件夾下就能跑一臺裝了Unity的機(jī)器全流程搞定。我們項(xiàng)目里還有一批給微信小游戲做資源瘦身的場景需要大量對比高低模差異用這套腳本批量轉(zhuǎn)OBJ再在Blender里快速看網(wǎng)格結(jié)構(gòu)效率比人肉操作高了一個(gè)量級。2. OBJ格式的底細(xì)先搞清楚“文本結(jié)構(gòu)”再動(dòng)手2.1 OBJ文件到底長什么樣寫腳本前我先把OBJ文件的“底細(xì)”摸清了。OBJ是Wavefront定義的3D模型文本格式每一個(gè)頂點(diǎn)、每根法線、每個(gè)三角形都寫成一行文本用行首的關(guān)鍵字區(qū)分類型。一個(gè)最簡單的Cube打開OBJ文件內(nèi)容大概是這樣o Cube v 1.000000 1.000000 -1.000000 v 1.000000 -1.000000 -1.000000 v -1.000000 1.000000 -1.000000 v -1.000000 -1.000000 -1.000000 v 1.000000 0.999999 1.000000 v 1.000000 -1.000000 1.000000 vt 0.000000 0.000000 vt 0.000000 1.000000 vt 1.000000 0.000000 vt 1.000000 1.000000 vn 0.000000 1.000000 0.000000 ... f 1/1/1 3/2/2 5/3/3這些前綴的含義非常好理解o是object對象名v是頂點(diǎn)坐標(biāo)vt是UV坐標(biāo)vn是法線f是面索引。f后面每三個(gè)數(shù)一組分別代表三角形三個(gè)頂點(diǎn)的“頂點(diǎn)索引/UV索引/法線索引”注意索引從1開始。如果使用了材質(zhì)文件里還會有mtllib xxx.mtl引用外部材質(zhì)庫。我第一次寫導(dǎo)出腳本就是照著這幾個(gè)字段逐行吐數(shù)據(jù)跑通最基礎(chǔ)的Mesh導(dǎo)出只用了十幾分鐘。OBJ能成為各種工具之間通用的“中間格式”靠的就是這種極度簡單的文本結(jié)構(gòu)。2.2 從Unity Mesh到OBJ中間要做的三件事光會寫這些字段還不夠從Unity的Mesh對象到OBJ文本坑藏在三個(gè)地方。第一坐標(biāo)系轉(zhuǎn)換。Unity是左手坐標(biāo)系X向右、Y向上、Z向屏幕內(nèi)而OBJ規(guī)范采用右手坐標(biāo)系X向右、Y向上、Z向屏幕外。如果直接把Unity的頂點(diǎn)坐標(biāo)原樣寫進(jìn)OBJ導(dǎo)出的模型會沿某個(gè)軸鏡像法線和三角面朝向也救不回來。我的做法是導(dǎo)出時(shí)把X取反同時(shí)對三角形索引做一次反序保證面朝外。第二索引基數(shù)。Unity的Mesh.triangles是零基索引而OBJ文件中f后面的索引最小是1。每寫一個(gè)三角形都要對每個(gè)索引做1處理。這個(gè)處理看似不起眼漏掉的話整個(gè)模型在軟件里會錯(cuò)亂成一片。第三子網(wǎng)格的處理。一個(gè)GameObject上可能掛了多材質(zhì)對應(yīng)Mesh里的多個(gè)submesh。OBJ里遇到不同的submesh要切換usemtl指令否則所有面都會統(tǒng)一用最后一種材質(zhì)最終結(jié)果就是材質(zhì)錯(cuò)亂。2.3 為什么選OBJ而不是直接轉(zhuǎn)FBX我承認(rèn)FBX是現(xiàn)在DCC和引擎之間更通用的橋梁格式Unity官方后面也推出了FBX Exporter包。但在我這個(gè)“簡單有效”的目標(biāo)下OBJ有不可替代的好處。純文本異常好調(diào)試。導(dǎo)出的文件用文本編輯器打開就能查問題FBX是二進(jìn)制出錯(cuò)了你根本不知道是哪兒錯(cuò)了。幾乎所有軟件都認(rèn)OBJ包括各種在線預(yù)覽工具、3D打印切片軟件甚至一些做AI三維重建的接口。腳本復(fù)雜度低。寫一個(gè)OBJ導(dǎo)出器只需要處理字符串拼接不需要引用任何SDK。OBJ的缺點(diǎn)也很明確不支持蒙皮動(dòng)畫、不支持多動(dòng)畫剪輯、格式壓縮率低。所以我在工具里給了兩條路日常幾何交換、給合作方或打印廠用OBJ要保留完整動(dòng)畫和材質(zhì)就走官方FBX Exporter。后面第5節(jié)會講到這個(gè)選擇。3. 核心腳本實(shí)現(xiàn)把Mesh數(shù)據(jù)序列化成OBJ文本3.1 編輯器菜單入口和目錄設(shè)計(jì)先看工程結(jié)構(gòu)。我的腳本放在Assets/Editor/ModelTools/ObjExporter.csEditor目錄是Unity約定好的這個(gè)目錄下的腳本只會參與編輯器功能不會編譯進(jìn)游戲包。菜單入口用MenuItem特性注冊public static class ObjExporter { [MenuItem(Tools/Model Convert/Export Selected To OBJ)] public static void ExportSelected() { GameObject[] selected Selection.gameObjects; if (selected.Length 0) { Debug.LogWarning(請先在場景中選中要導(dǎo)出的物體); return; } string path EditorUtility.SaveFilePanel(Export OBJ, , export.obj, obj); if (string.IsNullOrEmpty(path)) return; ExportGameObjectsToObj(selected, path); } }菜單名叫Tools/Model Convert/...放進(jìn)Unity菜單欄的Tools分類順眼也好找。ExportSelected處理用戶從場景選中物體的場景后面第4節(jié)我會把它擴(kuò)展成支持命令行調(diào)用的靜態(tài)方法。3.2 核心的MeshToString方法這段是把一個(gè)Mesh實(shí)例序列化成OBJ文本的核心邏輯改進(jìn)自社區(qū)流傳的經(jīng)典版本我在這基礎(chǔ)上加了坐標(biāo)轉(zhuǎn)換、法線反置和多submesh支持。public static string MeshToString(Mesh mesh, string objectName, string mtlName) { StringBuilder sb new StringBuilder(); sb.Append(o ).Append(objectName).Append(\n); sb.Append(mtllib ).Append(mtlName).Append(.mtl\n); Vector3[] vertices mesh.vertices; Vector3[] normals mesh.normals; Vector2[] uvs mesh.uv; for (int i 0; i vertices.Length; i) { Vector3 v vertices[i]; sb.Append(v ).AppendFormat({0} {1} {2}\n, -v.x, v.y, v.z); } for (int i 0; i normals.Length; i) { Vector3 n normals[i]; sb.Append(vn ).AppendFormat({0} {1} {2}\n, -n.x, n.y, n.z); } for (int i 0; i uvs.Length; i) { Vector2 uv uvs[i]; sb.Append(vt ).AppendFormat({0} {1}\n, uv.x, uv.y); } for (int submesh 0; submesh mesh.subMeshCount; submesh) { int[] triangles mesh.GetTriangles(submesh); sb.Append(usemtl material_).Append(submesh).Append(\n); for (int i 0; i triangles.Length; i 3) { int a triangles[i] 1; int b triangles[i 1] 1; int c triangles[i 2] 1; // 將左手系的三角形順序反轉(zhuǎn) sb.Append(f ).Append(a).Append(/).Append(a).Append(/).Append(a); sb.Append( ).Append(c).Append(/).Append(c).Append(/).Append(c); sb.Append( ).Append(b).Append(/).Append(b).Append(/).Append(b); sb.Append(\n); } } return sb.ToString(); }這里有幾個(gè)關(guān)鍵點(diǎn)需要解釋。第一頂點(diǎn)和法線的X取反是最核心的坐標(biāo)轉(zhuǎn)換Z軸方向其實(shí)可以不改只要X取反加三角形順序反轉(zhuǎn)模型從Unity的左手系變成OBJ的右手系視覺上就一致了。第二法線必須同步取反否則模型雖然頂點(diǎn)坐標(biāo)對了但光照法線用的是原來的方向在別的軟件里會看起來明暗不對。第三三角形索引我故意調(diào)成a, c, b的順序。Unity三角形頂點(diǎn)順序是順時(shí)針而OBJ軟件大多按逆時(shí)針識別正面反序之后面朝向才正確。第四每個(gè)submesh用material_0、material_1這樣的命名切換材質(zhì)和后面生成的MTL一一對應(yīng)。3.3 帶材質(zhì)和貼圖的MTL文件生成OBJ本身不存材質(zhì)材質(zhì)信息全部放在旁邊同名MTL文件里。上面代碼里我寫了mtllib objName.mtl所以還得生成一個(gè)配套的MTL文件。項(xiàng)目里掛的是Standard材質(zhì)或URP的Lit材質(zhì)時(shí)我主要取三樣?xùn)|西_MainTex貼圖、_Color顏色、_Metallic金屬度。public static void WriteMtlFile(string materialFolder, ListMaterial materials) { StringBuilder sb new StringBuilder(); for (int i 0; i materials.Count; i) { Material mat materials[i]; sb.Append(newmtl material_).Append(i).Append(\n); sb.Append(Kd 1.000000 1.000000 1.000000\n); if (mat.HasProperty(_Color)) { Color c mat.color; sb.Append(Kd ).AppendFormat({0} {1} {2}\n, c.r, c.g, c.b); } Texture tex mat.HasProperty(_MainTex) ? mat.mainTexture : null; if (tex ! null) { string srcPath AssetDatabase.GetAssetPath(tex); string dstPath Path.Combine(materialFolder, Path.GetFileName(srcPath)); File.Copy(srcPath, dstPath, true); sb.Append(map_Kd ).Append(Path.GetFileName(srcPath)).Append(\n); } } File.WriteAllText(Path.Combine(materialFolder, export.mtl), sb.ToString()); }這里有一個(gè)細(xì)節(jié)值得注意寫貼圖路徑時(shí)我刻意用的是相對路徑只寫文件名而不是E:\textures\xxx.png這種絕對路徑。因?yàn)镺BJMTL這套文件經(jīng)常要給同事、給外包、給3D打印平臺絕對路徑到了別人機(jī)器上全斷相對路徑只要貼圖跟OBJ在同一目錄下就萬事大吉。map_Kd對應(yīng)的就是.mtl文件所在目錄下的相對路徑所有軟件都能識別。3.4 遍歷場景導(dǎo)出有了上面兩個(gè)方法剩下的就是遍歷場景里所有帶MeshFilter或SkinnedMeshRenderer的對象public static void ExportGameObjectsToObj(GameObject[] roots, string outputPath) { string dir Path.GetDirectoryName(outputPath); ListMaterial materials new ListMaterial(); StringBuilder sb new StringBuilder(); foreach (GameObject root in roots) { MeshFilter[] filters root.GetComponentsInChildrenMeshFilter(true); foreach (MeshFilter f in filters) { Mesh mesh f.sharedMesh; if (mesh null) continue; Renderer renderer f.GetComponentRenderer(); if (renderer ! null) { foreach (Material mat in renderer.sharedMaterials) { if (mat ! null !materials.Contains(mat)) materials.Add(mat); } } sb.Append(MeshToString(mesh, f.gameObject.name, export)); } } File.WriteAllText(outputPath, sb.ToString()); WriteMtlFile(dir, materials); Debug.Log(Export complete: outputPath); }這里用的是GetComponentsInChildren(true)第二個(gè)參數(shù)傳true是為了連未激活的物體也一起導(dǎo)出很多美術(shù)資源會臨時(shí)隱藏一些分組你不傳true就得來回?fù)v鼓激活狀態(tài)。另外我優(yōu)先取sharedMesh而不是mesh因?yàn)閙esh會觸發(fā)Mesh實(shí)例化在批量處理幾十個(gè)同源模型時(shí)每實(shí)例化一次都是內(nèi)存和耗時(shí)用sharedMesh拿共享數(shù)據(jù)就夠了而且不會改動(dòng)原模型。運(yùn)行方式很簡單在場景里選好根物體點(diǎn)菜單Tools/Model Convert/Export Selected To OBJ再選一個(gè)保存路徑腳本自動(dòng)把整棵子物體樹的Mesh全部打到一個(gè)OBJ文件里MTL和貼圖也自動(dòng)放好。4. 從點(diǎn)擊菜單到無人值守批量導(dǎo)出命令行調(diào)用技巧4.1 把導(dǎo)出邏輯包成可被命令行調(diào)用的靜態(tài)方法菜單按鈕點(diǎn)著方便但項(xiàng)目里動(dòng)輒幾十上百個(gè)模型一個(gè)個(gè)選中導(dǎo)出還是太慢。我后來加了一個(gè)批量模式直接把第3節(jié)的導(dǎo)出方法再包一層做成無界面依賴的靜態(tài)方法。public static void ExportAllFromCommandLine() { string inputDir GetArg(-inputDir, Assets/Models); string outputDir GetArg(-outputDir, ExportedOBJ); string filter GetArg(-filter, ); if (!Directory.Exists(inputDir)) { Debug.LogError([ObjExporter] input dir not found: inputDir); return; } Directory.CreateDirectory(outputDir); string[] assets Directory.GetFiles(inputDir, *.fbx, SearchOption.AllDirectories); foreach (string assetPath in assets) { if (!string.IsNullOrEmpty(filter) !assetPath.Contains(filter)) continue; string relativePath assetPath.Replace(\\, /); GameObject model AssetDatabase.LoadAssetAtPathGameObject(relativePath); if (model null) continue; string outFile Path.Combine(outputDir, Path.GetFileNameWithoutExtension(assetPath) .obj); ExportGameObjectsToObj(new[] { model }, outFile); } Debug.Log([ObjExporter] batch export finished. files: assets.Length); } private static string GetArg(string argName, string defaultValue) { string[] args System.Environment.GetCommandLineArgs(); for (int i 0; i args.Length; i) { if (args[i] argName i 1 args.Length) return args[i 1]; } return defaultValue; }這個(gè)方法用AssetDatabase.LoadAssetAtPath加載FBX資源再把FBX的根GameObject當(dāng)成普通根節(jié)點(diǎn)扔給之前的導(dǎo)出函數(shù)這樣FBX里如果有多個(gè)子Mesh也會自動(dòng)全部展開導(dǎo)出。注意這里不能用Resources.Load或者Instantiate因?yàn)槊钚心J较聸]有激活的場景上下文Instantiate出來的GameObject拿不到序列化數(shù)據(jù)。AssetDatabase.LoadAssetAtPath是編輯器API在Editor里加載靜態(tài)資源最可靠。4.2 Windows和macOS下的命令行調(diào)用Unity Editor本身就支持批處理模式可以在不打開圖形界面的情況下執(zhí)行指定靜態(tài)方法。Windows下我寫了一個(gè)export.batecho off set UNITY_EXEC:\Program Files\Unity\Hub\Editor\2021.3.30f1\Editor\Unity.exe set PROJECT_PATHD:\MyProject %UNITY_EXE% -batchmode -projectPath %PROJECT_PATH% ^ -executeMethod ObjExporter.ExportAllFromCommandLine ^ -inputDir Assets/Models -outputDir D:/ExportOBJ ^ -quit -logFile D:/export_log.txtmacOS/Linux下對應(yīng)寫個(gè)export.shUNITY_EXE/Applications/Unity/Hub/Editor/2021.3.30f1/Unity.app/Contents/MacOS/Unity $UNITY_EXE -batchmode -projectPath /Users/me/MyProject \ -executeMethod ObjExporter.ExportAllFromCommandLine \ -inputDir Assets/Models -outputDir /Users/me/ExportOBJ \ -quit -logFile /Users/me/export_log.txt跑了之后Unity會啟動(dòng)、進(jìn)入工程、執(zhí)行靜態(tài)方法、導(dǎo)出、退出全程無界面。如果你只想導(dǎo)出一部分通過參數(shù)-filter hero就能只處理帶hero關(guān)鍵字的文件。加上-quit參數(shù)Unity會在方法執(zhí)行完自動(dòng)關(guān)閉不會掛在后臺。4.3 實(shí)測效率和幾個(gè)限制我拿一個(gè)真實(shí)項(xiàng)目的資源做了下測試120個(gè)帶MeshFilter和標(biāo)準(zhǔn)材質(zhì)的FBX模型平均幾千頂點(diǎn)命令行批量導(dǎo)出到OBJ大概用時(shí)40多秒單個(gè)模型不到0.5秒比人肉在軟件里一個(gè)個(gè)轉(zhuǎn)快了不知道多少倍。如果你只要幾十個(gè)小模型10秒內(nèi)就能全部完成。但命令行模式有幾個(gè)限制我踩出來過不要彈任何對話框。EditorUtility.SaveFilePanel、DisplayDialog這些在batchmode下會卡住進(jìn)程腳本要改成直接用參數(shù)傳路徑。不要碰有幀依賴的編輯器API比如EditorApplication.delayCall批處理模式下很可能還沒執(zhí)行完就退出了。日志要留。-quit之后Unity關(guān)得很快如果不加-logFile參數(shù)出問題你根本看不到Debug.LogError打出來的內(nèi)容。我習(xí)慣每次導(dǎo)出都生成獨(dú)立的log文件排查效率高很多。5. 踩坑記錄坐標(biāo)鏡像、蒙皮烘焙、材質(zhì)路徑等5.1 導(dǎo)出去鏡像問題一次只做一半坐標(biāo)轉(zhuǎn)換的代價(jià)我第一次把導(dǎo)出的OBJ丟進(jìn)Blender時(shí)模型整個(gè)沿軸鏡像了仔細(xì)看法線也有問題。排查下來的元兇就是坐標(biāo)轉(zhuǎn)換只做了一半。后來我固定檢查三個(gè)點(diǎn)這套標(biāo)準(zhǔn)反復(fù)用了很久頂點(diǎn)X是否取反法線X是否取反三角形索引順序是否反序這三個(gè)點(diǎn)必須同時(shí)做缺一個(gè)模型就會歪。寫代碼的時(shí)候用注釋把轉(zhuǎn)換規(guī)則標(biāo)清楚不然時(shí)隔半年再回來看腳本肯定忘。5.2 SkinnedMeshRenderer怎么導(dǎo)出當(dāng)前姿態(tài)如果場景里有人物模型直接拿SkinnedMeshRenderer.sharedMesh導(dǎo)出的網(wǎng)格是T-Pose綁定期狀態(tài)不是你在場景里看到的當(dāng)前動(dòng)畫姿勢。要在腳本里先烘焙一次SkinnedMeshRenderer smr GetComponentSkinnedMeshRenderer(); Mesh bakedMesh new Mesh(); smr.BakeMesh(bakedMesh); // 之后把bakedMesh交給MeshToString處理注意BakeMesh在編輯器下對非激活物體有時(shí)會不生效我處理的方式是臨時(shí)激活一下再烘焙完事再恢復(fù)原狀。另外烘焙出來的Mesh不包含當(dāng)前材質(zhì)材質(zhì)還是要從smr.sharedMaterials獲取。5.3 材質(zhì)、貼圖和SubMesh的對應(yīng)關(guān)系很多人在寫MTL文件時(shí)直接用Unity的材質(zhì)名當(dāng)材質(zhì)名比如newmtl Standard (Instance)空格和括號混在文件名里導(dǎo)入到某些軟件直接報(bào)錯(cuò)。我試過最省心的做法是不管是OBJ里的usemtl還是MTL里的newmtl統(tǒng)一用material_0、material_1這種序號式命名避免特殊字符和重名問題。貼圖則統(tǒng)一拷貝到OBJ同級目錄用純文件名作為map_Kd路徑保證跨平臺不出錯(cuò)。Unity的Mesh支持多個(gè)submesh每個(gè)submesh對應(yīng)一組三角形索引。導(dǎo)出時(shí)如果不按submesh分段輸出而是把triangles整體當(dāng)一組那么多材質(zhì)模型的UV、法線和材質(zhì)對應(yīng)全亂。腳本里一定要做兩層循環(huán)外層循環(huán)submesh內(nèi)層循環(huán)該submesh的三角形并在切換時(shí)輸出usemtl??此贫嗉恿宋辶写a實(shí)際上省了無數(shù)檢查時(shí)間。5.4 大Mesh和特殊字符帶來的性能與命名問題當(dāng)Mesh頂點(diǎn)數(shù)到了幾十萬直接用StringBuilder一直Append最后一次性File.WriteAllText會占大量內(nèi)存而且GC會拖慢編輯器。我實(shí)測過50萬頂點(diǎn)的Mesh一次性拼接大概要多花300~400MB內(nèi)存。建議改成StreamWriter逐行寫文件using (StreamWriter sw new StreamWriter(outputPath)) { sw.Write(o ).Write(objectName).WriteLine(); foreach (Vector3 v in vertices) sw.WriteLine(string.Format(v {0} {1} {2}, -v.x, v.y, v.z)); // 其他字段同理 }StreamWriter底層有自己的緩沖逐行寫字符串的開銷比你想的低很多而且峰值內(nèi)存能控制在幾十MB以內(nèi)處理大場景時(shí)不會卡到編輯器閃退。還有個(gè)容易被忽略的點(diǎn)游戲物體名字里經(jīng)常有空格、斜杠、中文、括號這些字符在o對象名里還能忍但在文件名、MTL名里就會出問題。我在導(dǎo)出文件時(shí)統(tǒng)一做了清洗把非法文件名字符替換成下劃線string safeName Regex.Replace(originalName, [\\/:*?\|], _);如果是給3D打印做模型要注意OBJ坐標(biāo)和三角面方向之外還得確認(rèn)導(dǎo)出尺寸。Unity單位是米Blender里默認(rèn)單位也是米但很多切片軟件以毫米顯示你需要跟對方確認(rèn)好單位否則打印出來的尺寸和預(yù)期差1000倍。最后再分享一個(gè)實(shí)際操作中的小細(xì)節(jié)。腳本寫完不是終點(diǎn)真正讓你省時(shí)間的是把它塞進(jìn)項(xiàng)目工作流。我現(xiàn)在維護(hù)著一個(gè)“一鍵轉(zhuǎn)換”菜單里面同時(shí)掛了OBJ導(dǎo)出、官方FBX Exporter、批量命令行三個(gè)入口平時(shí)把模型拖進(jìn)工程按需求點(diǎn)按鈕或跑腳本五分鐘之內(nèi)就能把資源轉(zhuǎn)成合作方要的格式。每次在項(xiàng)目里跑完轉(zhuǎn)換我都會拿導(dǎo)出的OBJ到Blender里簡單疊一下網(wǎng)格確認(rèn)沒有法線翻轉(zhuǎn)和丟材質(zhì)再往下游走。這個(gè)習(xí)慣幫我躲過了不少坑。如果你的工作流里也經(jīng)常遇到模型格式不兼容的問題這套思路可以直接拿去改花不了多少時(shí)間就能變成自己順手的小工具。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
白丝被操91| 国产亚洲一黄| 亚洲色图欧美视频| 大干人妻| 日韩情色视频| 日本精品一区二区中文字幕| 无码精品一区二区三区潘金莲| 综合另类| 日韩欧美资源| 亚洲黑丝在线| 国产精品宅男免费| 五月亭亭六月丁香| 人妻丰满熟妇av无码区蜜桃| 久干网| 免费操逼视频下载| 人妻色偷色噜| 久久精品噜噜噜成人看免欧美大片| 人人天天欧洲| 婷婷午夜| 91成人在线免费视频| 情色图区| 久久精品国产精品亚洲艾通辽熟妇 | 99后入| 国产兽交视频在线播放| 99热这里都是精品| 日日噜噜夜夜久久亚洲一区二区 | AV丝袜少妇| 国产精品无码av| 久99| 国产 日韩 欧美高清| 9 1果冻精品视频| 97在线观视频免费观看| 95人妻爽爽人人做人人澡| 人人操人人操人人人操| 亚洲 欧美综合| 国产13区| 五月天综合网| 国产人妻精品一区二区三区秋霞| 激情久久久| 人妻丝袜一区二区三区在线| 色婷婷蜜臀av| 欧美久久九九| 在线看片国产精品每日更新| 高清国产精品福利网站| 91视频综合在线| 97亚洲资源| 亚洲另类色图片| 毛片中心9视频99| 国产999精品久久久久久| 一区不卡在线观看av| 男人午夜天堂| 啪啪啪东京| 蜜臀视频网站| 欧美日韩在线小说 | 在线99热| 精品女人999| 性爱av网站| 人人妻人人狠人人| 久久婷婷综合国际产色怕| 粉嫩粉嫩一区性色AV片| www.狠狠干.coom | 性爱精品一区| av网页一区二区三区| 俄罗斯一区二区视频在线观看| 激情小说图片亚洲首页| 一级黄色性爱A级片| 亚洲av综合色区无码一| 大胆91| 精品国产片亚洲一区| 人妻一区视频| 亚洲男人的天堂一区二区| 蜜臀亚洲中文| 江都AV在线| 欧美激情 日韩精品| 国产亚洲色婷婷99精品91| 日日夜夜青青草母狗| 日韩精品作爱导航| 激情网色| 九草在线大香蕉| 60秒不遮不挡| 日韩猛交| 成人AV超碰免费在线| 97资源久久| 国产亚洲福利第一页丝袜| 人人操我人人干| 加勒比在线视频一区二区三区| 欧美少妇人妻| 欧美另类精品xxxx| 丝袜狠狠草尤物人妻av91| 精品十三区| 操91| 天美精品原创av片国产| 八人操人人摸人人看| 涩五月婷婷| 嗯嗯啊好大| 91亚洲丝袜熟女| 日日不卡av| 插穴性爱视频在线观看| 97超碰美国| 久草男人天堂| 亚洲欧洲av影音| 国产精品免费日韩| 射欧美综合| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 免费AV中文网在线观看| 人人 操人人 操人人| 很很热性爱视频| 97超碰天天| 九九九九精品在线| AV免费在线播放一区| 久艹伊人精品综合在线| 91成人亚洲色图| 日本精品网站在线中文| 色欧美在线| 台湾佬中文娱乐网久久久久久久久久com | 男人的天堂2019AV| 电影69乱码96| 蜜桃久久精品一区二区三区| 91无遮挡| 好吊妞转入那个网| 97视频在线看| 91男女啊啊啊| 婷婷午夜清品久久久久久久性色视频观| 亚洲乱色熟女一区| JULIA人妻风俗店中出电影| 不卡六六在线91| 欧美综合天堂| 婷婷色中文字幕| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | av东京热男人的天堂| 欧综合网| 东京太热久久久| 91白虎| 91精品大奶人妻| 九99久久| 伊人亚洲国产一成人久久精品,久久| 国产三级中文字幕粉嫩| 日韩一级成人毛片免费观看| 色噜噜日韩精品| 中文字幕 国产区| 欧美日日人人天天| 99婷婷| 91亚洲图片| 69人妻精品一区二区绯色| 亚洲AV色图一区| 日韩不卡毛片Av免费高清| 国产按摩一区二区三区| 91天天综合网| 欧美A√综合网 | 91精品国产综合久久久蜜臀酒店| 亚洲 图片 综合91| 欧美性爱第一页久久| 成人日本视频人妻在线| 久久天堂| 久久m| 美国aaaaa一级黄片| x97av| 亚洲AV无码翔田千里网站| 精品久久久久黄少妇| av网站国产主播在线| 色999偷自拍拍| 日本性爱欧美性爱| 超碰美女97| 久久久久国产亚洲一区欧美色图日韩| 成人26uuu| 久湿久久| 无码精品蜜桃一区二区三区ww| 亚洲国产中文字幕| 久久综合18p| 日韩欧美午夜一区二区| 亚洲人妻色图| 97AV在线免费观看| 欧美大码在线视频| 高清在线不卡一区二区 视频| 欧美日本天堂| 91成人久久| 欧美劲爆第一页| 青青爽| 97超碰碰| 加勒比无码毛片| www.一本大99| 超碰人人干| 88xx成人精品视频| 91色欧美| 加勒比伊人综合| 色优久久| 操美女高潮抽搐白浆| 东京热男人的天堂| 国产传媒1234区| 色情五月丁香| 秋霞无码av鲁丝片一区| 国产精品一区二区三区免费视频| 九九九九免费高| 97人人射| 99啪啪视频| 人人看人人插| 人人操人人摸人人骑| 美女上床网站| 久久色一区二区| 超碰免费在线| www.色婷婷色综合| 老司机射| 91精品国产91久久福利| 亚洲综合嫩| 丝袜狠狠草尤物 91| 99999精品成人| 日产狠狠干| 久久亚洲中文字幕视频| 欧美,亚洲,日韩,v,天堂,手机在线观看| 91色黑人少妇| 亚洲图片 91| 五月婷婷六月色| 国产一区二区av综合| 秋霞一集毛片观看| 黄色片G G G| 67914在线兔费成人视频| 精品十三区| 美国aaaaa一级黄片| 1769一区| 高清无码一区二区三区| 人妻二区| 欧美高清18A片| 日韩免费中文字幕视频| 欧美在线大香999| 九九热午夜欧亚国产视频| 青青草日本中文字幕| 国产伦精品免编号公布| 在线天堂999| 啊啊啊啊啊在线观看网址| 偷拍欧美激情| 91麻豆一二三区| 国产地址二三| 精品国产乱码久久久影院| 狠狠干综合| 日日干夜夜干| 国产一级久久久| 97色爱| 99 国产丝袜在线| 日1区2区3区2020| 本道综合精品| 国产一级内射无挡观看| 日本片日本片祼观看网站在线看中文版网页在线看 | 精品国产肉丝袜在线拍国语| 志村玲子视频一区二区| 久久骚| 人人操人人精品影片| 91无码人妻精品一区二区三区蜜桃| 色婷婷在线视频精品导航| 五月丁香综合网| 一品道视频一区二区三区| 婷婷色香| 男人的天堂在线| 亚洲AV在线资源| 日韩欧美三级| 沈阳熟女高潮对白视频| 全免费a敌肛交毛片免费| 激情九月婷婷| 大奶啊啊好爽 | 欧美性爱一区二区| 18禁中文字幕| 九九热九九热| 亚洲开心网| 9九九国产| 欧美97爱| 亚洲无码AV九九九| 91女人的网站| 欧美韩日精品99综合| 国产亚洲福利第一页丝袜| 欧美一区二区一级岛国大片| 久热伊人| 91黑丝操| 亚欧免费| 视频在线观看一二三区| 日本道人妻久久久在线不卡色视频| 欧美中文字幕精品人妻| 久久99精品视频| AV丝袜少妇| 亚洲欧美啪啪| 户外裸露刺激视频第一区| 久久99黄色卞西瓜| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 亚洲男人天堂2| 欧美大的香蕉有线电视视频| 女同女同恋久久级三级| 欧美最婬乱婬爆婬性视频 | 久久久久久性爱视频| 欧美性色综合网| 91在线免费观看处女| 自拍啪啪视频| 91高清无码下载| 91扒丝袜综合在线| 91啪啪| 欧美在线干| 9997se| 国产精品日韩在线一区| 国产日韩精品一区二区三区| 99热成人| 国产精品欧美在线观看| 八戒午夜福利理论片| 久久99黄色卞西瓜| 94色色电影网| 九色 人妻 大香蕉| 麻豆国产97在线| 中文字幕制服欧美久久一区| 操www| 7月婷婷综合| 亚州一区二区| AV色天香在线| 视频国产欧美在线播放| 吻戏激情性巴克| 欧美96精品在线| 亚洲精品99| 亚洲色图自拍| 国产成人精品日本视频| 另类专区加勒比| 色久桃花影院在线观看| 蜜桃精品视频一区| 日韩欧美经典在线观看| 欧美色图天堂网m| 国产精品久久久久久夜夜夜夜| 亚洲精品无码久久AV| 亚洲一本色码中文字幕| 亚洲砖码砖专无区2023| 麻豆尤物视频网| 日韩精品一区二区三区四虎影视| 伊色久人大在线| 国产人妖的免费的视频| 裸体美女久久久| 91成人久久| 最新av在线| 欧亚性爱啪啪| 成人怡红院| 日本天堂网| 射久久| 丁香五月社区| 成人av性爱电影在线观看| 男人的天堂啪啪| 1204av韩国| 亚洲中文日韩欧美大香蕉视频| 干美女人妻| 一区二区激情国产熟女| 国产综合色精品在线观看| 98精品国产乱码久久久久久| 91色色色| 家庭乱伦国产| 欧美日韩久久精品爱爱| 丝袜综合| 日本日皮视频逼| 国产精品大屁股999| 99久久婷婷| 操国产逼| 好湿好紧视频| 曰本精品久久久| 亚洲图片偷拍视频区| 亚州综合色| 99爱久久视频频| 久久精品国产亚洲AV无码电影| 操一对老熟妇爽上天视频| 中文字幕视频一区视频二区| 91操人视频| 性色AV蜜色av色欲av| 人人妻天天做天天爽| 欧洲无码一区二区| www.黄色在线| 日韩成人无码| 婷婷爽人人婷婷爽视频| 97超碰免费生活| 欧美 亚洲 制服 精品| 色噜噜精品一区二区三| 国产精品一区av在线| 久久粉色| 丁香九月婷婷| 色吊丝 日日骚 清纯唯美| 亚洲欧洲久久天堂| 一道本久久棕合爱| 天天做天天爽| 无码抄逼网| 伦伦成年午夜免费视频| 欧美18 在线观看| 亚洲人妻一区二区三区| 97色碰| 欧美亚洲日本激情在线| 91成人高清在线观看| 2019天天干| 清纯唯美综合| 青青草影视蜜久久| 欧美九一精品久久久熟妇| 野狼激情网| 人人操人人摸人 | 中美日韩毛片| 亚洲国产精品久久久久婷婷青年| 中文字幕 人妻不满 在线视频| 精品久久无码午夜福利| 97国产人人| 日逼97| 密臀视频三区免费网站| 九九热re99re6在线精品| 欧美一区二区三熟女剧情| 精品九九九九九九九九九| 97 超碰 人人做 人人爱| 九九玖玖精品| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 久久草视频污视频| 97日视频| 色 亚洲 91| 最新9久久久9免费视频| 97在线青| 国产精选视频| 蜜桃AV天堂| 清纯唯美综合| 日本熟女不卡视频| 啪啪AV导航| 激情五月综合开心五月| 黄色AAAAAAAAAAA大片| 中文字幕一区二区视频在线观看| 美女天天干| 91香蕉视频在线观看免费| 久久精品国产99精品亚洲蜜... | 九九九九欧美| 久久久91福利姬| 亚洲色婷婷综合久久一区二区三区| 60秒免费视频| 久草这里只有精品 | 黄aaaaaaaaaaaaaaaaaa色网站| 天天操天天舔| 国产999精品久久久久久| 色综合中文字幕不卡| 成人熟女区| 久久久久久无码人妻中文字幕| 久久久亚洲精品中文字幕人妻| 欧美亚洲激情| 天天综合91| 伊人五月天婷婷| 白嫩国模丰满一二三区| 成年人黄色视频免费| 人人 操人人 操人人| 亚洲一本大道中文字幕无码在线| 无码99| 亚洲欧美日韩国产丝袜自拍中文| 99精品高潮| 欧中美三级一区二区三区| 91啦人妻| 久/久精品99看9| 亚州精品丝袜-不卡成人免费| 九九九网页| 亚洲人人夜夜澡人人爽| 久久久无码精品人妻二区| 久操精品| 婷婷综合网| 夜草欧美| 爱丝福利| 欧美探花网| 麻豆2区1区天美| AV久日| 99re免费视频精品全部| 国产熟女少妇一区| 少妇内射视频| 亚川综合视频| 免费观看欧美日韩操逼视频| 天天综合网1| 欧美色综合网| 大香蕉黄色一区| 成人天天看站长推荐| 清纯唯美激情| 亚洲AV噜噜狠狠网址蜜桃动漫| 99在线免费观看| 大香蕉之青青草原| 免费自拍三级综合| www.高清无码诱惑一区.com | 搡老熟女免费视频| 920日本午夜免费| 日韩影片中文字幕一区二区三区| 91白虎| 色婷婷电影网| 亚州,欧美在线| 中国国国产一级特黄毛片| 人妻爽爽啪视频| 亚洲欧洲av影音| 人妻加勒比东京热| 91情色| 亚洲欧美精品福利在线| 蜜臀网址在线| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 熟女欧美日韩综合婷婷| PMv在线观看| 婷婷伊人一区| 日韩欧美大力操| 91精品导航| 色婷婷六月丁香七月婷婷| 日本1区2区不卡视频| 韩国免费播放一级毛片| 久久超碰98| 日韩人成网站在线播放| 8x福利精品第一福利视频导航| 日韩久射综合| 骚妻少妇精品性色无码四色A V| 尤物网站91| 116美女午夜| 色五月AV| 欧美色图下一页| 成人av影院在线观看| 在线人人人人人人精品超| 久久超碰av在线| 欧美疯狂做爰xxxx| 操人妻视频| 桃色六月天| 国内精品久久人妻性色av| 志村玲子视频一区二区| 91精品国产91久久福利| 精品九九九九九九九九九| 极品尤物女神在线观看| yiren97| a亚洲欧美色欲| 秋霞午夜视频一区二区| 人妻精品一区二区在线| 色香AV| 久久九七| aaa亚无码专区| 成人综合色网| 国产欧美精选自拍一区| 亚洲清纯综合| 亚洲男人的天堂V| 中文字幕天堂在线| 东京热99999| 激情综合网五月婷婷五月天| 91男女| 伊人青青一区成人视频在线观看区| 91视频精品| 岛国不卡超碰护士AV在线播放| 立川理惠无码一区二区| 香蕉欧美| 男人的天堂VA| 亚av顶级裸体一区二区三区四区五区| 九九成人视频| 377p欧洲日本亚洲大胆| 综合熟妇一区二区三区| 粘花网06av视频| 97最新在线播放视频| 尤物网站91| 少妇熟女视频一区二区三区| 宗合情欲网| 五月丁香啪啪网| 岛国大片国产| 97色网| 九九九不卡| 亚洲av夫妻操穴网| 婷婷色五月激情| 韩日性爱av| 另类图片综合| 91白虎| 大香蕉在线SuP| 大香蕉 222| 国产精品久久久无码AV网站| 一级一性爱免费视频| 久久久涩| 精品一区99999| 久久久∴| 五月天激情影院| 精品成人动漫一区二区| 五月天婷婷在线看| 伊人热综合| 91综合网站| 久久精品国产亚洲粉嫩| 97久久久精品| 啊啊啊啊操死我了| 国产传媒1234区| 久久久久久久久久久人妻| 91成人在线免费视频| 久久精品熟妇丰满人妻99| 四季av一区二区凹凸精品小说| 日韩精品电影| 99www.bibizy香蕉资源国产一区二区三区高清 | 欧洲天天在线| 亚洲情色电影网| 亚洲性爱高潮影院| 夜夜嗨AV一区天天| 校园春色综合| 91网亚洲| 亚洲综合小视频小说在线观看| 美女黄页| 日本色色色视频| 国内毛片婷婷六月色| 综合 欧美 亚洲 日本| 18禁美女裸体无遮挡啪啪| 久久精品欧美一区二区三区不卡| 免费一级性爱久久| 国产av又色又爽又黄| 18禁网站在线播放| 日韩av乱伦| 综合久久99| 精品一区二区三区蜜桃臀赵总 | 眼镜人妻101.com| 中文字幕日韩精品久久| 色色色色日本| 91性高潮久久久久久久久| 色黄色美女大长腿午夜视频| 伊人激情五月天一区二区| 日韩av影片在线观看| av在线资源| 亚洲天堂中文字幕无码男同| 丁香六月婷婷综合| 人人操天天爽| 婷婷探花久久精品一区| 三级色影综合网| 富女玩鸭子一级毛片| 免费又黄又裸乳的视频| 一区二区娱乐网站| 国产av青草| 久久久久久免费电影| 嗯嗯啊啊啊好爽| 97久精品| 综合情欲网| 加勒比AV网| 久久骚| 欧美色女人| 伊人久久综合影院| 精品久久久av无码免费| 日本Xx性爱| 色婷婷狠狠18禁| 福利风月五月天影院| 大香蕉伊人在线成人AV在线观看| 国产欧洲精品亚洲午夜拍精品| 欧美性91| 欧亚性爱啪啪| xxx亚洲午夜天堂| 亚洲加勒比色图| 黄色免费网| 国产一级片| 欧美日韩亚洲电影| 黄片免费日韩| 伊人久操| 伊人玖玖网| 欧亚日韩中文在线| 九九性爱网| 国产精品女久久久久av爽| 95精品在线| 国产在线激情| 久操网线| 大香网伊人久久综合网eew| 亚洲人综合19| av资源在线观看少妇| 97 国产一区| 日产操逼| 日本在线一二 | 精品午夜福利| 色婷婷小说| 97久久久精品| 易易A毛视频| 亚洲黄网在哪免费看| 久久欧洲| 麻豆国产精品午夜视频| 天堂中文日本在线观看| 久久这里| 黄色免费网| 91超级碰碰碰| 婷婷香蕉| 五月天加勒比啪| 奇米四色影视777久久久| 青青草伊人久久| 加勒比综合a∨| 亚洲国产一级精品毛一级精品看免费视频 | 少妇被c 黄 免费观看| 中文字幕啊啊啊在线观看视频| 91中出在线| 亚洲国产日韩欧美熟妇在线| 亚洲精品蜜桃久久久| 亚洲精品国产精品乱码不99| 久艹日日日| 91干熟女| 大香交| 丁香五月天激情网站| 亚洲欧美setu| 韩日性爱av| 97久久国产精品| 色婷婷五月综合激情中文字幕| 色777999综合| 色噜噜婷婷| 伊人加勒比| 开心五月婷婷| 男女一进一出视频久久| 欧美天天综| 欧美日韩性爱无码| 在线播放欧洲免费av| 5278欧美一区二区三区| 91久久久久久久| 国产一区二区在线电影| 精品传媒在线一区| 超碰 另类 欧美| 久久久久亚洲?V片无码V| 91欧美性| 天天爱天天操| 立川理惠被中出无码| 亚洲美乱| 亚洲最新中文字幕免费| 精品国产乱码久久久影院| 一区二区三区精品黑丝白丝酒店对鸡 | 久久美女国产| 超碰久久精品| Sekablack无码一区| 91性| 亚洲丝袜色| 黄人人操人人操| 久操视频在线| 少妇被玩视频二三区| 亚洲最大的黄色电影网站。| 操逼操逼视频操逼| 久草加勒比一区在线| 中文字幕女同在线| 五月丁香影院| 超碰97人人cao| 超碰97爽| 国产精品熟女丝袜一区二区| 日韩一级久久毛片| 人妖欧美一区二区| 亚洲激情色片| 国产高清1234区| 蜜桃精品视频一区二区三区| 人人做人人妻人人夜视频| 久久伊人最新网址视频| 天天综合,91入口| 国产乱弄免费在线视频。 | 国产9熟妇视频网站| 少妇69中文| 25国产精品免费观看| 天天干人人干天天日97| 国产91丝袜 在线播放| 日本不卡二三区| 97精品国产97久久久久久| 成人性爱美曰韩| 欧美色院| 黑人精品欧美一区二区蜜桃| 97这里只精品| 大香蕉婷婷| 欧美强奸乱| 成人性生活高清视频在线播放| 丝袜狠狠草尤物 91| 色综合加勒比四四季| 欧美日韩超碰在线| 丁香九月激情啪| 中文字幕日韩人妻视频一区二区三区 | 翔田千里AV无码秘 三区| 中文字幕一二三av| 久久精品91| 国产偷人妻精品一区二区在线| 国产又大又粗又长视频在线| 东京热,男人的天堂| 麻豆AV一区二区| 在线黄页看毛片| 五月婷婷丁香六月| 丁香婷婷大香蕉| 一级片在线观看高清无码| 日韩免费簧片| 亚洲无码超碰免费| 亚洲影院成人| 玖色av| 大香交| 无码二级三级| 欧美碰碰综合色| 91n欧美| 91精品91久久久中77777| 九七毛片九九毛片 | 美女露胸露奶头| 色香阁在线| 美女露胸露尿口| 五月丁香六月激情综合| 天天做日日爱夜夜爽| 国产欧美日韩精品中文| 婬女免费一二三区A片| 欧美日韩中文亚洲v在线综合| 激情啪啪拍91| 亚洲麻豆av一区二区| 翔田千里爆乳巨臀无码| 九九草| 色综合V| 国产成人免费观看在线视频| 中文字幕奈奈美被公侵犯| 久草成人福利导航| 熟女丝袜视频| 超碰中文字幕人妻草一区| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 日韩无码三级影院| 国产高清无码一区三区二区| 日韩黄片视频试看| 人妻三级在线中文字幕| 激情五月综合开心五月| 亚洲欧综合另类无码一区| 欧美日韩在线视频网站| 五月婷网站| 国产亚洲精品自在线亚洲情侣| 九九综合久久| 亚洲 欧美 手机在线观看| 五月综合激情网| 日本日日色视频| 国产一区二区三区不卡手机在线| 欧美国产一区二区三区麻豆传媒| 天天综合网亚洲综合网| 久久久久99999| 秋霞成人做爱| 久久精品店| 亚洲天堂色图| caopeng97| 中文一区二区婷婷视频| 国产久久久久影院老熟女| 久久久禁| 欧美天天弄| 亚洲va有码在线天堂| 黑人嘿嘿嘿超爽免费视频| 91麻豆天美国产欧美日| 天天摸天天舔天天操| 亚洲成人在线资源| 人人看黄色视频| 色婷婷av在线观看| 日日黄色三级网站| 亚欧美综合网。| 中文一区二区三区影院| 欧美日韩色综合网| 国产成人www免费人成看片| 国语国产操逼伊人AV网| 一区黄二区黄| 18精品一二区| 天天干天天舔| 婷婷五月色| 欧美A√综合网| 日日夜夜免费| 无码伊人久久大杳蕉中文无码| 天天干天天日天天射黄色大片| a片亚洲一本通视频| 欧美天天综合在线| 思思在线免费视频| www老逼91| 美女网站黄页| 亚洲图片激情综合另类| 欧美性生活综合| 偷拍片久久| 日韩操逼HD| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 狠狠操天天干| 性生活久久久久久久久久| 综合久久9| 五月丁香在线| 农村少妇久久久久久久| 久久无码电影| 最新9久久久9免费视频| 人人做天天爱| 99无码| 欧美+日产+中文| 啊视频在线| 91M一社| 欧美视频一区二区在线| 中文欧丝袜诱惑| 萌白酱自拍视频| 亚洲。日韩。欧美| 思思热一热婷婷热一热| 啊啊啊啊网站| 欧美日韩99精品麻豆传媒| 不卡六六在线91| 一线黄色免费性爱片| 99操逼| 91N综合网| 五月婷亚洲精品天堂| 凹凸久久人人| 嗯啊不要在线| 亚洲,欧美,综合网| 精品偷拍13p欧美dodk视频| 超碰碰97| 性爱综合一区二区| 少妇与黑人高潮在线| av一区二区三区四区五区久草臀| 丁香九月婷婷| 日本欧美成人片AAAA| 久夜视频| 亚洲色9| 免费的很黄很污的全部视频| 91黑丝操| 丁香五月成人| 精品无码久久久久久久久果冻糖心| 欧美色图亚洲色图成人在在线| 久久神马| www.色99| 青青网三级视频| 欧美综合网在线| 日韩激情视频| 在线可观看的黄色网址| 日本布卡一区二三区| 成人免费在线网站| 一二三四区操操Av| 黄片免费看黄片免费看| 78久久| 日韩天天本| 婷婷99狠狠| 国产精品懂色tv影视免费观看| 蜜臀久久99精品| 九九热超碰| 日夜尻逼网| 婷婷丁香五月综合| 中文字幕伊人| 97在线精品观看视频| 9999亚洲电影| 国产精品无码av在线 | 久久超碰久| 日韩精品碰碰| 性欧美第一页| 亚洲熟妇无码一区二区三区| 国产高清午夜成人在线观看| 97香焦色区| 中文字幕人成乱码熟女香港| 欧美熟妇亚洲版| 国产精品999zyz| 亚洲天天天| 久九九九九九九热| 免费一级a毛片久久久久久鸭绿欲| 色精品极品| 亚洲色综合| 熟妇人妻精品一区二区| 色偷偷色偷偷欧美日韩| 91天堂色男人的天堂| 亚洲男人在线观看天堂| 国产第二页| 亚州操操穴网| 91蜜桃婷婷狠狠久久综合9色| 免费的黄片有限公司| 加勒比中文av| 天美传媒在线一区| 婷婷综合激情| 操逼无码一区| 最新av中文字幕高清| 超碰美女97| 骚人妻少妇视频| 黑操B| 殴美在线AⅤ| 国产亚洲深夜激情| 九九碰九九爱97超| 精品国产99999| 青青草大香蕉在线视频| 亚洲日本韩国极品一区二区| 手机在线观看不卡无码av| 亚洲另类欧美精品| 精品人妻一二三| 午夜男人的天堂| 曰本特级特黄特色黄色A级网站高清在线免费看| 91美女视频直播| 视频黄站| 精品综合久久久久久97| 精品久久在线区一区| 日本不卡高清视频| 操迟操逼在巾线Fre看| 97资源久久| 国产精品网址| 欧美熟妇精品黑人巨大91| 久久九九精品一区二区| 蜜桃视频啊啊啊啊| 智利AV在线网| 久久9999| 91蜜桃传媒精品久久久一区二区| 日日日日做夜夜夜夜做无码97| 伊人久久亚洲色欲综合网站| 麻豆天美制片厂网站视频| 99热这里只有精| 亚洲五月天激情| 狠狠中文字幕| 9 9精品一区二区三区| 婷婷尹人大香蕉免费| 97干日韩| 久久久久久久久久久999| 超碰97最新人妻| 欧美中字不卡| 伊人四虎综合| 老司机香蕉| 1区2区3区视频| 波多野结衣之双飞调教在线播放 | 免费人成在线观看网站品爱网| 久久久久国产精品久久久| 综合97| 欧美性爱精品七区| 又大又长又粗又爽又黄| 中日韩免费看男女操逼大全| 性爱视频免费网址| 91精品人妻偷情| 性色AV蜜色av色欲av| 日本欧美韩国国产在线| 国产第25页在线观看| 黄网在线播放| 老女人日韩美91| 试看福利| 日本天天吊| 97在线青| 啊啊啊好大好湿| 91AV天美在线视频| 99日免费视频中文字幕| 久久久九九| 91狠狠| 天天干夜夜一操| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 97伦乱| 蜜臀视频网站| 污污汅18禁网站在线永久免费观看 | 日韩无限资源| 中文字幕一区电影在线观看| 欧美黄片视频在线观看免费| 97久久超碰国产网站| 免费99精品国产自在在线| 青娱乐淫乱1314| 精品在线观看视频在线| 啊啊啊啊啊啊在线看| 激情黄色五月天| 91天堂| 中文字幕av乱伦| 一区麻豆 高清中文字幕| 日本欧美不卡| www.av在线视频| 日本丝袜美腿人妻九九| chaopen97久久| 久久精品黄色| 国产精品探花视频| 日本人妻一区二区| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照 | av天堂加勒比| 岛国AB视频| 欧美亚男人的天堂| 亚洲欧洲激情卡通另类文学四射小说网站| 狼狼色丁香久久婷婷综合五月| 免费久久精品麻豆一区二区av| 中文字幕片| 久久久人妻| 一级免费啪啪片| 伊人 俄罗斯 a v| 久久精品一区二区三区四区五区| 福利在线黄片| 91日日夜夜| 午夜乱轮操逼视频免费看| 五月丁香大香蕉| 丝袜色综合| 懂色av色欲av蜜臀av| 淫色网综合| 97在线免费视频观看| 婷婷五月色| 殴美色网| 五月丁香影视| 国产怡红院在线| 九九色图| 色噜噜日韩精品| 色综合久久久久| 玖玖资源视频一区二区三区| 女同性恋久久| 久久成人午夜狠狠| 久久久免费一级黄片| 97超碰总站| 殴美大黄片| 尤物视频偷拍免费| 欧美日韩性爱精品| 青青操日韩| 99精品成人免费看| 国产中午字一暮区| 国产精品视频自拍在线| 少妇内射www在线观看视频| 最新av中文字幕高清| 国厂麻豆77q4| 操迟操逼在巾线Fre看| 日日干夜夜骑| 欧美日韩国产色图在线| 91中出视频| 91麻豆天美国产欧美| 少妇精品久久| 丁香五月AV| 三久久久四久久久久| 麻豆久久久一区二区| 久久夜夜| 亚洲欧美日韩有码| 成年人性爱日韩| 久久久久久免费电影| 日本免费中文一区二区三区四区 | 国产亚洲女v在线观看| 色五月激情AV在线| 91精品综合久久久久久五月丁香| 伊香蕉综合久久久久久久噜噜噜| 开心激情婷婷| 国产精品午夜AV完会免费| 天天日日本| av网页一区二区三区| 欧美性爱一区二区三区| 91色综| 91日韩国产欧美亚洲另类精盘州至城都| 人妻熟女午夜精品在线| 欧美日韩不卡传媒| 欧美后进式| 天天伊人| 97精品视频免费| 影视综合无码少妇| 玖玖爱伊人玖玖爱| 日日干夜夜干| 久久成人午夜精品影院| 91激情网| 国产精品一区二区三区在线密挑| 久久久草草精品| 91在线美女| 久久av无码| chaopen97久久| 九色PORNY9l原创自拍| 草草草视频在线免费看| 天天摸天天舔天天操| 成人在线视频二区| 亚洲91在线播放影院| 综合 亚洲 欧美| 自拍视频大全亚洲专媒视频/一区二区三区| 精品一二三区久久AAA片| 婷婷爽人人婷婷爽视频| 91无摭挡| 青青草在线成人视频| 性爱av网站| 亚洲视频中文一区| 中文字幕AV中出| 久久久久久久久久久久久久久乱码| 91|九色|国产熟女| 天天综合~91| 农村少妇久久久久久久| 人人操天天爽| 99热在线播放| 久久欧美性爱视频| 8x福利精品第一福利视频导航| 天天伊人| 人人操人人精品影片| 小明看看网址| 婷婷五月天福利| 欧美性生活男人的天堂| 国产精品夜夜| aaa淫乱视频| 熟女人妻av在线资源,黄色的资源| 国产操操日韩三级黄| 永久电影三级在线观看| 亚洲综合大片| 91女在线观看| 久久小视频| 97人人干| 探花一区二区三| 国内精品a| av网站在线观看了| 亚洲在线网站| 精品美女久久久久| 久久秀这里有精品| 亚洲欧洲av影音| 性欧美999| 国产av热热色| 69综合网| 清柠毛片| 欧美日韩一二三| Aa东京男人的天堂| 日本精品免费一区二区三区四区| 天天懆天天日| 18禁止看精品中文字幕| 精品大久久| 天天干天天燥| 日韩在线一区二区| 九九英色视频| 久久视网78| 成人十八禁日韩欧美一二三| 人妻一区久久二区三区色播| 97超碰国产亚洲精品资源| 伊人综合色网| 欧美综合站| 午夜天堂精品久久|