精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

QQ空間萌寵之舞:HTML5骨骼動畫實踐

企業動態
QCon是由InfoQ主辦的全球頂級技術盛會,每年在倫敦、北京、東京、紐約、圣保羅、上海、舊金山召開。自 2007年 3月份首次舉辦以來,已經有超萬名高級技術人員參加過QCon大會。QCon內容源于實踐并面向社區,演講嘉賓依據熱點話題,面向 5年以上工作經驗的技術團隊負責人、架構師、工程總監、高級開發人員分享技術創新和最佳實踐。

 4月16日QCon前端工程實踐專場會議上,騰訊QQ空間營收方向負責人、web前端工程師李振文以”QQ空間萌寵之舞——HTML5骨骼動畫實踐”為主題,用去年上線的QQ空間萌寵作為實踐案例,為大家分享了骨骼動畫的實踐技術點、骨骼動畫實踐中遇到的問題以及最終的解決方案,***是根據總結的經驗得出得性能優化方案。

李振文:我是來自QQ空間的李振文,很高興在QCon上跟大家交流,QQ空間去年上線了一個寵物,我們使用了骨骼動畫實現這個游戲。從零基礎最終到這個游戲上線,我們開發實踐過程當中遇到很多的問題。開發實踐中遇到的問題和一些思路想和大家交流一下。

這是我今天介紹的一個大綱,首先給大家介紹一下骨骼動畫的基礎知識點。然后是項目中幾個工程技術實踐,以及遇到的問題和解決方案,***講性能優化上面的幾個實踐點。

先介紹一下骨骼動畫的基礎知識點,我拿幀動畫和骨骼動畫的素材做了一個對比。屏幕上幀動畫實現不停的切換每一張圖片實現動畫播放的。這樣如果我們要去實現多套動作的話,就需要準備很多套圖,靈活性很差,素材體積也大。但骨骼動畫是將素材拆解成一個個零件,圖片上人拆解成頭、身子、盾、矛,然后用這一套素材拼成不同的動作,跑步、跳躍等都可以實現。骨骼動畫設計上的做法跟我們代碼模塊化游戲相似。

這里列出了骨骼動畫的特點。

***,資源體積更小,骨骼動畫保存骨骼相關的動畫數據,不需要把每一幀圖片都保存下來,所以需要的資源很小,小的圖片就可以實現。

第二,多角色可以共用同一套數據,我們實現一套骨骼之后,只需要把骨骼上面圖片素材更換或者修改就可以實現不同的角色。

第三,動作可以自由組合,比如一個角色它可以這樣搖頭,搖頭同時把手抬起來,把腳起來,可以自由組合。

第四,骨骼動畫有網格的功能,可以實現蒙皮、自由變換,動畫更加逼真。

第五,骨骼動畫對處理器要求性能更高,骨骼動畫運動的時候需要大量的計算,因此性能要求更高,這也是我們實踐當中遇到的***挑戰。

這是一個組裝好的骨骼動畫,圖片中將骨骼顯示出來的,每一條灰色線就是一根骨骼,骨骼上面的小黑點是關節,每個都可以旋轉,骨骼動畫運動只需要動一個骨骼,與之相連的骨骼就可以一起運動。這張圖藍色線條的部分,是手的上臂骨骼,移動這個上臂骨骼,子骨骼,前臂和手掌也跟著一起運動。這樣就非常美妙了,我們實現聳肩只需要關注肩膀的運動,不需要關注手臂和手掌的運動。

 

 

這是我們整理出來的骨骼動畫的組成結構,這個組成結構對應的動畫編輯器是SPINE。包括有骨骼、插槽、附件和動畫。骨骼是核心,是豎狀結構,插槽附著到骨骼上面,插槽上面可以放很多附件,附件包括圖片和網格,圖片是我們肉眼可以看到的,圖片素材頭、腳、身子、腿這些。網格可以用來實現自由變形和蒙皮效果,讓動畫更加逼真。動畫控制每一幀骨骼位移和旋轉位置。

 

 

這是一個骨架的樹狀結構,這個骨架下面有軀干、左腿、右腿和盆骨。而軀干下面又有左臂、右臂和脖子。可以看到骨骼上面是附著有圖片的,這些圖片其實就是附著在骨骼的插槽上面,紅色圓圈部分就是插槽。插槽是SPINE編輯器的一個概念,為了讓骨骼不影響繪制順序而創造的,例如,如果我的軀干部分有衣服和肚子,髖骨有褲子,繪制順序應該是肚子在最下面,褲子在中間,衣服在最上面,如果沒有插槽這個概念,那么就要建立三個骨骼,軀干要拆成兩根骨骼,這樣不合理,但是有了插槽就只需要兩根骨骼,可以在軀干這一根骨骼上面建立兩個插槽分別放衣服和肚子。

 

 

介紹完骨骼我們介紹一下網格,圖片中藍色的線條就是網格,一條一條的線非常形象。剛才講網格實現蒙皮和自由變形。為什么可以實現自由變形?因為有頂點、邊緣、三角區域三個概念。頂點就是藍色的點。三角區域就是三個點組成的三角區域。邊緣就是整個大框架的邊緣。有了這三個概念,只要我們移動***可以將三角區域紋理進行變形,圖片就變形了。***張圖我們拖動藍色的頂點,就可以拉長鼻子。蒙皮效果就是能夠讓骨骼運動影響網格的方法,進而影響圖片素材的運動,運動效果顯得更逼真。我們來看一個演示效果:


 

左邊動畫沒有使用蒙皮,右邊動畫使用了蒙皮,左邊耳朵和長矛是僵硬的,右邊耳朵和長茅抖動顯得更逼真,沒有蒙皮效果的骨骼動畫設計是不完整的。

做骨骼動畫,***步選擇對應的編輯工具,這影響后面動畫實現和運行庫的選擇。現在市面上主要有兩款,***個是SPINE,國外付費軟件,運行庫和功能都很多,而且普及程度高,大部分設計公司都用的這個,因為考慮后續設計資源的緣故,我們選擇了SPINE。另一款是龍骨,我們國產軟件,免費,運行庫和功能相對較少,但是作者在不斷完善中,功能也在向spine靠齊,而且關鍵的是可以直接與作者溝通。這里大家在學習的時候建議可以先用龍骨上手。后續再根據游戲的需求來選擇用哪個軟件。

SPINE支持的運行庫非常多,官網上列了很多,我們這里挑了幾個來做對比,主要從性能、是否支持webgl、文件大小、文檔還有活躍度方面來做選擇。因為幾個底層庫實現都相同,性能上沒什么太大的差別;cocos2d的骨骼動畫組件由于沒人維護,直接放棄了;最終我們結合項目特色,選擇了PIXI這款輕量的引擎。它的體積、文檔還有活躍度上都非常不錯,當然PIXI也有他的缺點,PIXI是一個較底層的游戲引擎,很多功能需要使用插件或者自己去實現,因為我們要做的游戲主要是以播放動畫為主,再附帶一些界面交互,所以選擇了PIXI,這里大家在實際項目中可以列出自己關注的維度來進行對比挑選適合項目的引擎。

介紹完了骨骼動畫的一些基礎知識點,來看下我們QQ空間做的這款寵物游戲,這是一個養成類的游戲,主要功能包括喂食、偷糖果、換裝、組合動作。還可以和你聊天,講笑話,玩成語接龍,在空間主頁也會顯示這只寵物。大家可以下載***版的QQ空間手機版來體驗這款游戲。

接下來介紹項目實踐中幾個技術點實現。我們寵物游戲核心功能之一就是換裝扮,可以自由替換帽子、衣服、褲子、背部掛件,換裝扮對骨骼動畫來講就是換附件,附件有普通的圖片類型,還有蒙皮類型,普通圖片PIXI支持了,但是蒙皮類型的沒有,要實現蒙皮類附件的替換,最開始想到的方式,hack引擎從圖集讀取出來的附件信息,修改它的紋理指向換裝之后紋理。再構造一個新的SPINE對象,這樣雖然能實現需求,但是畫面會有閃動。

為了實現更完善的方案,我們熟讀了一遍PIXI代碼,找到了更好的方式,pixi有一個使用canvas做紋理的接口,所以:把canvas代替png圖片繪制,如果有換裝,就覆蓋canvas以前位置的圖片。實現換裝有兩部分,***部分是在頁面打開初始化的時候,需要給寵物穿上現有的裝扮,首先將原始圖集轉成canvas,再將裝扮圖片插入canvas指定的位置,這個位置是在SPINE導出的配置文件里定義好的,然后再通過PIXI的接口把canvas轉成紋理,接著用這個新的紋理替換掉附件的舊紋理,再渲染就行了。第二部分是在裝扮商城里換裝,只需要覆蓋原來衣服在canvas上的位置,在刷新下紋理就可以實現無縫換裝了,代碼里是簡單示例,***步清理canvas上的舊衣服圖片,第二步把新的衣服圖片畫到canvas上面,***更新畫布。經過這兩部分,就能***地實現換裝功能了。

第二個功能點分享GIF圖,游戲分享出去有GIF圖動起來轉化效果更好。我們實現GIF主流程有三個大步驟。***步H5截取每一幀圖片,然后傳給客戶端組裝成GIF圖同時壓縮,***上傳到后臺發布分享。合成GIF圖的也可以用純JS方案或者后臺方案,純JS方案需要引入第三方庫,而由于GIF圖太大我們要進行壓縮,壓縮就涉及到很多像素對比運算,效率很低,需要10秒左右。后臺方案,如果我們把圖片截好之后傳給后臺,這中間網絡傳輸耗時就會很大,所以我們選擇用客戶端幫助我們合并GIF圖的方案。

我們來看下H5截圖的邏輯,主要是從canvas中將每一幀的圖片截取出來,因為我們頁面上會播放這個動畫給用戶看,為了節省資源,決定利用這個已有播放動畫的canvas。最簡單的,播放動畫的時候截取每一幀的圖片,但是實現之后發現一些低端機型截出來的圖片不完整,播放起來就像演示一樣很卡頓,原因是這些低端機性能很差,導致截圖的時候會漏掉幀數。所以我們采取了多輪截圖方式,通過FPS和動畫時長計算出需要截取的圖片數量,將截取的圖片按照計算出來的key值進行保存,這樣就能保證截取動畫的完整性。FPS我們在游戲中會有一份緩存,沒有的話會再跑一遍計算FPS。然后通過FPS和動畫時長可以計算出需要截取的張數,然后在動畫播放過程中進行截圖,截取的圖片會通過key值進行保存,判斷截取的圖片數量達到預期后就結束截圖,通知客戶端進行合并。

這是通過新的方式截取出來的gif圖,效果不錯。這個方案的優勢在于利用了頁面中已有播放動畫的canvas來實現,減少了額外的資源。在設計方案的同時考慮性能和業務場景,來制定更合適的方案。

接下來向大家分享一下開發過程當中遇到的問題點。***個問題在調試素材的時候我們發現有些動作會展示錯位,它的肚子和衣服都會飄到天上去,我們發現這個問題發生時有共性,只有蒙皮類型的動畫才會出現這樣的問題。為什么會這樣?我們定位源碼,閱讀他們的源碼,找到了觸發原因,同一個插槽上面有多個附件就會觸發這個bug,PIXI引擎在定時器更新遍歷插槽時間軸的時候,在region切換到mesh類型的時候或者mesh切到region的時候,引擎沒有隱藏之前的附件,所以就會產生漂移。通過修改源碼解決了這個bug,***版的PIXI已經修復了這個bug。

第二個問題發現部分機型播放蒙皮類動畫會有閃爍的問題,當時離發布只有一天了,時間非常緊急。我們一方面查源碼定位這個問題,一方面查是不是素材導致了這個bug。在定位問題時,我們發現用官方的示例代碼在特定機器上也能重現,確定了是引擎自身問題,我們當時嘗試切換PIXI到舊版本,發現在某個低版本這個問題沒有,可以肯定是新版本PIXI某個代碼改動導致了這個bug,當時時間緊迫,所以臨時用了舊版本PIXI解決問題。但仍要搞清楚新版本為什么有這個問題,我們對比新舊代碼,看到了是這行代碼的緣故,這行代碼到底做了什么事情呢?這個變量是控制是否使用系統的VAOS插件,只要用了系統的VAOS插件就會有問題。VAOS插件可以避免循環渲染中不必要的開銷,也會改進我們做循環處理時的代碼寫法。但是它對性能的提升不大的,基本上可以忽略不計,主要作用可以讓我們處理循環渲染的時候做一些寫法上面寫起來更加優雅,代碼上PIXI給我們做好了封裝,我們全局關閉就可以了。

我們小結一下剛剛講得這些內容,兩個功能點實現,實時換裝和技術點截圖。蒙皮錯位和閃爍bug,一方面我們熟讀源碼,第二是與作者交流。熟讀源碼讓我們更快定位到問題的癥結點,與作者交流可以幫助我們找到***辦法解決問題。同時我們解決問題的時候,同時朝著不同的方向去努力的。如果當時因為一些特殊的原因使用了臨時方案的話,之后要找到問題的本質,用***方案解決它,避免今后某個時間點背負這些技術債。

接下來交流我們在性能優化上面做的幾件事情。當時主要從CPU、GPU、內存三個指標上測量性能,剛開發完時我們CPU有40%,GPU占67%,內存增量有100兆,這個數據光看起來就很差,實際測試對用戶影響導致手機耗電、發熱、卡頓和崩潰。

 

 

先來看下為什么CPU和GPU占用會這么高?看圖片中的人物,我將所有的骨骼和網格都顯示出來了,骨骼動畫每一幀都需要控制這些點的運動,做了很多矩陣運算,而且開啟了gpu加速,所以只要運動,cpu和gpu的占用就會飆升,越精細的動作,它控制的骨骼和網格數量就越大,所以消耗也會越大

我們做了三個處理,***、減少每一幀運動的骨骼及網格數量,根據實際情況權衡的,減少太多動作就會不精美。第二、我們通過減少不必要的運動頻率,例如把待機動作改成隔幾秒動一次,減少持續性的消耗。第三APP切換到后臺時停止動畫,防止切換到后臺動畫一直播放導致APP崩潰。

做了這幾點以后,我們待機時CPU占用到12%,GPU占到34%,基本上跟客戶端的占用差不多了。

第二個性能優化,減少內存占用。內存的占用主要來自紋理圖片、JS對象的占用,于是我們做了幾個測試,***個測試是將兩倍尺寸的紋理圖換成單倍圖,但是實際測試優化效果并不大,和預期不符,經過查證,原因是我們這個測試是用chrome的profile來測試的,profile只會檢測js對象和DOM占用的內存,不會檢測GPU內存,而紋理圖占用的是GPU內存,所以這里檢測不出來,這也是我們從普通web開發轉游戲開發后的一個誤區,沒有關注到GPU內存的占用,后面會講到gpu內存的優化。這里先看第二個測試,將動作數據進行精簡,對比發現精簡后的內存占用大大減少,于是我們對動作數據進行了拆分。要實現動作數據拆分,并且按需加載,只在用到某個動作的時候才加載這個動作數據,我們暴露了PIXI的這個私有接口,這樣就能直接添加新的動作數據進去。動作數據為什么占這么的內存?我們寵物游戲的特色,用戶可以通過組合不同的動作來生成新的動作,所以它的動作數據很多。最開始我們完整的動作數據有70個,文件大小有3兆,轉化成JS對象以后占用的內存更多,拆分后的初始動作從70多個減少到4個,文件大小從3M減到200K,拆分之后,JS占用的內存從49M優化到了18M,而且因為配置文件體積也變小了,頁面加載速度也提升了30%。

第三個性能問題,游戲里面有個排行榜,可以切換到好友寵物去偷糖果,測試中不停地切換好友,內存會不停地往上漲,表現出來的問題就是webview進程會崩潰。我們的好友數量一般都有上百個,多的有上千個,所以這個問題很明顯。

瀏覽器內存分為這幾塊,JS、DOM、GPU內存、編譯后的Code等。JS和DOM的內存占用可以通過chrome的Timeline和Profiles來分析,其他的則可以通過chrome的任務管理器來看。開發調試時主要用chrome工具,上線前測試的時候需要在APP里面看實際環境的數據,就要借助客戶端相關的測試工具。IOS的話用xcode,安卓是用的我們公司內部自研的一個工具。經過測試,切換12個好友后,JS內存增長了18M,GPU內存增長了90M,非常的嚴重。

***部分JS的內存占用通過定位下來主要是附件、網格數據的增長。如果新建一個模型對象的話會有很多重復的附件數據,因此針對同一種寵物,我們復用他的模型對象,切換好友就相當于只是換裝扮。切換之后的SPINE對象以及初始紋理都能夠復用。JS的內存增量從18M優化到了5M。

我們再來看GPU內存,由于前面復用了模型,模型的紋理也能復用,因此可以減少GPU內存占用。在確定這些紋理不再使用后,可以手動執行PIXI的dispose方法主動釋放紋理,GPU內存占用從90兆優化到了30兆,效果很明顯。***我們從排行榜切換出來,銷毀好友的寵物數據,回收內存。

我們總結一下這次的分享內容,性能優化上面針對CPU、GPU內存主要有三個方面,***減少待機動畫的頻率。將待機動畫這種一直在播放的動畫減少頻率減少持續性壓力。第二點動作、素材文件做成按需加載,一方面減少內存的占用,第二方面可以提高訪問的速度。第三紋理和模型盡可能的復用,減少內存占用。另外使用臨時方案或者我們迫不得已使用臨時方案,也需要深究***方案,避免某個時點背負這些技術債務。閱讀源碼、與原作者交流能夠更好幫助我們。發布標準的制定,使用參照物對比。我們***測試階段的時候有找一些參照物的,比如說我們之前開發過普通的游戲,我們可以將這些普通游戲CPU、GPU占用,以及內存增量做一個對比。非常感謝大家,我的分享就到這里。

責任編輯:Jane 來源: 51CTO
相關推薦

2017-02-07 11:35:26

Android動畫蠟燭動畫

2013-05-28 15:35:47

html5多線程

2012-08-30 16:24:04

HTML5歐朋W3C

2015-12-07 10:00:13

HTML5Loading動畫

2015-10-08 08:48:44

HTML5canvas動畫

2014-07-04 09:52:57

HTML5

2011-07-19 13:07:26

iOS4 HTML5 動畫

2015-11-11 15:22:27

h5工具

2012-02-23 10:28:43

AppCanHTML5移動應用

2015-06-10 10:18:27

WebAPP開發技巧

2012-03-29 09:18:47

HTML5WEB

2013-01-24 10:26:04

HTML5HTML 5HTML5的未來

2012-11-07 09:43:58

IBMdw

2016-01-20 10:11:56

華麗CanvasHTML5

2014-07-22 10:58:33

HTML5jQuery

2015-01-13 11:19:19

2011-05-13 17:36:05

HTML

2013-10-21 15:24:49

html5游戲

2012-03-31 16:05:15

HTML5WEB

2012-02-23 14:24:53

傲游3HTML5
點贊
收藏

51CTO技術棧公眾號

国产在线视频91| 亚洲欧洲日本专区| 乱熟女高潮一区二区在线| 天堂成人在线视频| 性欧美精品高清| 日韩在线播放一区| 91视频啊啊啊| 在线观看欧美| 色呦呦国产精品| 蜜臀av.com| 日本午夜在线| 国产裸体歌舞团一区二区| 午夜精品理论片| 99自拍偷拍视频| 美国十次av导航亚洲入口| 欧美剧情电影在线观看完整版免费励志电影| 四虎4hu永久免费入口| 亚洲欧洲成人在线| 国产成人免费在线视频| 国产激情综合五月久久| 久久久久久国产精品视频| 精品视频日韩| 亚洲黄色在线看| 欧美日韩久久婷婷| 色综合一本到久久亚洲91| 亚洲自拍偷拍综合| 懂色av一区二区三区四区五区| 欧美午夜黄色| hitomi一区二区三区精品| 91精品视频大全| 亚洲av无码不卡| 国产欧美高清| 欧美激情一二三| 黑人操日本美女| 精品国产精品久久一区免费式| 亚洲成在人线av| 国产sm在线观看| 国产福利91精品一区二区| 色综合久久中文字幕综合网| 国精产品一区一区三区视频| 欧美78videosex性欧美| 亚洲人妖av一区二区| 亚洲精品国产精品国自产| 欧美日韩影视| wwwwww.欧美系列| 激情视频一区二区| 欧美一级淫片aaaaaa| 国产成人精品免费| 亚洲最大福利视频| av在线免费在线观看| 国内一区二区视频| 亚洲最大的网站| 亚洲av无码乱码国产麻豆| 国产激情91久久精品导航| 91夜夜揉人人捏人人添红杏| 国产毛片在线视频| 国产美女一区二区| 成人做爽爽免费视频| 国产精品老熟女视频一区二区| 裸体一区二区三区| 国产自产女人91一区在线观看| 亚洲天堂视频网| 狠狠色2019综合网| 91中文在线视频| 国内精品久久久久久久久久久| 国产精品一区二区三区99| 成人欧美一区二区三区在线观看| 亚洲AV无码国产精品午夜字幕| 粉嫩嫩av羞羞动漫久久久| 国产精品v欧美精品v日韩| 手机在线精品视频| 国产三级三级三级精品8ⅰ区| 日韩福利二区| av片在线观看网站| 亚洲自拍欧美精品| 国产淫片免费看| 日韩中文影院| 6080日韩午夜伦伦午夜伦| 免费黄色a级片| 日韩精品福利一区二区三区| 亚洲一级片在线看| 日本黄色录像视频| 精品91在线| 国产精品久久久久久久久男| 99久久精品无免国产免费| 丰满岳乱妇一区二区三区| 免费日韩av电影| 老司机午夜在线| 亚洲va天堂va国产va久| 能在线观看的av网站| 日韩欧美激情| 亚洲第一精品福利| 国产又粗又黄又猛| 红桃视频亚洲| 国产精品女人网站| 老牛影视av牛牛影视av| 国产亚洲欧美一级| 在线观看17c| 欧美精选视频一区二区| 欧美一区二区三区免费视频| 国产美女喷水视频| 亚洲蜜桃视频| 国产成人精品国内自产拍免费看| 国产区精品在线| 91麻豆免费视频| 特级西西人体www高清大胆| 亚洲精品国产精品国产| 欧美电影在线免费观看| 熟女少妇一区二区三区| 亚洲欧美伊人| 国产热re99久久6国产精品| 日韩永久免费视频| 亚洲人成网站在线| 97公开免费视频| 欧美a一欧美| 欧美人在线观看| 在线播放国产一区| 91碰在线视频| 日本一本中文字幕| 亚洲日本免费电影| 一区二区三欧美| 免费污污视频在线观看| www.性欧美| 国产精品国产三级国产专区51| 日本在线一区二区| 亚洲视频在线观看视频| 国产精品美女久久久久av爽| 懂色一区二区三区免费观看| 99久久久无码国产精品性色戒| 成人日韩在线| 亚洲精品国产精品国自产在线 | www久久久com| 亚洲欧洲日韩一区二区三区| 国产九九在线视频| 久久99久久人婷婷精品综合| 91精品国产777在线观看| 亚洲第一视频在线播放| 一区二区三区在线免费观看| 三级黄色片免费观看| 欧美r级在线| 欧美性猛交xxxx富婆| 亚洲制服丝袜在线播放| 国产字幕视频一区二区| 亚洲a成v人在线观看| av一区在线观看| 欧美中文字幕一二三区视频| 亚洲午夜久久久久久久国产| 久久综合影音| 欧美资源一区| 成人在线中文| 日韩中文字幕网| 97人妻精品一区二区三区视频| 国产精品全国免费观看高清| 日本人69视频| 一二三区不卡| 成人午夜电影免费在线观看| 欧美xxxx少妇| 亚洲高清久久久久久| 国产无码精品视频| 99re成人在线| 亚洲 中文字幕 日韩 无码| 精品高清久久| 成人激情在线播放| 日本大胆在线观看| 亚洲成人在线视频播放| caoporn国产| 国产精品亲子乱子伦xxxx裸| 久久国产激情视频| 影音先锋日韩在线| 国产超碰91| 亚洲一二三四| 色视频www在线播放国产成人| 国产女主播福利| 亚洲成a人v欧美综合天堂下载 | 日本高清视频一区| 国产在线观看免费| 69堂亚洲精品首页| 日韩xxx高潮hd| 国产婷婷色一区二区三区| 午夜剧场在线免费观看| 狠狠综合久久| 日韩在线国产| 亚洲国产欧美在线观看| 91a在线视频| aaa在线免费观看| 日韩一级视频免费观看在线| 日韩不卡视频在线| 国产精品第四页| 白嫩情侣偷拍呻吟刺激| 日韩成人伦理电影在线观看| 特大黑人娇小亚洲女mp4| 四虎5151久久欧美毛片| 国产精品视频在线观看| 丁香花电影在线观看完整版 | 91成人在线免费视频| 国产一区二区h| heyzo国产| 亚洲色图欧美| 日韩精品一区二区三区色偷偷| 久久伊人影院| 国产成人一区二| 黄色在线看片| 神马久久久久久| 日韩三级电影网| 日韩一区二区高清| 亚洲无码精品国产| 五月天中文字幕一区二区| 久久一级免费视频| 99视频在线观看一区三区| 天天干天天玩天天操| 午夜一区不卡| 国内少妇毛片视频| 欧美oldwomenvideos| 久久国产精品一区二区三区四区| 高清精品久久| 国产欧美最新羞羞视频在线观看| 婷婷六月国产精品久久不卡| 欧美黑人巨大xxx极品| 1pondo在线播放免费| 亚洲国产精品va在线看黑人动漫 | 日本三级午夜理伦三级三| 国产精品二三区| 一级肉体全黄裸片| 久久亚洲精精品中文字幕早川悠里| av天堂一区二区| 国产一区二区福利视频| 久久久久久久久久一区| 日本不卡一区二区三区| 国产熟女高潮视频| 一区二区日韩免费看| 男女激情免费视频| 欧美~级网站不卡| 成人在线免费观看网址| 国产精品99一区二区三区| 亚洲精品国产精品国自产| 精品一级毛片| 亚洲精品一区二区三区四区五区| 国产精选一区| 欧美日韩精品久久| 国产a久久精品一区二区三区| 久久爱av电影| 欧美做受69| 久久亚洲午夜电影| 亚洲三级性片| 日本不卡在线观看| 国产成人精品免费视| 蜜桃狠狠色伊人亚洲综合网站| 日韩一级电影| 欧美精品二区三区四区免费看视频| 日韩av中文字幕一区| 精品视频在线观看| 性欧美lx╳lx╳| 欧美一区二视频在线免费观看| 一区二区三区韩国免费中文网站| 欧美日韩一区二区视频在线| 精品国产一级毛片| 日韩在线第一区| 国产精品久久观看| 日韩在线视频在线| 91久久午夜| 国产淫片av片久久久久久| 免费看精品久久片| 色www免费视频| 国产成人高清在线| a天堂视频在线观看| 久久久国产精品午夜一区ai换脸| 少妇无套高潮一二三区| 亚洲日本电影在线| 国产网友自拍视频| 在线视频综合导航| 97视频免费在线| 精品国产乱码久久久久久久| 日漫免费在线观看网站| 曰本色欧美视频在线| av香蕉成人| 7777免费精品视频| 久久久久久久性潮| 亚洲自拍偷拍第一页| 另类春色校园亚洲| 小说区图片区图片区另类灬| 综合在线一区| 69堂免费视频| 狠狠色丁香久久婷婷综| 无码一区二区精品| 中文字幕制服丝袜成人av| 国产亚洲欧美精品久久久www | 在线视频1卡二卡三卡| 日韩欧美亚洲一区二区| 亚洲日本在线播放| 久久久国产视频91| 午夜激情在线播放| 成人免费网站在线| 亚洲警察之高压线| 亚洲成人动漫在线| 久久激情久久| 人妻 丝袜美腿 中文字幕| 久久精品网站免费观看| 久久久久99精品成人片试看| 色av成人天堂桃色av| 国产成年妇视频| 亚洲欧美在线x视频| 中文国产字幕在线观看| 国产精品久久97| 国内自拍欧美| 波多野结衣激情| 日本伊人精品一区二区三区观看方式| 绯色av蜜臀vs少妇| 国产精品久久久久一区| 中文字幕精品三级久久久 | 日本欧美一级片| 一区二区三区四区高清视频 | 自拍视频在线网| 欧美亚洲视频在线观看| 视频在线一区| 中文字幕欧美人与畜| 水野朝阳av一区二区三区| 欧美熟妇精品一区二区蜜桃视频| 亚洲欧美日韩久久精品| 久久久999久久久| 亚洲精品自拍视频| 牛牛精品视频在线| 91免费观看网站| 久久亚洲影视| 最新中文字幕免费视频| 91亚洲男人天堂| 黄色小说在线观看视频| 欧美一区二区三区的| 日本美女高清在线观看免费| 国产精品久久久久久久久久久久久 | 1卡2卡3卡精品视频| 欧美黄色大片在线观看| 另类小说第一页| 国产亚洲欧美日韩俺去了| 久久久久久久极品| 亚洲国内高清视频| 国产在线88av| 国产在线一区二区三区播放| 欧美午夜不卡| 欧美一级大片免费看| 亚洲综合色视频| 亚洲欧美另类视频| 欧美人成在线视频| 91精品短视频| 青青青免费在线| 99在线精品免费| 欧美特黄aaaaaa| 亚洲品质视频自拍网| 亚洲成人激情社区| 日韩资源av在线| 蜜臀av性久久久久蜜臀aⅴ| 亚洲第一视频区| 欧美乱熟臀69xxxxxx| av片在线观看网站| 国产伦精品一区二区三| 亚洲国产激情| 手机av免费看| 在线观看国产91| 国产在线观看a视频| 91中文字精品一区二区| 日韩视频中文| av黄色在线免费观看| 欧美日韩一区二区三区高清| 日韩毛片久久久| 91成人伦理在线电影| 狠狠色丁香久久综合频道| 黄色性生活一级片| 在线免费观看日韩欧美| 免费在线毛片网站| 99在线免费观看视频| av不卡免费看| 人成免费在线视频| 日韩网站在线看片你懂的| 日韩脚交footjobhd| 色一情一区二区三区四区 | 丝袜美腿美女被狂躁在线观看| 国产在线不卡精品| 激情欧美一区二区三区| 日本激情小视频| 在线成人免费视频| √天堂8资源中文在线| 欧美中日韩免费视频| 国产酒店精品激情| 日韩不卡视频在线| 俺也去精品视频在线观看| 国产精品视频3p| 污色网站在线观看| 亚洲午夜免费电影| 91精彩视频在线播放| 国产欧美日韩视频一区二区三区| 丝袜亚洲另类欧美综合| 亚洲av鲁丝一区二区三区| 亚洲精品视频在线播放| 国产精品日韩精品在线播放| 日韩在线综合网| 亚洲欧美日韩国产手机在线 | 岛国精品一区| 深夜黄色小视频| 欧美日韩国产在线播放| 日本在线观看www| 精品综合在线|