Makey Makey
電気が通るものならなんでもキーボードにしてしまうやつです。
本体はこれ↓
パソコンに本体をつないで、ミノムシクリップを自分の体と、バナナなどの電気が通るものに通して、話ができたらキーボードが押したことになる。
昔展示で使った時はこんな感じになりました。
小麦粘土も電気が通るのでこれをボタンにしたりできます。
Makey Makey - An Invention Kit for Everyone - 電子工学 実験 発明キット
- 出版社/メーカー: スイッチサイエンス
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
AR
2年前ぐらいに買って、展示で使って以来全く使ってませんでしたが、久しぶりに遊びたくなりました。
以前使った時はProcessingでやりましたが、今回はUnityで何かしたいな〜
この記事みたいな感じで、ARマーカーにタッチしたら色とかライティングが変わるとか面白そう。って言うか記事のやつって深度センサーで物体の形をとっているらしいからTango使ったらできるのかな?kinectでやってるみたいですが。
Unity
ARちかmakeymakeyを使うので複雑に見えますが、やることは単純にキー入力でマテリアルの色を変えるだけです。
ここら辺を組み合わせて、スペースを押したら色がランダムで変わるやつができました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class material_change : MonoBehaviour {
public Color colorStart = Color.red;
public Color colorEnd = Color.green;
public float duration = 1.0F;
public Renderer rend;
void Start() {
rend = GetComponent<Renderer>();
}
void Update() {
if (Input.GetKeyDown (KeyCode.Space)) {
float lerp = Mathf.PingPong (Time.time, duration) / duration;
rend.material.color = Color.Lerp (colorStart, colorEnd, lerp);
}
}
}
makey+ARマーカー
電気が通ってマーカーにもなりそうなものがなかったので、マーカーとボタンは別々にしました。
makey makeyのスペースのところにさして、
完成がこちら
最後に
makeymakey自体は単純ですが、組み合わせを考えたら色々面白いことができそうです。何も思いつきませんが。
追記:MMDモデルのマテリアルを変えるっていうのをしようと思ったのですが、指定したマテリアルを変えることができませんでした。
ここからの話は意味不明だと思います。未来の自分への備忘録です。
一つのオブジェクトに複数のマテリアルがついていて、スクリプトをつけたらそのうちの一つしか色変更されない。
インスペクタでマテリアルを指定して、そのマテリアルの色を変更するのってどうやるんでしょうね。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ginkitune : MonoBehaviour {
//public Material material;
public Color color1 = Color.red;
public Color color2 = Color.green;
public float duration = 1.0F;
public Renderer[] rend;
void Start() {
//rend[0] = GetComponent<Renderer>();
//rend[1] = GetComponent<Renderer>();
}
void Update() {
//color1 = GetComponent<Color>();
if (Input.GetKeyDown (KeyCode.Space)) {
//float lerp = Mathf.PingPong (Time.time, duration) / duration;
rend[0].material.color=color1;
rend[1].material.color=color2;
//rend.material.color = (colorkami);
}
}
}
Rend(gameobject?)を指定することで別々のオブジェクトなら一つのスクリプトで色を変えることができるのですが
MMDmecanimで変換されたFBXの構造の問題ですかね?
「rend.material.color=color1」のmaterialって指定するものではなく普遍的?な存在???だからここに指定したやつをつけても意味がなかった。
キタキツネをぎんぎつねに変えたかっただけなのに
モデルはヘナ羊様のキタキツネアニメ版です。かわいい