從零開始做VR——從產(chǎn)品需求到技術(shù)實(shí)現(xiàn)

前不久卷拘,我負(fù)責(zé)了易班獅子聯(lián)盟的“虛擬現(xiàn)實(shí)在教育領(lǐng)域應(yīng)用”的課題研究看蚜。雖然是公司內(nèi)部自發(fā)的實(shí)驗(yàn)性項(xiàng)目,但能借這個(gè)機(jī)會(huì)把目前火熱的VR從頭到尾研究一把也是挺過癮的匈仗。最后,我們小組做了個(gè)產(chǎn)品原型和教程逢慌,一方面是為了探索VR技術(shù)與校園場(chǎng)景的結(jié)合更多可能悠轩,另外一方面希望也是通過本項(xiàng)目幫助大家快速的了解目前的VR產(chǎn)品是如何制作的。此項(xiàng)目主要是通過Unity 3D 和Google Cardboard 來實(shí)現(xiàn)攻泼。目前火架,所有資料已發(fā)布到github上面,歡迎對(duì)VR有興趣的童鞋下載: https://github.com/gold3bear/learn_vr
另外坠韩,還要感謝我們課題組的小伙伴距潘,盟主郭致彥和劉成斌炼列、趙振亮只搁、田廣志等老師。

前期調(diào)研(Marketing Research)

目前俭尖,網(wǎng)上能獲得的二手資料很多氢惋。關(guān)于VR市場(chǎng)分析大多報(bào)告都持樂觀的態(tài)度洞翩,但這些更像是一種對(duì)潮流的追趕。其實(shí)無論鞋子多么潮焰望,合不合腳只有自己知道骚亿。對(duì)于調(diào)研我就不展開了。

一熊赖、產(chǎn)品定義(Product Defining)

這個(gè)課題是一個(gè)典型的先定義技術(shù)再尋找需求的項(xiàng)目来屠。其背后本質(zhì)就是為技術(shù)合適的使用場(chǎng)景。因此震鹉,在產(chǎn)品設(shè)計(jì)階段我們使用了大量的“頭腦風(fēng)暴”來收集創(chuàng)意俱笛。經(jīng)過反復(fù)討論后,我們將產(chǎn)品目標(biāo)初步設(shè)定為:為即將步入的校園的新生打造一款能夠解決實(shí)際需求的VR校園產(chǎn)品传趾。

1.1 畫像 (Persona)

為便于問題探索迎膜,我們制作了三類用戶畫像:

準(zhǔn)大學(xué)生 王曉麗
心疼女兒的父親 王老伯
忙碌的輔導(dǎo)員 張老師

1.2 價(jià)值主張(Value Proposition)

我們能不能提出一個(gè)合理的價(jià)值主張來滿足這三類人群的需求呢?


滿足三者需求

經(jīng)過分析和討論浆兰,我們最終提出的價(jià)值主張如下:

本產(chǎn)品讓新生在家就能身臨其境地完成預(yù)報(bào)到

  • 通過趣味游戲的方式磕仅,讓學(xué)生了解校園環(huán)境
  • 在家熟悉校園環(huán)境和報(bào)到流程
  • 確保學(xué)生的安全:避免來校當(dāng)天走失和迷路的情況
  • 提升報(bào)到的效率,減少老師的工作量
使用場(chǎng)景

使用場(chǎng)景舉例:

  • 在收到入取通知書后簸呈,新生用手機(jī)掃一掃通知書上的二維碼榕订,就可以下載到迎新的APP并安裝;
  • 學(xué)生將通知書中附帶的卡紙制作成VR眼鏡蜕便;
  • 把裝好APP的手機(jī)裝入眼鏡盒即可身臨其境地瀏覽校園環(huán)境卸亮;
  • 通過做任務(wù)和講解,能夠全方位了解關(guān)于學(xué)校和報(bào)道的情況和問題玩裙。
  • 最終兼贸,當(dāng)新生真正到學(xué)校的時(shí)候,其實(shí)已經(jīng)對(duì)自己學(xué)校有較為熟悉的了解吃溅。

1.3 功能規(guī)劃(Feature Defining)

針對(duì)所提的價(jià)值主張和主要用戶角色溶诞,我們提了如下幾個(gè)用戶故事:

  • P0 識(shí)別校園中的建筑物:作為一名新生,我需要在校園場(chǎng)景中了解到每個(gè)建筑物的信息决侈,以便我在家就能知道學(xué)校的環(huán)境螺垢。
  • P1 校園中移動(dòng)穿行:作為一名新生,我需要在校園常用道路上走一走赖歌,以便于熟悉學(xué)校的地理環(huán)境枉圃。
  • P3 導(dǎo)覽解說:作為一名用戶,我希望能聽到生動(dòng)講解庐冯,這樣我就可以騰出雙眼觀察周遭孽亲。
  • P4 做報(bào)到任務(wù)獲獎(jiǎng)勵(lì):作為一名新生,我需要做點(diǎn)任務(wù)展父,例如返劲,從機(jī)場(chǎng)/火車站到學(xué)校的任務(wù)玲昧,去宿舍報(bào)到的任務(wù),這樣我可以提前了解到去學(xué)校時(shí)需要的注意的問題篮绿。

而** 識(shí)別建筑物是最基礎(chǔ)和最核心的功能**孵延,因此其優(yōu)先級(jí)最高,也是本期要完成的目標(biāo)亲配,其它功能后續(xù)進(jìn)行迭代尘应。

二、 技術(shù)選型(Technical Proposal )

目前許多廠商都推出了自己的VR解決方案吼虎,綜合考慮制作成本和學(xué)習(xí)難度之后菩收,我們選擇了性價(jià)比最高的 Google Cardboard 的方案。

Google Cardboard

Cardboard的VR眼鏡說白了紙板盒+手機(jī)鲸睛,成本低廉娜饵,制作簡(jiǎn)單。
Google提供的了相關(guān)的圖紙和文檔(如無法訪問谷歌官辈,請(qǐng)自行解決)箱舞。大家可以自行用紙板制作,也可以從某寶購買拳亿,售價(jià)從幾元到數(shù)十元不等晴股。

目前,基于谷歌的VR方案肺魁,內(nèi)容制作有兩種方式:攝影合成电湘,程序開發(fā)。下面我們一一介紹一下:

1. 通過拍攝合成

它是指拼接多臺(tái)攝影設(shè)備進(jìn)行拍攝鹅经,在拍攝完成后合成3D的全景的視頻寂呛。目前,歐美和島國小電影已經(jīng)率先嘗試瘾晃。


某片拍攝現(xiàn)場(chǎng)

從上圖可以看出贷痪,這對(duì)拍攝和環(huán)境的要求極高。硬件成本也在幾萬到上百萬不等蹦误,錄制的后期合成也要花費(fèi)多人力成本劫拢。如果買不起那么多專業(yè)攝影設(shè)備,也可以考慮使用3D打印的支架把多臺(tái)GoPro拼接在一起强胰。一個(gè)GoPro 相機(jī)在4000元左右舱沧。



谷歌官方推薦的Jump是由16個(gè)GoPro 4組成的360°圓盤。

2. 通過程序開發(fā)

如果沒有錢投入硬件偶洋,那就只能玩軟件了熟吏。Google提供了基于Android的Daydream SDK和能夠兼容Android和iOS的Cardboard SDK



Daydream 是谷歌新發(fā)布的VR方案,從硬件上看Daydream相比于Cardboard就是多了個(gè)手柄和舒適度較高的頭戴眼鏡涡真。按照目前情況分俯,頭套和手柄售價(jià)在500多元肾筐。Daydream要求是安卓哆料,目前只有谷歌親兒子NEXUS的個(gè)別機(jī)型能享受缸剪!

而Cardboard SDK 實(shí)際上是Unity3D的素材庫,提供了現(xiàn)成的用于VR制作相關(guān)素材和腳本东亦。因此這對(duì)熟悉Unity3D的開發(fā)者門檻較低杏节。而且Unity3D的腳本主要使用了簡(jiǎn)化的C#和JavaScript,可針對(duì)Android和IOS分別導(dǎo)出APP典阵。因此奋渔,對(duì)于有編程經(jīng)驗(yàn)的開發(fā)者,也是非常簡(jiǎn)單便捷的壮啊。

綜合考慮嫉鲸,在原型制作階段我們可以使用Cardboard進(jìn)行低成本簡(jiǎn)單的虛擬場(chǎng)景制作,等Daydream成熟之后可以考慮再遷移以獲得更好的體驗(yàn)歹啼。而后期條件寬裕的時(shí)候可以使用攝影的方式進(jìn)行制作玄渗。

三、 技術(shù)實(shí)施(Developing)

根據(jù)前面的討論和分析狸眼,我們需要使用Cardboard實(shí)現(xiàn)在查看建筑物建筑物介紹的產(chǎn)品原型藤树。也就是說,當(dāng)用戶看到這個(gè)建筑的時(shí)候拓萌,我們能告訴他該建筑的名字岁钓。可以在Github上查看本項(xiàng)目代碼: https://github.com/gold3bear/learn_vr/tree/master/VR_school

效果

3.1 準(zhǔn)備工作

Google對(duì)Cardboard SDK 的有充分詳細(xì)的文檔 微王。在正式動(dòng)工前屡限,我們需要做好以下準(zhǔn)備:

  • 下載最新的版本的Unity 3D。安裝時(shí)候需要注意選擇支持安卓導(dǎo)出或者iOS(主要看你針對(duì)的平臺(tái)) 如何下載和安裝可以看這篇文章
  • 下載 Cardboard SDK for Unity炕倘,原版下載地址囚霸。因?yàn)椋募^大從外網(wǎng)下載到本地要花較長時(shí)間激才。幸運(yùn)的是我已經(jīng)把整個(gè)包上傳到百度云了下載地址拓型。
  • 下載安裝最新版的 X-Code(針對(duì)iOS開發(fā)),如果你是Android那就下載Android的
    SDK瘸恼。

大家可以發(fā)現(xiàn)不管是Android還是iOS劣挫,都是用相同的Cardboard SDK for Unity,因此在基本開發(fā)流程上沒有太大區(qū)別东帅。本文接下去只以iOS為例压固。

3.2 開動(dòng)

  1. 打開Unity 3D創(chuàng)建一個(gè)名為VR_School的項(xiàng)目,并且確保選擇的項(xiàng)目類型是3D靠闭;


    創(chuàng)建項(xiàng)目
  2. 導(dǎo)入Google Cardboard SDK帐我,選擇 GoogleVRForUnity.unitypackage后點(diǎn)擊import


    導(dǎo)入Cardboard SDK

    導(dǎo)入Cardboard SDK
  3. 創(chuàng)建在Assets中創(chuàng)建一個(gè)新的文件夾 MyAssets坎炼。這個(gè)文件夾主要用來放置我們自定義的素材


    自定義素材
  4. 在MyAssets中創(chuàng)建Scene文件夾,用來存放我們的場(chǎng)景文件拦键。點(diǎn)擊保存按鈕(command+s)谣光,將文件當(dāng)前文件存儲(chǔ),命名為stage芬为。


3.3 創(chuàng)建物體

  1. 創(chuàng)建地面

    • 右鍵點(diǎn)擊3D Object萄金,選擇Plane。


    • 選擇平面媚朦,將其命名為 Ground氧敢,Transform中的參數(shù)Scale 設(shè)置為x=10,y=0,z=10


  2. 創(chuàng)建建筑:

    • 建筑可以從3dsMAX、SketchUp或者M(jìn)aya導(dǎo)入询张。為了簡(jiǎn)化操作我們用Unity自帶的長方體代替孙乖。點(diǎn)擊右鍵選擇3D Object,選擇Cube:


    • 設(shè)置Cube的參數(shù):


      • 名稱:教學(xué)樓
      • Position:x=0,y=1,z=0;
      • Scale: x=1,y=2,z=1;
    • 將“教學(xué)樓”復(fù)制出3個(gè)出來份氧,調(diào)整不同的位置唯袄、高度和大小以示區(qū)分,注意調(diào)整Y坐標(biāo)高度使底部貼地


    • 分別命名為體育館半火、宿舍樓越妈、食堂


  3. 添加素材
    我們現(xiàn)在要給場(chǎng)景中的物體附上材質(zhì),讓地面钮糖、建筑物有不同的顏色:

    • 在“MyAssets”中創(chuàng)建名為“Materials”文件夾:


    • 創(chuàng)建用于地面的一個(gè)材質(zhì)球梅掠,命名為GroundMaterial,并且選擇好顏色店归;


    • 創(chuàng)建用于建筑物的4個(gè)材質(zhì)球阎抒,分別命名為:BuildingMaterial、BuildingMaterial1消痛、BuildingMaterial2且叁、BuildingMaterial3,配上不同的顏色來區(qū)分秩伞;


    • 分別將這5個(gè)材質(zhì)拖動(dòng)到對(duì)應(yīng)的物體上面


3.3 設(shè)置相機(jī)

  1. 我們這一步是需要將相機(jī)放這4個(gè)建筑物的中間逞带。選中相機(jī),你可以在小窗口上看到相機(jī)視角纱新。相機(jī)的Position 參數(shù)可以設(shè)置為:x=0,y=1,z=0;這樣相機(jī)就移動(dòng)到4個(gè)物體的中間了展氓。


  2. 將相機(jī)變成VR的雙攝像頭相機(jī)。操作很簡(jiǎn)單脸爱,打開Assets下的GoogleVR下面的遇汞,拖動(dòng)到heriach面板中就可以了。


    點(diǎn)擊播放按鈕,我們就可以看到VR效果了空入。平移(option+鼠標(biāo)滑動(dòng))繁扎,傾斜(control+鼠標(biāo)滑動(dòng))


  3. 為了方面顯示冷尉,我們給相機(jī)添上焦點(diǎn)聚至。將"Assets/GoogleVR/Prefabs/UI"的GvrReticle拖動(dòng)到攝像機(jī)中宜雀。在次點(diǎn)擊play按鈕,可以看到視頻中心有一個(gè)焦點(diǎn)轨淌。


3.4 編寫游戲腳本

現(xiàn)在迂烁,指示建筑物顯示名稱的功能還沒有實(shí)現(xiàn)看尼。需要我們用C#編寫點(diǎn)腳本递鹉,不太難,照著做就好了:

  1. 拖入文件夾Google/Scripts/UI中的GvrGaze腳本至相機(jī),這樣相機(jī)就擁有和物體交互的能力了藏斩。是不是很簡(jiǎn)單?


  2. 我們還需要為建筑物添加點(diǎn)代碼躏结,讓相機(jī)照射物體上后物體能夠有所反應(yīng):

  • 請(qǐng)?jiān)贛yAssets下面創(chuàng)建一個(gè)Scripts文件夾,如圖:


  • 在Scripts創(chuàng)建一個(gè)名為Building的C#腳本狰域。


  • 雙擊點(diǎn)開后媳拴,將下面的代碼全部覆蓋過去:

        using UnityEngine;
        using System.Collections;
        //除了繼承了Unity自帶的MonoBehaviour外,還繼承了GoogleVR的IGvrGazeResponder的接口類兆览,用于實(shí)現(xiàn)物體對(duì)相機(jī)照射后的反饋動(dòng)作屈溉。
         public class Building : MonoBehaviour,IGvrGazeResponder {
         private Color startColor;
         private Color newColor;
         void Start () {
             //獲取初始的顏色
             startColor = GetComponent<Renderer>().material.color;
             //模擬器的console打印顏色信息;
             Debug.Log(startColor);
         }
    
         //當(dāng)用戶注視物體時(shí)的主要業(yè)務(wù)邏輯
         public void SetGazedAt(bool gazedAt) {
             if (gazedAt) {
                 TriggerColorToGreen (true); 
                 TellMyName (true);
             } else {
                 TriggerColorToGreen (false);
                 TellMyName (false);
             }
         }
    
         //顏色改變觸發(fā)器抬探,true 變綠色子巾,false 恢復(fù)初始值
         public void TriggerColorToGreen (bool triggered) {
             GetComponent<Renderer> ().material.color = triggered ? Color.green : startColor;
         }
    
         //說出該對(duì)象的名稱
         public void TellMyName (bool asked) {
             if (asked) {
                 Debug.Log (name);
             } else {
                 Debug.Log ("don‘t tell you");
             }
         }
        #region 這里實(shí)現(xiàn)IGvrGazeResponder要求的方法
    
         //焦點(diǎn)注視物體的時(shí)候執(zhí)行
         public void OnGazeEnter(){
             SetGazedAt(true);
             Debug.Log (name);
         }
         //焦點(diǎn)已開物體的時(shí)候執(zhí)行
         public void OnGazeExit(){
             SetGazedAt (false);
             Debug.Log ("out");
         }
         //點(diǎn)擊眼鏡盒的觸發(fā)器,也就是觸摸屏幕的時(shí)候
         public void OnGazeTrigger(){
             Debug.Log ("觸發(fā)");
         }
        #endregion
        }
    
  • 將Building腳本拖給建筑物:


  • 點(diǎn)擊Play按鈕就可以看到效果了小压,大家可以看到焦點(diǎn)對(duì)準(zhǔn)的物體都會(huì)變成綠色线梗,焦點(diǎn)移開后又變成原來的顏色;


  1. 大功即將告成怠益,現(xiàn)在要做的就是把所看到的物體名字顯示在屏幕上
  • 創(chuàng)建GUI文字:將其命名為Building Name仪搔,用來呈現(xiàn)建筑物的名稱。



    調(diào)整合適的距離蜻牢;

  • 創(chuàng)建一個(gè)空的游戲?qū)ο罂具郑麨镚ameController,設(shè)置Tag為GameController,這樣Building的代碼中就能找到它了抢呆。



  • 創(chuàng)建GameController腳本煮嫌,代碼如下:

         using UnityEngine;
         using UnityEngine.UI;//引入GUI
         using System.Collections;
         public class GameController : MonoBehaviour {
             // 顯示文字
             public Text buildingName;
             //畫布上顯示文字
             public void showBuildingName(string name){
                 buildingName.text =  name;
             }
         }
    
  • 拖動(dòng)GameController腳本給GameController對(duì)象:


  • 調(diào)整Building代碼與GameController交互使建筑物能改變畫布的文字,具體代碼可以查看gitlab

  • 添加一個(gè)私有屬性 gameController

      private GameController gameController;
    
    
  • 調(diào)整Start的代碼镀娶,添加通過Tag找到游戲中的GameController立膛,并且創(chuàng)建實(shí)例。

     //獲取Game Controller對(duì)象
     GameObject gameControllerObject = GameObject.FindWithTag("GameController");
     if (gameControllerObject != null) {
       gameController = gameControllerObject.GetComponent<GameController>();
     } else {
       Debug.Log("Cannot find 'GameController' script");
     }
    
    
  • 調(diào)整TellMyName的方法,調(diào)用將本建筑物的名字傳給gameController對(duì)象宝泵,讓它去修改畫布好啰。

     //說出本對(duì)象的名稱
     public void TellMyName (bool asked) {
       if (asked) {
         gameController.showBuildingName (this.name);
    
       } else {
         Debug.Log ("don‘t tell you");
       }
     }
    
    
  • 點(diǎn)擊play按鈕,查看效果

3.5 在iPhone上體驗(yàn)

做完這一步就大功告成了儿奶。在第一次導(dǎo)出到手機(jī)時(shí)要做以下這些操作:

  1. 打開File菜單下的 Building Setting

  2. 選擇iOS框往,點(diǎn)擊Switch Platform按鈕。

  3. 點(diǎn)擊Player Settings闯捎,在屏幕右邊的Inspector 選擇 Resolution and Presentation 一欄椰弊,將Default Orientation設(shè)置為Auto Rotation,將Allowed Orientations for Auto Rotation的其他√都去掉只保留Landscape Left;


  4. 點(diǎn)擊最下方的Other Setting瓤鼻,找到Bundle Identifier 將它設(shè)置成你的蘋果開發(fā)者認(rèn)證的賬號(hào)的ID秉版;如果沒有的話,需要到蘋果開發(fā)者上去設(shè)置茬祷。您可查看Xcode如何在真機(jī)上調(diào)試的一些資料清焕。


  5. 插上手機(jī) 點(diǎn)擊Build and Run ,在過程中Unity會(huì)調(diào)用Xcode請(qǐng)點(diǎn)擊確定祭犯。耐心等待就好了秸妥。編譯完成后,就能夠在手機(jī)上體驗(yàn)了沃粗。

四粥惧、總結(jié)

總的來說使用Cardboard的來制作VR是較為簡(jiǎn)單和低成本的。雖然文章結(jié)束了最盅,但我們還有許多細(xì)節(jié)還沒有深入的探討突雪。例如,前期的原型設(shè)計(jì)或者交互設(shè)計(jì)檩禾,畫線框圖已經(jīng)沒用了挂签,而比較合適的原型工具應(yīng)該是sketch up、3ds max 一類的三維軟件盼产,而具體的交互方式業(yè)內(nèi)也沒有標(biāo)準(zhǔn)饵婆。隨著VR技術(shù)的不斷發(fā)展,更多優(yōu)質(zhì)的解決方案會(huì)不斷涌現(xiàn)出來戏售,因此侨核,這是一個(gè)需要持續(xù)學(xué)習(xí)和研究的過程。最后灌灾,希望這篇文章能夠幫助到大家搓译。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市锋喜,隨后出現(xiàn)的幾起案子些己,更是在濱河造成了極大的恐慌豌鸡,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件段标,死亡現(xiàn)場(chǎng)離奇詭異涯冠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)逼庞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門蛇更,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赛糟,你說我怎么就攤上這事派任。” “怎么了璧南?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵掌逛,是天一觀的道長。 經(jīng)常有香客問我穆咐,道長颤诀,這世上最難降的妖魔是什么字旭? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任对湃,我火速辦了婚禮,結(jié)果婚禮上遗淳,老公的妹妹穿的比我還像新娘拍柒。我一直安慰自己,他們只是感情好屈暗,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布拆讯。 她就那樣靜靜地躺著,像睡著了一般养叛。 火紅的嫁衣襯著肌膚如雪种呐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天弃甥,我揣著相機(jī)與錄音爽室,去河邊找鬼。 笑死淆攻,一個(gè)胖子當(dāng)著我的面吹牛阔墩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓶珊,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼啸箫,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了伞芹?” 一聲冷哼從身側(cè)響起忘苛,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后扎唾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜀肘,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年稽屏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扮宠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狐榔,死狀恐怖坛增,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薄腻,我是刑警寧澤收捣,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站庵楷,受9級(jí)特大地震影響罢艾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尽纽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一咐蚯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弄贿,春花似錦春锋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至危尿,卻和暖如春呐萌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谊娇。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國打工肺孤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人邮绿。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓渠旁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親船逮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子顾腊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • This article is a record of my journey to learn Game Deve...
    蔡子聰閱讀 3,762評(píng)論 0 9
  • 一、VR定義挖胃、特征以及發(fā)展歷史1.1杂靶、VR(虛擬現(xiàn)實(shí))的定義虛擬現(xiàn)實(shí)即“Virtual Reality”梆惯,簡(jiǎn)稱VR...
    秦時(shí)明月V閱讀 3,826評(píng)論 13 60
  • 關(guān)閉了朋友圈垛吗,是不是時(shí)間就成了有效率的天使了? 感慨一通烁登,罵一通周邊死豬不怕開水燙的辦公環(huán)境怯屉,是不是自己就變得“眾...
    居高聲自遠(yuǎn)閱讀 210評(píng)論 0 0
  • 詩/藍(lán)蜂 今朝我向你徒步前來。 今朝我要穿越此座城饵沧。 我尋找自已的幸福锨络。 你時(shí)刻守住命運(yùn)免受侵害。 我狼牺,免疫任何時(shí)...
    隱山_b80d閱讀 175評(píng)論 0 0
  • 今天是钥,感冒又愈加嚴(yán)重了掠归,喉嚨嘶啞到無力說話,鼻涕流個(gè)不停悄泥,紙巾擦上去都碰的生疼虏冻,一整天我都在渾渾噩噩中度過,沒有工...
    氣質(zhì)女人閱讀 440評(píng)論 0 0