スキップしてメイン コンテンツに移動

投稿

8月, 2013の投稿を表示しています

UnityでLeapMotionを呼び出すAPIについて考える

LeapMotionをUnityで使うプログラムを書くときに、 呼び出し方や使い方はその他の入力機器とあわせる形がいいのだろうか? 例えば キーボードのスペース を使う場合は、  Input.GetButtonDownから入力を得ている。 Input.GetButtonDown ("Jump") そこで ジェスチャー が行われたか判断する場合は、 LeapMotionを使うと以下のような形になるかなと考えている。 LeapMotion.DetectGesture("Circle") 使いやすさを考えたら他の入力機器と同じようなAPIにしておくことで、 誰にもで理解できて使いやすい形になると思う。 では使いやすさではなく、 性能面や、例外のハンドリングとかはどうなのだろうか? やろうと思えばLeapMotionの中(OnFrame)でがしがし動かすこともできると思う。  どこかにベストプラクティスみたいなのがあるのかな? UnityでLeapMotion使うと、うまくDisposeできなくて固まってしまったりする。 この辺も何か対応方法あるのかな・・・。 Unity終了させるときに必ずDisposeさせる方法とかあったら教えてください。  なんか最後は全然関係ない内容になってしまった。 駄文ということで。

HP Pavilion Desktop PC h8-1080jp のSSDの交換方法

Windows起動時にDiskの読み取りエラーが発生し、 マシンが上がってこなくなってきたのでSSDを交換した。 HP製のマシンを使っているのだが、微妙にどう外すか戸惑った。 外し方が書いてあるのだが、とにかく見えにくい!! と言う訳で誰かの参考になればと思って、 以下にログを残しておきます。 側面を外します。 前面も外します。 真ん中の金具がねじが止まっているので外します。 ここまでは楽勝でした。 HDDが入ってるやつがなかなか外れない・・・と思っていたら、 よーく見ると赤枠のところに外し方が書いてあります。 奥にあるボタンを押す HDDが入っている箱(?)を上に持ち上げるようにすると外れます 外れるとこんな感じに。 後はケーブルを差し替えればOKです。 会社のノートPCも壊れるし、そういう時期なんだろうか・・・。 開けたら東芝の1.8インチHDDで、なかなかデータが吸い出せないし・・・。 やれやれです。

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 技術評論社 西尾泰和

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus) 著者 : 西尾泰和 技術評論社 発売日 : 2013-04-24 ブクログでレビューを見る» 人とコンピュータが会話をするためのコンピュータ言語。 いつしか人と人とコンピュータのためのものに。 その歴史の中でコンピュータ言語は進化し、変化を続けてきた。 今は当たり前のように存在する一つ一つに、 経緯、必要性、意味を付与してくれている。 そう、 新人の素朴な疑問に解を与えてくれる。 ・・・かもしれない。 (以下抜粋。○:完全抜粋、●:簡略抜粋) ○Pythonでは、標準で添付されているdisライブラリを使って  VMを実行する命令列を表示させることができます。(P.20) ○Pythonに標準添付されているastライブラリを使えば、  特定のコードがどういう構文木になるかがわかります。(P.23) ●なぜfinallyを導入したのか  Microsoft扱いやすいエラー処理の仕組みとして、  構造化例外(Structured Exception Handling)を導入しました。  構造化例外を採用することにより、  コードの信頼性を高めることができます。  プログラムが予期せず終了した場合でも、  リソースを正しく破棄することができます。  またgotoステートメントや戻り値の入念なテストを必要としない、  簡素な構造化コードで対処できます。(P.68-69) ○「おかしくなったら処理を停止して速やかに報告すべき」  という設計思想は  「フェイルファースト」と呼ばれています。(P.76) ○C#は多くの部分でJavaを参考にしていますが、  検査例外は採用しませんでした。  C#の設計者AndersHejlsbergは、  「検査例外のアイディアには何も間違ったところはない。   検査例外はすばらしいものだ。   だけどJavaみたいな実装のしかたでは、   いくつかの問題をなくすかわりに別の問題を持ち込んだだけだ。   もっとよい方法が見つかればC#にも検査例外を入れるだろう。」(P.80) ●型ですべての仕様を表現する世界が来るか  今で

LeapMotion×UnityでBlockShooterを作成しました

「Unity入門」で作成したBlock Shooterを、 LeapMotionで操作できるように改造しました。 UnityでLeapMotionを操作できるようにdll等をセットします。 LeapMotionをUnityで使う方法  を参考にして下さい。 Leap用のusingを付け加えます。 using Leap; Leap用に変数を宣言しておきます。 public class Gun : MonoBehaviour { // leap用のリスナーとコントローラー private LeapListner listner; private Controller controller; StartでLeapのリスナーなどを初期化します。 void Start() { // Leapのリスナー、コントローラーの初期化とセット listner = new LeapListner(); controller = new Controller(); controller.AddListener(listner); Update内を変更します。今回は弾丸発射を簡単にするため、マウスクリックから自動連射に修正しています。 void Update() { /* 略 */ Vector3 screenPoint = Input.mousePosition; /* 略 */ } void Update() { /* 略 */ // Unityの画面に対する、Leapでの指の位置を取得する Vector3 screenPoint = GetLeapPointOnUnityScreen(); /* 略 */ } 今回の本丸となる、Leapの位置データ取得箇所を作成します。 // Leapのスクリーン上の座標を、Unitiyのスクリーン上の値に変換する private Vector3 GetLeapPointOnUnit

Unity入門のJavaScriptをC#へ Part2

「Unity入門」のJavaScriptをC#への変換メモPart2です。 今回はP.235のCharacterControllerをGetComponetするときです。 同じ事で困ってる人もいたらしく、  ここ  を参考にしました。 ・JavaScript var controller : CharacterController = GetComponent(CharacterController); ・C# CharacterController controller = GetComponent<charactercontroller>(); ちなみにCapsule Colliderを間違えて挿入しないように。 P.252に書いてあるので、間違えて入れると見た目は正しいように見えて、 それでいてプログラムを動かすとNullReferenceExceptionとかでエラーになります。 無駄にはまった。。。