2014年9月29日月曜日
Windows Live Writer からの投稿テスト
だぜ
ここのサイトを参考にした
http://webaccess.blog13.fc2.com/blog-entry-85.html
Unity作業中に操作メモなんかを投稿して、備忘録として使うためだ!
2013年10月28日月曜日
Blender:オブジェクト原点の移動と回転
MayaだとInsertキーを押してやるアレ。
Maxだと右のタブから選んでやるアレ。
Pivotと呼ばれる、オブジェクト自身の原点の変更方法。
・移動
3DViewのメニューから
Object>Transform
のOrigin to というところを使う
BlenderではOriginと言うみたいね。
・回転
これはかなり無理矢理
正式なやり方はわからない
現状はEdit Modeに切り替えてオブジェクト自身を回転させてOriginとずらしている
本当のやり方はどうなんだろう
2013年9月20日金曜日
BlenderからUnityにアニメーション付きのオブジェクトを...読めない
Default Takeしか読み込まれない!
なんでー?!
2013年9月16日月曜日
BlenderからUnityにオブジェクトを持ってくるとSmooth Shadeになってしまう問題
http://answers.unity3d.com/questions/294558/blender-normal-smoothing-import-problem.html
ここに回答があった。
モディファイアにエッジスプリットを入れる
以前から調べていてスプリットしちゃうと後々オブジェクトの編集が難しくなるんじゃないかと思ってたんだけど、モディファイアを使うなら問題なし。
めでたしめでたし。
ここに回答があった。
モディファイアにエッジスプリットを入れる
以前から調べていてスプリットしちゃうと後々オブジェクトの編集が難しくなるんじゃないかと思ってたんだけど、モディファイアを使うなら問題なし。
めでたしめでたし。
2013年8月24日土曜日
回転の経験則
結局、回転について全然わからないので、
一度総当りしてみることにした。
プログラマが見たら大笑いだと思うが、仕方ない。
これがUnityプログラミング・ストロングスタイルだ。
やりたいことは。
1フレームにつき1度回して、90フレーム後に90度回転していること。
試した内容の詳細は後回しにして、結果を先に。
結局ちゃんと90度回転したのは以下。
obj.transform.rotation *=Quaternion.Euler(0, 1, 0);
obj.transform.rotation *=Quaternion.Euler(Vector3(0, 1, 0));
obj.transform.Rotate(0, 1, 0);
obj.transform.Rotate(Vector3(0, 1, 0));
obj.transform.eulerAngles +=Vector3(0, 1, 0);
obj.transform.eulerAngles.y +=1;
今回わかったこと。
・Quaternionを加えてゆこうと思ったら、掛けること(足せない)。
・RotateはQuaternionで指定しない。
・Vecter3(1, 1, 1)と(1, 1, 1)は別物
・Time.deltaTimeは「1フレーム」の事だと思ってたら何か少数値が入ってた。
以下が試したプログラム。
青いラインが成功。
一度総当りしてみることにした。
プログラマが見たら大笑いだと思うが、仕方ない。
これがUnityプログラミング・ストロングスタイルだ。
やりたいことは。
1フレームにつき1度回して、90フレーム後に90度回転していること。
試した内容の詳細は後回しにして、結果を先に。
結局ちゃんと90度回転したのは以下。
obj.transform.rotation *=Quaternion.Euler(0, 1, 0);
obj.transform.rotation *=Quaternion.Euler(Vector3(0, 1, 0));
obj.transform.Rotate(0, 1, 0);
obj.transform.Rotate(Vector3(0, 1, 0));
obj.transform.eulerAngles +=Vector3(0, 1, 0);
obj.transform.eulerAngles.y +=1;
今回わかったこと。
・Quaternionを加えてゆこうと思ったら、掛けること(足せない)。
・RotateはQuaternionで指定しない。
・Vecter3(1, 1, 1)と(1, 1, 1)は別物
・Time.deltaTimeは「1フレーム」の事だと思ってたら何か少数値が入ってた。
以下が試したプログラム。
青いラインが成功。
function Update () {
if(round<90){
round++;
obj.transform.rotation +=(0, 1, 0);
obj.transform.rotation +=Vector3(0, 1, 0);
obj.transform.rotation +=Quaternion.Euler(0, 1, 0);
obj.transform.rotation *=Quaternion.Euler(0, 1, 0);
obj.transform.rotation +=Quaternion.Euler(Vector3(0, 1, 0));
obj.transform.rotation *=Quaternion.Euler(Vector3(0, 1, 0));
obj.transform.rotation +=(0, Time.deltaTime, 0);
obj.transform.rotation +=Vector3(0, Time.deltaTime, 0);
obj.transform.rotation *=Vector3(0, Time.deltaTime, 0);
obj.transform.rotation +=Vector3.up*Time.deltaTime;
obj.transform.rotation *=Vector3.up*Time.deltaTime;
obj.transform.rotation.y +=1;
obj.transform.rotation.y +=Time.deltaTime;
obj.transform.rotation.y +=Vector3.up*Time.deltaTime;
obj.transform.Rotate(0, 1, 0);
obj.transform.Rotate(Vector3(0, 1, 0));
obj.transform.Rotate(Quaternion.Euler(0, 1, 0));
obj.transform.Rotate(Quaternion.Euler(Vector3(0, 1, 0)))
obj.transform.Rotate(0, Time.deltaTime, 0);
obj.transform.Rotate(Vector3(0, Time.deltaTime, 0));
obj.transform.Rotate(Vector3.up*Time.deltaTime);
obj.transform.Rotate(Vector3.up, Time.deltaTime);
obj.transform.eulerAngles +=(0, 1, 0);
obj.transform.eulerAngles +=Vector3(0, 1, 0);
obj.transform.eulerAngles +=Quaternion.Euler(0, 1, 0);
obj.transform.eulerAngles *=Quaternion.Euler(0, 1, 0);
obj.transform.eulerAngles +=Quaternion.Euler(Vector3(0, 1, 0))
obj.transform.eulerAngles +=(0, Time.deltaTime, 0);
obj.transform.eulerAngles +=Vector3(0, Time.deltaTime, 0);
obj.transform.eulerAngles +=Vector3.up*Time.deltaTime;
obj.transform.eulerAngles.y +=1;
obj.transform.eulerAngles.y +=Time.deltaTime;
obj.transform.eulerAngles.y +=Vector3.up*Time.deltaTime;
}
}
ちなみに、何か別の方法なら回転しそうなのは以下。
y=1.756921まで回転してた。
obj.transform.Rotate(0, Time.deltaTime, 0);
obj.transform.Rotate(Vector3(0, Time.deltaTime, 0));
obj.transform.Rotate(Vector3.up*Time.deltaTime);
obj.transform.Rotate(Vector3.up, Time.deltaTime);
obj.transform.eulerAngles +=Vector3(0, Time.deltaTime, 0);
obj.transform.eulerAngles +=Vector3.up*Time.deltaTime;
obj.transform.eulerAngles.y +=Time.deltaTime;
これ、うまくゆかないのって、もしかしたら僕のTime.deltaTimeの理解が間違っているからかもね。
以上。
if(round<90){
round++;
obj.transform.rotation +=(0, 1, 0);
obj.transform.rotation +=Vector3(0, 1, 0);
obj.transform.rotation +=Quaternion.Euler(0, 1, 0);
obj.transform.rotation *=Quaternion.Euler(0, 1, 0);
obj.transform.rotation +=Quaternion.Euler(Vector3(0, 1, 0));
obj.transform.rotation *=Quaternion.Euler(Vector3(0, 1, 0));
obj.transform.rotation +=(0, Time.deltaTime, 0);
obj.transform.rotation +=Vector3(0, Time.deltaTime, 0);
obj.transform.rotation *=Vector3(0, Time.deltaTime, 0);
obj.transform.rotation +=Vector3.up*Time.deltaTime;
obj.transform.rotation *=Vector3.up*Time.deltaTime;
obj.transform.rotation.y +=1;
obj.transform.rotation.y +=Time.deltaTime;
obj.transform.rotation.y +=Vector3.up*Time.deltaTime;
obj.transform.Rotate(0, 1, 0);
obj.transform.Rotate(Vector3(0, 1, 0));
obj.transform.Rotate(Quaternion.Euler(0, 1, 0));
obj.transform.Rotate(Quaternion.Euler(Vector3(0, 1, 0)))
obj.transform.Rotate(0, Time.deltaTime, 0);
obj.transform.Rotate(Vector3(0, Time.deltaTime, 0));
obj.transform.Rotate(Vector3.up*Time.deltaTime);
obj.transform.Rotate(Vector3.up, Time.deltaTime);
obj.transform.eulerAngles +=(0, 1, 0);
obj.transform.eulerAngles +=Vector3(0, 1, 0);
obj.transform.eulerAngles +=Quaternion.Euler(0, 1, 0);
obj.transform.eulerAngles *=Quaternion.Euler(0, 1, 0);
obj.transform.eulerAngles +=Quaternion.Euler(Vector3(0, 1, 0))
obj.transform.eulerAngles +=(0, Time.deltaTime, 0);
obj.transform.eulerAngles +=Vector3(0, Time.deltaTime, 0);
obj.transform.eulerAngles +=Vector3.up*Time.deltaTime;
obj.transform.eulerAngles.y +=1;
obj.transform.eulerAngles.y +=Time.deltaTime;
obj.transform.eulerAngles.y +=Vector3.up*Time.deltaTime;
}
}
ちなみに、何か別の方法なら回転しそうなのは以下。
y=1.756921まで回転してた。
obj.transform.Rotate(0, Time.deltaTime, 0);
obj.transform.Rotate(Vector3(0, Time.deltaTime, 0));
obj.transform.Rotate(Vector3.up*Time.deltaTime);
obj.transform.Rotate(Vector3.up, Time.deltaTime);
obj.transform.eulerAngles +=Vector3(0, Time.deltaTime, 0);
obj.transform.eulerAngles +=Vector3.up*Time.deltaTime;
obj.transform.eulerAngles.y +=Time.deltaTime;
これ、うまくゆかないのって、もしかしたら僕のTime.deltaTimeの理解が間違っているからかもね。
以上。
2013年8月21日水曜日
intをfloatで割るとint
いや、これ、本職のプログラマなら当然だろ!
って感じだと思うんだけど、身の程知らず&経験則だけでプログラム作ってると、こういう単純な計算は意外と疑わないんですよ。
今回は270/100.0が2.7にならなくて困った。
回転部分をやってたから、Quarternionがまーた悪さをしとるな!
って思ってたー!
これ、気付くのに3日かかった!
登録:
コメント (Atom)