Unity運動視覺化(一)

2021-10-21 21:37:50 字數 2389 閱讀 5817

本學期的綜合課程設計,要求進行運動視覺化或者風格遷移二選一,其實這倆都挺有意思的,尤其是後者,聽說之前關閉了很久的crypko又有跡象了,但是我又想把這兩者和實際的遊戲結合起來,後者感覺更難一點,所以就選擇了前者

採用unity對運動資料進行視覺化

例子:

關於bvh格式bv**件格式解析

vrm文件不過我感覺這個文件跟沒有似的

高階的話我想了乙個:人形態和車形態的粒子,人形態用動作識別進行操縱,然後特定動作切換車形態(比如拿起手機),然後用手機當方向盤(陀螺儀),控制車的動作,感覺應該挺有沉浸感,不過我應該是做不出來了

首先嘗試把小綠人變成粒子人

先在關節處新增個個粒子效果看看

然後關閉target上的skinmeshrenderer元件,再給全身都新增上粒子效果,適當調整粒子的引數

變成粒子人之後

但是現在的粒子人是在執行之後新增粒子元件的,而且edit模式下target只有乙個根節點,沒有骨骼,所以接下來要把這些粒子變成動態生成的骨骼

執行posetransfer場景

首先綠色人物是跟隨白色人物做動作

檢視有關按鈕的元件

runtimebvhloader這個指令碼

可以得知是這一段**載入bvh資料並生成了gameobject

根據這一段也可以看出,生成的新模型m_dstsource屬性會繫結為m_context

定位到source對應的指令碼,可以發現update裡會先獲取到source的動作資料,再使用humanposehandler類對模型動作進行更新

然後根據檔名bvbone以及其中內容,可知這個類是用來給讀取的bvh資料生成骨骼的,不過暫時沒什麼用,我們得對target進行修改

然後看target上面的humanbuildertest,裡面的add方法用來新增骨骼

然後嘗試動態生成粒子,首先在場景中新增乙個帶有粒子元件的物體

然後在skeletonbuilder類裡面裡寫乙個方法

public

void setparticle (

)//取消skinnedmeshrenderer

m_root.

getcomponent

<

skinnedmeshrenderer

>()

.enabled =

false

;}

最後在buildskeleton裡面呼叫即可

private

void buildskeleton (

transform root)

finally

}

這樣就可以在一開始產生乙個tpose的粒子人了,匯入運動資料後也會同步運動

之後再研究怎麼樣玩出花來

matplotlib視覺化(一)

關於figure 乙個figure代表乙個視窗,可以有多個figure,乙個figure下可有多個圖形 1.多個視窗 import numpy as np import matplotlib.pyplot as plt x np.linspace 3,3,50 y1 2 x 1 y2 x 2 plt...

視覺化 資料視覺化三節課之一 視覺化的意義

推測未來將要發生什麼的最好方式,就是記住過去曾經發生了什麼。喬治 薩維爾 金錢永不眠,屠夫問候各位早安。近期因為工作需要,屠夫梳理了自己在投資和工作實踐中對 資料視覺化 的經驗和思考。我將用三節課講述 資料視覺化 的話題,希望給你一些啟發。有句話叫 一圖勝千言 對於看似複雜難懂的資料而言,尤其如是。...

資料視覺化 什麼是資料視覺化

資料對應的英文單詞是data,從資訊獲取的角度看,資料是對目標觀察和記錄的結果,是現實世界中的時間 地點 事件 其他物件或概念的描述。不同學者對資料的作用也給出不同的定義,大致分為以下3類 視覺化對應的兩個英文單詞 visualize和visualization。visualize是動詞,描述 生成...