小松鼠嚇了一跳,有了魔法眼鏡後,這世界看起來完全不一樣了

顯示具有 影片 標籤的文章。 顯示所有文章
顯示具有 影片 標籤的文章。 顯示所有文章

2014年12月19日 星期五

Leap motion 擴增實境


利用 OpenCV 校正攝影機以及 Leap Motion Sensor 的位置,再利用 Three.js 來達成擴增實境的效果。

這是試玩的結果(還是跟 IPython notebook 一起探索),所以並沒有以最佳效果為目標。實際上 leap motion sensor 可以放在比較好的位置。

稍早拿來和 google hangout api 配合的效果。

原理上不難,只是中間要解決一堆技術上的小麻煩。

2014年10月15日 星期三

Python 超級新手教學




暑假錄的 Python 入門教學影片,對象是程式語言的超級新手。所以進度非常的慢。

一些細節會省略,等著有人問的時候再回答。

但拍出來後,一直覺得效果還可以再改進,所以一直沒放上來。

但現在想想,還是先放上再說。內容還會陸續增加,短期目標是寫出一個可玩的遊戲。
有任何可以利用的地方,歡迎自行取用。



2013年2月27日 星期三

Python 娘首次亮相

 

這是幫 PyCon Taiwan 設計的 Python 娘。
使用的軟體都是 python 相關的。
最主要的工具是 Blender,裡面內建有 python 3.3。配合 Freestyle (也有大量 python script),可以設定想要畫出輪廓線條參數。
人物是身體是用 Makehuman 製作。 Makehuman 有大量 Python 程式碼,新的版本甚至完全用 Python 寫成。 Makehuman 原本是用來設計寫實的人體模型,而非漫畫化的。我弄了一個 manga skin 外加用 python 弄了一個 manga target。第一次的草稿如下:
頭髮原先就設定為黑色,不過燈光打太強了,所以變成桃紅色。
這個模型其實還挺恐怖的,但經由 blender smooth 之後,成果就如上圖。
因為又多了解了一點 makehuman 和 blender 所以又製作了第二版本的 manga target。
這次稍微沒有那麼恐怖,如果材質什麼都不修改的話,有點像是這樣:
加上一點漫畫材質還有修改之後,變成
還是不太好,由於時間的關係,放棄直接用 makehuman 生成的臉,改用手刻,參考了影片中後面列出的一些 MMD 模型(有很多 MMD 導入 blender 的 python script),最後的成果是這樣,
在 Blender 裡面看起來是這樣
影片中用到的 Python 程式碼,是去年PyCon Taiwan 的貪吃蛇樂透。
還有用到的軟體是 OpenShot 及 gimp,有興趣的朋友,也可以看看他們和 Python 的關聯。
最後附上影片最後的 Credit

最後的最後, PyCon Taiwan 2013 目前徵求演講中,請踴躍參加。

2013年1月5日 星期六

不用後製的姨夫 Style 魔術


2013-01-07 更新: 強調一下,
  • 如之前所述,我個人認為 YIF 的魔術影片很可能利用後製,並且大量使用串通觀眾到一個不適當的程度。這是我個人的看法,是我基於各種(公開的)資訊管道的訊息的綜合判斷, 包含我對粘立人老師等人專業判斷的信任。
  • 影片拍攝的目的之一是要凸顯台灣有很多真材實料的東西,不必靠虛假的東西。台灣有一大堆很強的年輕魔術師,有驚人的實力,這才是我們國家的經費應該扶植的方向。
  • 另外一個想表達的,就是我希望魔術愛好者不會被後製澆熄熱情。就我所知,這個短片的確引起了部分年輕魔術師的一些熱血,這是我榮幸。
  • 這個影片是鏡頭魔術,但很多限制只是因為時間、人力和器材上的限制,我只有用到身邊現有的日常物品。
  • 感謝朋友對我的信任,即使不見得知道原理,也相信不是後製。二來,很多人應該已經知道怎麼弄的了,特別是非魔術師可能比魔術師還容易看出來。所以,原來打算公布製作過程的理由已經不存在。
  • 這個魔術的原理也不是魔術師常用的主要原理,所以即使公開也不會傷害到線上的魔術師。


現在網路上可以看到不少模仿、嘲諷 YIF 和後製魔術影片, PTT 上也有不少祭文出現(就是打賭 YIF 的法國麵包是後製,不然就請客),往好處想是大家都認清劣幣了,所以劣幣就不會驅逐良幣了。但也如同之前視頻魔術爭議一文所言,產生讓很多人覺得「某些效果魔術辦不到,只有特效才行。」的副作用。
就我而言,希望、夢想以及無窮的可能性是魔術最寶貴的價值。加上我有個不輸給 YIF 團隊的專業 Team(老婆和小孩),所以趁著我的專業團隊最有魔術生產力的時候(也就是他們睡午覺的時候),拍了個短片,希望能證明不需要後製,也能達到類似的效果。
要說明一下,原本想拍得比較完整一鏡到底的程序,但最後由於下面的原因只能弄成 proof of concept 的短片,本來比較完整的效果最後只有幾個片段。
因為時間很短(我的魔幻專業團隊的生產力巔峰期只有兩小時),所以沒有完全達到希望的效果,只好剪掉一些穿幫太多的地方(其實還有重拍一段),因為角度有點難抓,又沒時間練得很熟練。
雖然我有幾個比較好的攝影機,但由於我的專屬攝影師(一張椅子)不太容易控制鏡頭角度,只好拿站的比較穩的 mac book air 的鏡頭來拍。所以角度其實很差。這也是沒辦法的事,雖然我的攝影師手很穩,但我發現跟他溝通很沒效率。而且他拍攝的時候不太喜歡動。
要特別強調一下,除了轉場外,我還有將亮度調亮 1.2 倍(用 openshot),雖然應該要特別避免後製,但燈光實在太暗了。這也是因為我沒有太多場地可以選。
拍攝地點是我家的曬衣場(兼專業團隊中比較資淺的那個團員的遊樂場,有之一),所以有點亂。原本要要出一瓶更大罐的可樂,但是被喝完了,透明的空瓶子效果不好,只好跑去7/11買了一瓶能買到最大罐的紅茶,預算因此暴增無窮多倍。
目前的這個方法,如果花點金錢、人力和時間,是可以達到好得多的效果。無奈我所有的東西都是曬衣場拿的,所以角度很有限制。
我的專業團隊中比較資深的那個團員,醒來後看到我的表演,覺得我像白痴。
背後的原理其實是可以「破解」的,原本也打算拍個解說,但沒時間,只能等等了。

這不是唯一能達到類似效果的方式。這次耶誕節晚會表演原本也打算用另外的方式達成類似的效果。但是買不到那麼長麵包,也沒有時間把方法完善練熟,所以還是換成別的節目。

2012年12月12日 星期三

視覺衝擊:立法院法案審查 + gource


昨天在 facebook 上看到立法院議程查詢資訊的分享,又在 G+ 上看到某個 project 利用 gource 將 git 歷史視覺化的影片。
由於有點孤陋寡聞,這兩個東西之前都沒注意過。想到如果把兩個東西結合在一起,不知道效果會如何?
因為一些業務軟體及文件的關係,在學校的桌機跑的是 windows,其實經過 windows 升級之後,那些用 ActiveX 行政系統也是得在虛擬機跑,不過有些(舊版的) office 文件還是只能在 windows 下面讀,相當詭異。這些是題外話,總之先抓了 gource 的可執行檔在 windows 跑。
簡單用 python 寫了個隨機生成的檔案餵給 gource,第一個碰到的問題是中文顯示。由於不想改程式碼,上網 google 了一下沒找到解答,不過觀察顯示不出來的中文字的方框數量,猜測其實只是 ttf 裡面的字不夠多, DroidSansFallback 把內附的 FreeSans ttf 檔蓋過去,果然就成功顯示中文了。
接下來想試試看顯示 User 的 Avatar 人頭圖,由於檔名要和 User 的名字一樣,但是 NTFS 檔名應該是用某種 UTF16 的編碼,而 gource 只吃 utf8 檔,所以不改 source 不行。所以切換到 linux 下來跑。
linux 下的檔名就沒有問題了。接下來要抓立法院的議程資料。我用的網址是立法院智庫下的「法律提案審議進度」。
不用砍站,稍微用瀏覽器的網頁開發工具修改一下,就能一次抓到最多 3000 筆資料。我抓了 100年1月到 101 年 11 月中的資料。
再來就是用 python 解析 html。由於 html 裡面有些 tag 其實沒有對稱,所以用很醜的方式,只處理 td tr 和 table,總之是解出資料了。提案人常常會很多,只列其中第一個。
接著需要大頭照。原來是想用 google 找大頭,不過已經有很多熱血的同志先弄好了,可以在零時政府中找到立委人頭 API。雖然網頁上提供的例子,裡面的 MD5 跟我用 python 跑的對不上,但是總之是可以抓得到(如附檔程式)。
最後,再用 Garage Band 隨手弄個背景音樂配上就完工了。


附檔:處理的資料以及抓人頭的範例。
用的參數如下:
gource --user-image-dir image -e 0.1 --camera-mode overview -i 30 -s 20 r2

2012年9月15日 星期六

3D 超任模擬器

這是基於 snes9x 的簡單修改,增加雙眼視覺 3D 立體效果。
 不是什麼新點子,但如果你搜尋一下網路,就會發現說得人多,做得人少(大部份的情節是某人問說 snes9x 有沒有支援 3d stereoscopy,然後會有人說不行、沒意義等等的,有時也有人說應該可以,但就是沒有人真的去弄)。

3D 遊戲要弄出深度很簡單,但超任明明是 2D 畫面,要怎樣弄出深度?
因為超任有四層 background,一層 sprite,每層 background 和 sprite 又有不同的優先權等等的差別,所以可以依照繪製的順序給出深度(雖然得出的深度不見得理想),而 snes9x 的實作中,也給出了 z-buffer,所以有內建的深度可用,所以只要簡單的依照深度將 tile 位移即可。

目前的實作在 https://github.com/tjwei/snes9x-3d,只支援 odd-even-rows,還有 linux/gtk,因為這是我桌機的設定。 為了要放上 youtube,所以改了個 left-right 的版本(只是左右有點搞不清),然後用 recoredmydesktop 來錄。但是錄起來有 window 的邊,所以又用了 HandBrake 手動修掉邊。
由於影片製作的過程很家庭手工,所以有點不太順,實際上使用的效果會比影片要好一點。
有些遊戲效果還不錯,有些則不怎麼樣。

在 evo 3d 上看,似乎要深度加強一點,所以也錄了一個深度加強版。 由於我 compile 的 Snesoid 會 crash,所以 port 到 evo 3d 上要等等了。

Demo 如下
深度較強,適合小螢幕,只有快打旋風二



深度較弱,比較長

2012年9月6日 星期四

窮人的 3D 全像 : 使用 Android 手機



這是一個簡單的實做,利用隨手可得 Android Phone 來製作 Swept-volume display。顯示的是一個立方體,其中兩面顯示英文字母,一面顯示黃色,其他幾面是空心的。因為手機螢幕及錄影機的 framerate 的緣故,錄得不是很好,(有點類似錄 CRT 電視的情況),實際上的效果要好些。 其他還有弄一些單純的方塊,方塊中加個圓管,十字架,方塊中一個小方塊,但就沒有錄了。

 視覺暫留顯示(POV Display) 不罕見,如下面的影片

 

 Volume Display 最常見的就是 Led Cube,




 上面兩個都是常見的 DIY project,Swept-volume display 差不多就是上面兩個東西的混合。
用手機的好處就是 X,Y 的解析度是 480x800,不是 LED Cube 的 8x8 能比的。做 POV Display,也不用額外的硬體,單純用人力揮動配合手機的 accelerometer 即可。
但 Z 軸的解析度就很差。假設手一秒來回揮動三次,一般手機螢幕更新率是 60Hz,那表示 Z 方向從頭到尾移動一次只花了 1/6 秒,畫面只更新了 10 次。外加一些誤差(手的誤差和 sensor 的更新率),去頭去尾之後,Z 軸的解析度也只有 6~8。
當然你也可以手揮動得慢一點,但是太慢了就無法讓眼睛產生視覺暫留。
總之,暫時無法弄出 Leia 公主。修改之後應該還可以再擠出一些 Z 軸的 frame 出來。

更新:新影片,攝影技巧好得多。比較有信心能弄出 Leia 公主或初音了。

2012年8月30日 星期四

正在用 Javascript 寫的 Playstation 模擬器


這是用 emscripten 移植到 javascript 上的 pcsx 模擬器的測試影片(Final Fantasy 8, Crash Bandicoot, Chrome)。 還在很早期的階段,目前尚未釋出。 測試影片中,沒有用 HLE (雖然應該可用),沒有用 webgl (soft render,因為比較好測試和 C 版本的差異),沒有用 Dynarec。 過程中找出不少 emscripten 的 bug,都提出 issue 和 patch,有一些問題目前已在官方版本中解決了。有一些修正目前還未匯入官方版本,影片中可以看到其中的差異。 我也給了一個 dataview 的初始 patch,解決了很多 safe_heap 的問題,但速度方面有問題。 之前放在 github 上的超任模擬器,由於 emscripten 更新,所以需要修改才能正確編譯。 我應該會弄一個 fork 出來,比較方便。 9/1 Update Video:
HLE=1, Firefox Nightly
Rage Racer, Parasite Eve, Grand Turismo Duke Nukem

2012年8月22日 星期三

COSCUP 2012

這次印象深刻的演講有幾個,


Jserv 的現場寫程式相當有意思,表現非常熟練。

 

還有 imcat 不說話的閃電秀。

上面兩個都有 Live Coding 的風格和趣味(但不是一般定義的 live coding)

「; 的故事」的說故事技巧很不錯,值得學習。


N900 露出計的這個講得也不錯。 armvisor, pqemu,python->spidermonkey, pyton object vs javascript prototype 也都內容豐富。
此外還聽了深美國小推廣使用 kde 的經驗,相當有趣的經驗。
Win8/IE10的講解非常清楚,美中不足的是沒有在 IE10 demo 跑超任模擬器。
機器人的那場,雖說聽不太懂,但能感受講者的熱情。

一些沒聽到演講如:酷音輸入法(人太多,沒辦法呼吸)、人人編程(跑去聽機器人)就等著看影片了。

BoF 參加了獨立遊戲那群,除了了解到 LuaJIT 又有進步還有獨立遊戲的現況之外,也回想起之前寫過一些遊戲,還找人拍分解動作弄動畫的往事。


其他時間多半在 python 攤位,雖然攤位簡陋,但很多朋友捧場,讓我感受到了社群的熱情。
至於這次我給的演講。很感謝聽眾的熱情回應,讓整場演講效果不錯。當然自己還是發現不少缺點。也只能自我安慰說,畢竟這種只講一場的東西,很難完美。
很感謝 Jedi 送的簡報原力,裡面就有討論到其中一些缺點。
不過對於避免 Live demo 這點,我個人是持不同的意見是了。雖然 Live demo 有時被濫用,但 Live 還是有其無法取代的現場魅力。

2012年8月19日 星期日

JS 超任模擬器網址



可以在後面這個網址 Javascript SNES Emulator: http://tjwei.github.com/xnes/ 測試
Source code 近期內釋出。

下面是測試用的文字版模擬器的影片。

2012年7月8日 星期日

PDF 簡體/正體轉換 github 及 TODO


前篇所說, 這也許是你第一個能找到的 pdf 簡體/正體轉換器,source code 已放上 github 了:https://github.com/tjwei/translatePDF

影片可以看看大致上的效果。

2011年5月21日 星期六

松鼠URL 2011-5-21

安全的幻影
Bruce Schneier: The security mirage


由於演化的關係,動物對於什麼是安全、什麼是危險有相當敏銳而正確的直覺。所以不需要理論、模型這一堆東西幫忙。人類其實也是....假如我們還生活在石器時代的話。其中一個和古時候的差別就是大眾傳播媒體。人類有一個很實用的經驗法則(或稱捷思)叫做可利用性法則(availability heuristic),簡單的說,就是如果你很熟、很快就能聯想起來的東西,應該就是比較重要的東西。比方說你常常聽說村子裡面有人被老虎吃掉,但是很少聽說有人被兔子吃掉,那老虎就比較危險一點。但是大眾媒體把一切都搞砸了。新聞顧名思義,就是報導罕見的事情。車禍天天發生、天天死人,沒什麼稀奇的,飛機比較少出問題,所以才會大幅報導。但是因為媒體從早報到晚,混淆了我們的可利用性法則,混淆了我們的直覺。
吃路邊或者速食可能比手機的電磁波危險的多。把 511 當成只是另外一天的人,遠比贊同王老師大地震說的人多,至少一開始是這樣的。但是媒體只會報導稀奇、不正常的事情。普通我們聽到王老師的講法,只會當成瘋子,根本不會去理會,但經過電視、報紙連續幾天的連環轟炸,混淆了我們的直覺,即使理智上你還是知道這完全是無稽之談,但你的「可利用性法則」會強迫你把這當成一件事情。

嬰兒的語言天才
Patricia Kuhl: The linguistic genius of babies


一歲前的嬰兒正在建立語言模型,重點是,對於嬰兒的語言學習,電視不但無法取代真人互動,而且是跟本完全沒有用。要有真人互動才拿打開嬰兒學習語言的開關。

笑容的隱藏能力
Ron Gutman: The hidden power of smiling


裡面提到,笑得越開懷的人,將來成就也會越高、壽命也會越長。乍看之下,似乎是個誤謬:因為健康較好、成就較高的人自然會笑得比較燦爛一點。
不過裡面用科學分析了笑容的反饋效應,告訴我們笑容會在腦中帶來快樂感,超過巧克力和金錢所能帶來的效應。
另外笑容也有感染力,能夠讓人心情平靜快樂。
之前結婚時,負責辦婚宴的小姐臉上總是掛著略帶誇張的笑容。可以說是有點「職業」,但我覺得是好的那種。因為大多數人結婚都是第一次,即使結婚很多次的人,也至少有一次是第一次。第一次做一件事時,有點緊張或者慌忙是自然的。穩定的笑容能夠有效的紓解不安。

如何綁鞋帶
Terry Moore: How to tie your shoes


五十歲的大叔終於發現自己(和多數人)以前鞋帶都沒有綁對。

Sean Carroll: Distant time and the hint of a multiverse

為什麼有時間這個東西?

2010年11月24日 星期三

人腦/ Under construction



2007年12月27日 星期四

魔術與生活


其實將魔術融入生活中,最重要的要領就是回到魔術的定義:「讓不可能成為可能」
魔術不是變出鴿子、彩帶、球,而是:
A 一直存在,但某甲不知道。甚至他不認為 A 有存在的可能。
當某甲發覺 A 的存在,對某甲來說,就有無中生有的驚奇感。
這種事情一天到晚都在發生,你唯一要做的,是讓某甲認為 A 是因為「你」而發生的。
自由女神像是怎麼消失的不重要,重要的是我們認為是大衛考柏飛讓她消失的。
這當然需要一些技巧,就像你不會直接把鴿子拿出來一樣。
如果你成功辦到這點,某甲也許不會把你當成是一個「魔術師」,期待你從帽子裡拿出兔子。
但他會有個印象,記得你是那個「能把不可能變成可能的人」
我不曉得你怎麼想,對我來說,「能把不可能變成可能的人」就是魔術師。
如果你跟別人解釋這點,別人可能會回答:「喔,你說的那種是真的魔術師吧。」
還記得Michael Ammar 說過
重要的不在於你做了什麼,而在於觀眾看到了什麼。甚至也不是觀眾看到了什麼,而是觀眾認為他們看到了什麼。
大多數人關心的不是「事實」,而是「他覺得的事實」。這也就是你能在現實生活中施展魔法的原因。
至於要怎麼利用這點?如果你曾經花個三年五載鑽研魔術,那我可以告訴你,你在魔術裡面學到的所有觀念和經驗,在現實生活中都真的有用。
我不是要你騙人,你是魔術師,知道魔術師是不能騙人的。你在大魔神的面前,以魔術師的驕傲立過誓言,你絕對不會越過那條線。
人的認知盲點很多,常常會認為某某事情不可能,某某事情不可以。遠距離戀愛不可能、某某職業沒前途、一定要念研究所。你很難改變別人認定的事實,但因為你看到了別人沒看到的事情,對他們來說,你就像是在施展魔法一樣。即使你沒學過魔術,這點也一樣成立,魔術的手法只是用來放大效果。
所以不要讓別人遮住你的眼睛,告訴你什麼才可以,什麼不可以。我們魔術師都知道,沒有所謂不可能這件事,所以不會太快下結論。我們會多想一下,想辦法找出達到效果的手法和秘密。分清楚所謂的規則到底是「真的」規則,還是「大家都知道的」規則
是誰告訴你簡報一定要這樣報?程式一定要這樣寫?東西一定要這樣賣?
不管你的工作是程式設計師也好、業務員也好,只要用心,總會找到機會,讓你在現實生活中給別人一個「見證奇蹟的時刻」。
(當然,你一定也還記得台上三分鐘,台下十年功的苦練經驗,要表演前,請先做好功課。)

你還記得你苦練 Classic Palm, Classic Pass, Muscle Pass 還有一堆控牌法的回憶吧?那對你的工作或生活來說,什麼是你的 Classic Palm?你要怎麼「表演」 Classic Palm?

2007年12月19日 星期三

猩猩與魔術

黑猩猩小龐看到魔術表演的反應。

如果上面網路不順,下面是同樣的:


英國魔術師 Paul Daniels 在電視上和猩猩合作的表演

猩猩變的冷魔術

根據新聞,大連的黑猩猩「連連」也會變魔術。
黑猩猩“連連”表現尤為突出。 动物剧场工作人员说,自从成为森林动物园的吉祥物后,“连连”训练更加刻苦,表演也更卖力,除街舞、跆拳道外,最近,“连连”又学会了变魔术,前天魔术“大变活狗”在动物剧场一亮相,立即吸引了好多的追“猩”族。動物劇場工作人員說,自從成為森林動物園的吉祥物後,“連連”訓練更加刻苦,表演也更賣力,除街舞、跆拳道外,最近,“連連”又學會了變魔術,前天魔術“大變活狗”在動物劇場一亮相,立即吸引了好多的追“猩”族。