(一個害我壓力山大的專案)
前言:
學校校慶過了,展也展完了~
想說這一路風風雨雨才成功殺青的專案也讓我學到不少。((還有工讀費$$))
取之於社群,還之於社群。
如果沒有每天爬到2點也爬不完的文獻,就不可能有做完的一天,而我這個專案對新手來說也算是一個大統整吧,希望能多少回饋給社群。
再來個聲明:
這篇不是教學,只是我的筆記。 歡迎分享各位的經驗、知識
這篇不是教學,只是我的筆記。 歡迎分享各位的經驗、知識
這篇不是教學,只是我的筆記。 歡迎分享各位的經驗、知識
先簡介一下用法:
使用者可以下載App選擇拍照或留言並完成編輯。之後可以在特定的展示端上看到自己的人物或留言出現。
之前做的海報,遮掉一些感覺會被看出來的LOGO。 (不知道為什麼就是覺得遮起來很心安)
((模組都不是我建的,我這次只負責Unity和資料庫。不得不說建模的學姊很厲害))
正題:
0.變數:
Unity 有個Raw Image的UI物件,我們把相機看到的畫面呈現在上面,之後將拍照的畫面套用在"FaceApplyMat"這個材質球上,再順便修改offset值。
再幫Raw Image加上Aspect Ratio Fitter,等等會說到。
1.開啟相機的自拍鏡頭
中間那行Foreach是在找自拍鏡頭。
2.讓webCam效果更順一點(取自網路的作法)
設定ratio讓Raw Image能自動佔滿整個屏幕(即使手機旋轉),且不會感覺到畫面被拉扯。
我有點忘記原本不加下面這幾段程式碼前的樣子了。
3.拍照:
基本上Shoot()只做一件事。(只是我在這裡有做其他UI的控制)
照片之所以要旋轉是因為我發現拍出來的會歪90度,這裡一樣用(取自網路的)旋轉方法:
且壓縮不是只給手機用,只是因為好一點的手機webCam拍照一張都4mb起跳,所以只好壓一下了。(上面這參數大概會壓到1張500多KB)
4.上傳:
string UploadUserURL="要處理的php網址";
WWWForm form = new WWWForm();
form.AddBinaryData("臉部照片POST", FaceImage_bytes );
UnityWebRequest www = UnityWebRequest.Post(UploadUserURL,form);
yield return www.SendWebRequest();
5.php:
$FaceImage=$_FILES["臉部照片POST"];
$imageType =$FaceImage["type"];
$imageData=file_get_contents( $FaceImage["tmp_name"]);
if(substr($imageType,0,5)=="image"){
echo "執行成功";
//Remember to remove the slashes when the image is read or downloaded with the "stripslashes" function.
//雖然出處說讀取時應該移除addslashes增加的斜線,但我實作起來是不移除才能正常顯示 //上傳資料--------------------
$sql = "INSERT INTO $tableName(欄位名稱)
VALUES ('". addslashes($imageData) ."')";
//----------------------------------
mysqli_query($conn,$sql)or die(mysqli_error($conn));
}
else {echo"失敗";}
5.echo輸出:
$imageData=base64_encode($row ["臉部照片row名稱"]);
6.unity接收並轉成Texture2D:
ps.如果用int.prase()解析失敗的話,可以試著移除\r\n再prase
....Replace("\r\n", string.Empty);
FaceImage_bytes = System.Convert.FromBase64String(echo出來的資料);
Texture2D face_img = new Texture2D(1024, 512, TextureFormat.ARGB32, true, true)
{
//其他參數,不設應該也沒差
filterMode = FilterMode.Trilinear,
wrapMode = TextureWrapMode.Clamp,
anisoLevel = 1
};
face_img.LoadImage(faceMatData.FaceImage_bytes);
完-雜談:
打到一半才發現原來VSC的程式碼可以直接帶著格式貼上來 所以會發現一半的文章是圖片表示,一半的是文字 ((請原諒我...
雜談一:
接下來小專題要做有關線上聊天室的,可是我目前就在煩惱該怎麼串流語音輸入;語音資料該不該存入資料庫之類的...
還希望各位能幫忙提點一下了
雜談二:
還記的我之前說正在跟同學做遊戲嗎? 我覺得自己有點被放生了...
我真的只是很想找人做做小遊戲啊...除了比較不會一個人迷惘,還能讓我比較專心在程式上。
((我接下來該怎麼堅持呢? 嗚嗚嗚...
生存報告:
附上最近一張介於"想畫"與"不想畫"之間的圖
((八成又會棄稿了