kazumalab tech log

流行りとリラックマと嵐が大好きです。技術的ログ。

Effective C#とアジャイルサムライを購入した件。

かずまです。

昨日Effective C#アジャイルサムライのKindle版を購入しました。

アジャイルサムライ

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

Effective C#

Effective C# 4.0

Effective C# 4.0

Effective C#

前から欲しかった一冊です。
Kindle版がかなり安くなってました。

まだ軽くしか読めてないですが、所見としては

  • セッターゲッターを活用しよう
  • 匿名型(LINQ)
  • GC(ガーベージコレクション)
  • using ステートメント(try catchとか)
  • デリゲート、コールバック、イベントとか
  • データのシリアル化
  • interfaceとか
  • 動的型付け

ココらへんを見とくと良さそうですね。
こうあるべきだ、みたいなのが書かれてて参考になるかも。


Effective Javaは良かったのでC#も買ってしまえーという感じですね。笑

EFFECTIVE JAVA 第2版 (The Java Series)

EFFECTIVE JAVA 第2版 (The Java Series)

これ。

UnityでC#やるとかXamarinでC#書くとかだといいかもですね。
iOSAndroidにも書き出せるし!

アジャイルサムライ

これはアジャイル開発向けの本です。
アジャイル開発とは簡単に言うと継続的にお客さんにいいものを届けよう!そのためにこうやってチームを回したり、開発したりするといいよね、っていう考えです。

一通り読みましたがうーん、実践しないと難しいかも。
けど、スタートアップとか、新規プロジェクトとか始めるひとは読むのいいかも。

あ、ちなみに壊滅的なプロジェクトにアジャイル開発入れるみたいなサンプルあったかも。。。

Mac book pro Late 2016を2ヶ月使ってみて

かずまです。

卒業が決まり、ようやく春休みです。
この春は学生最後なので、何をしようかな〜と考えて居ますが、コンパイラとか、機械学習とか、ちょっと興味あるし楽しそうだなーってことで
コンパイラを読もうとしたり、機械学習をUnityでやろうとしたりの準備をしております。

Macを買って2ヶ月が経ちました

f:id:kazumalab:20170219134517j:plain

昨年の記事でこんなの書きました。

blog.kazumalab.com

そう、Macを買ったお話です。
あれから2ヶ月新たな発見がいろいろあったり便利だったのでご紹介!

そう、ネタが今ないのです!笑

どうなのType-C

f:id:kazumalab:20170219134505j:plain

一言でいうとType-C、最高です。
というより意外と困らないというのが本音です。

これを使うとHDMIとUSB、Ethernetの問題は解決します。
ちょっとお高めですが、結構いいですね。

ただこいつを使わなくてもAppleの純正のType-Aへの変換があれば十分でした。

注意なのが、純正の変換ケーブルはUSB3.0、3.1ではないこと...。

外付けのBlue-Ray Driveも買いました。
そうするとType-Cへの変換ケーブルがついてきました!(しかもUSB3.0!)

f:id:kazumalab:20170219140502j:plain

めっちゃ便利です。

充電がはやい!

これはすごくいいな、と思ったのですが充電されるのが早い。
これもType-Cのおかげですかね。

ちなみにコンセントの部分

f:id:kazumalab:20170219140948j:plain

これはいいです。

前回までのだと、

f:id:kazumalab:20170219141126j:plain

こうなっちゃうんですよね。残念ながら。
なのでめちゃ便利になりました!

Mac to (Friend)Macができる

新型Macが2台そろえば、
友達のMacから、「充電ないから君のMacからもらうね!」
ということも出来ます。

*注意 あまりよろしくはないと思いますのでやらないように!!笑 責任は持ちません!

Mac to (Own)Macができる

自分のポートに同士に繋げば、∞ループに充電が出来ます!笑

f:id:kazumalab:20170219141852j:plain

*注意 これもよろしくないので絶対にやらないように!!責任は持ちません!

タイピングが気持ちいい

キーボードの厚みが薄くなりました。
その分タイプ音は大きくなりましたが、うちやすさ倍増です。

ずっとタイピングしていたいぐらい気持ちいいです。

気持ちがTweetに現れた瞬間!!!

なによりログインが早い

Touchバーが搭載されその横にTouch IDが搭載されています。
ログインはこれだけ!

f:id:kazumalab:20170219142434j:plain

これはかなり速くなりました。

Youtubeの広告が○○

これはあまり大きな声では言えませんがYoutubeの広告を...
f:id:kazumalab:20170219142946j:plain

あれ?Youtubeの広告動画も自由に時間を変えられる...?笑
つまり、Macを買って自分で試して見てください、ということです笑

トラックパッドが使いやすい

以前のMacでもかなり使いやすかった(Windowsの端末に比べて)のですが、
今回のMacではバージョンアップしてます。

Windowsではマウスが必要ですが、Macはいらない。ほんとに。

トラックパッドが広い

これは見ればわかりますね。
広くなった分作業しやすいです。

中心にきたときにフィードバックがある

これはアプリケーションによると思います。
Omnigraffleを使う際、よく中央に来たときに軽く固定されるUIが見受けられます。
その時にトラックパッドからもレスポンスがあります。

これは直感的にわかりやすいので便利です。

純正のアプリケーション、Pagesとかはそのレスポンスがありましたが、Illustrator 2017ではそのレスポンスはありませんでした。
残念。

support.apple.com

ほかにもこんなにたくさんある!

サウンドがよりクリアに

これは前回のMac bookでは15インチの場合はキーボードの横にありましたが13インチではありませんでした。
今回は13インチでも左右にスピーカーがあるため、聞き取りやすいです。

最後に

僕はAppleの回し者ではありませんが、
新型Mac book pro 13インチはかなり良品だと思われます。

まぁ結果としては僕にとっては良かった、というだけです笑
正直いうとAppleNVIDIAのグラボを積んでくれたら一番いいのになぁとは思います。

なのでまだまだVRするためにMacを買うという時代はこなさそうです。

UnityでOculus Touchを使うメモ ~銃を撃つ編~

かずまです。

昨日の記事ではOculus Touchでものを掴むところを実装しました。

blog.kazumalab.com

今日は銃を扱うところを実装していきます。

銃の設定

www.asset.techmatome.com

今回はこのアセットをつかいました。


f:id:kazumalab:20170217231856p:plain

持つ部分にColliderを付けます。
ちなみにもモデルの方ではなくて、一つ上の親の方につけます。

Rigidbodyも付けます。

f:id:kazumalab:20170217232337p:plain

こんな感じ。
打った時の音も入れたいのでAudiosourceのコンポーネントも付けます。
ちなみにTouchを振動させる場合はAudioClipが必要みたいです。


f:id:kazumalab:20170217233021p:plain

最後にBulletPointという空のオブジェクトを子オブジェクトとして設定します。
位置は銃の先端にします。

Gun.csを作成

銃を撃つためのスクリプトを書いていきます。
このGun.csを先ほどColliderを付けた銃のモデルにつけます。

OVRInputはOculus Touchの右左によって違うので

if (holdHand.whichController == OVRInput.Controller.LTouch) {
   hapticsChannel = OVRHaptics.LeftChannel;
   whichFinger = OVRInput.RawButton.LIndexTrigger;
}
if (holdHand.whichController == OVRInput.Controller.RTouch) {
     hapticsChannel = OVRHaptics.RightChannel;
     whichFinger = OVRInput.RawButton.RIndexTrigger;
}

昨日のコードでenumで設定したRTouchか、LTouchかをOVRHandからとってきます。
Triggerはものを持つ部分でつかいました。
今回銃を持ったのち、人差し指で発射します。

人差し指は

OVRInput.RawButton.RIndexTrigger

OVRInput.RawButton.LIndexTrigger

で取れます。

これを掴んだときにどっちの手でつかんだか、というのをgetHandメソッド内でやります。

弾痕を作る

gametukurikata.com
ここでは弾痕の実装を参考にします。
ありがたい。絵も提供されています。

Bullet.csをつくる

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bullet : MonoBehaviour {

	public GameObject bullet_hit;

	// Use this for initialization
	void Start () {

		RaycastHit hit;
		if(Physics.Raycast(transform.position, transform.forward * 100f, out hit)) {
			GameObject obj = Instantiate (bullet_hit, hit.point - transform.root.forward * 0.001f, Quaternion.FromToRotation(Vector3.forward, hit.normal));
			obj.transform.parent = hit.collider.transform;
		}
	}

	private void OnCollisionEnter (Collision col) {
		Destroy (this.gameObject);
	}
	
	// Update is called once per frame
	void Update () {
		GetComponent<Rigidbody> ().velocity = transform.forward * 10f;
	}
}

Bulletオブジェクトをつくる

f:id:kazumalab:20170217234650p:plain

簡単な感じでそれっぽく作ります。
これにBullet.csをアタッチします。

たぶんこれでOKです。
ほとんどVR要素ないですが。笑

デモ

できました。

UnityでOculus Touchを使うメモ ~ものを掴む編~

かずまです。

ようやく卒業の方が落ち着いてきたのでOculusの開発メモを残しておきたいと思います。
今回はTouchでものをつかむという部分をメモっておきます。


結構基本的なことですがSteamとはちょっと仕様が違いますので書いておこうと思います。

Touch

https://www.instagram.com/p/BQP8q9VhuVZ/
Oculus Touch#oculusすごい#卒論終わり次第#開発する#VR

これがOculus Touchです。
めっちゃいい。ボタンとかにもセンサーがついてて、指がどのボタンを触れているか、みたいなのを検知できます。
すごい!

ちょっと発売から遅れましたのですでにTouchの記事はいっぱいあるかも。。。

Oculus SDKを入れる

参考にしたサイトはこちら

framesynthesis.jp

いやーk0rinさんのブログは毎回助かる...。
Steam VRの時もお世話になりました。

ここを参考にOculus SDKをOculus Developerサイトから落としてきて入れます。

さらにOculus Avatar SDKも入れておきます。
これは手とかTouchを表示する際に必要になってきます。

サンプルシーンを可変していく

Assets/OvrAvater/Samples/Controllers/Controller.unity
を開きます。

今回はこのシーンをいじっていきます。

ものをつかんでみる

ほんとは手の形にあわせた持ち方というのを提案したかったのですがちょっと実装不足。

Touchを表す位置は
OVRCameraRig/TrackingSpace/LeftHandAnchor
OVRCameraRig/TrackingSpace/RightHandAnchor
にあります。

ここにColliderとかスクリプトを追加していきます。
まずはRight,LeftHandAnchorの子としてhavePointを作ります。

次にSphereのColliderのisTriggerをtrueにします。

次にLeftHandAnchorにOVRHand.csというスクリプトを作って貼り付けます。


OVRInputはどこでも呼べる!

UnityのInputのようにどこでも呼べるのは便利ですね。
Steamだと少し面倒だった気がする...。

enumを使ってどっちの手かを認識させる

もっといい方法ありそうですが、
Triggerを引いたときにRightかLeftを指定しないといけません。

if (OVRInput.GetUp (OVRInput.RawButton.RHandTrigger)) {
  // RightControllerのトリガーを引いた
}

あとはControllerのVelocityをとるときにどっちのコントローラーかを書く必要があります。
しかし、面倒なのでpublicのenumでInspectorでRightかLeftを選択できるようにします。

Awake()内でそれに合わせて(OVRInput.RawButton)RHandTriggerやLHandTriggerをセットします。
これで面倒はなくなります。

Oculus TouchのVelocity

OVRInput.GetLocalControllerVelocity(/* どっちのコントローラーかを記述 */);

これで取れます。

つかみたいオブジェクトの設定

2つ設定があります。

tagを"holdable"に設定します

Rigidbodyを付ける

これで再生すればできるはずです!
指とオブジェクトとかぶちゃってるのでほんとはつかんでる感じにしたいのですが...。
それは次回ですかね。

今回はこんな感じです。

第3回 技術的ログ Twitterから

かずまです。

今回もファボがたまったのでやります!
過去はこちら!
blog.kazumalab.com

知らない間のホロレンズブーム

ホロレンズが今熱い!(持ってないけど...)

MBSハッカソン

今週土日に本ハッカソンがあるらしい。
行きたい!!!(交通費&引っ越し!)

A-Frameの更新

sinariovr.com
このサイトではA-Frame 0.3.0だった....もうバージョン2個上がってる。すごい。

きのこモデル

関ゲ部にはキノコさんという方がいるらしい。
前回行ったときは会えなかったので次回トライしたい。

なんかすごい2Dアクション

カメラワークが独特で面白い!
あと絵もきれいだし、表現力すごい。

Hololensのアプリ

これなら英語バッチリ!

痩せる方かと思ったら完全なる技術ログだった

....ノーコメントで!!

unity エフェクト


UMLをテキストで書く

意外とこういうの便利。

技術ログではないけど沖縄ギークハウスのクラウドファウンディングが181万円!

すごい!!これから楽しみ!

手書き数式をLatexに...これは便利でした。


今回はこのような感じに!
ちょっとためすぎていっぱいになるので定期的にやろうかと。

広告

Asset Storeをまとめたサイトを大幅アップデートしました。
ぜひお使いください。

www.asset.techmatome.com