8耐やります!

10月8日に
崇城大学、福工大短大で
8時間耐久開発(通称、8耐)を開催します!


このイベントは8時間で何でもいいからつくろうぜ!!!というものです。
福工大短大で今年からスタートされ、毎回多くの学生が参加しています。
で、崇城大学でもやろう!と言う話になりました。
当日は、福工大短大と連携しながら進める予定です。


作るものは、
ゲーム、アプリ、絵、音楽、工作など、何でもOKです。
完成度とか気にしません。
楽しくワイワイやりましょう。


崇城大の学生の皆さん、奮って参加して下さい!!
もちろん、卒業生や社会人の方でも久々に何か作りたいぜーー!という方は歓迎です。


参加お待ちしております^^

Unityマスターブック!

この度、崇城大学で2年前から講義で教えている、
ゲームエンジンUnityの入門書をCUTT System様から発刊致します!
http://www.cutt.co.jp/book/images/978-4-87783-275-9.png


著者 和泉 信生
判型 B5判, 304頁, フルカラー, DVD-ROM付属
税込価格 3,150円(本体3,000円)
ISBN 978-4-87783-275-9
http://www.cutt.co.jp/book/978-4-87783-275-9.html


Unityは北欧発のゲーム開発・実行環境で、ゲームの大衆化を目指して作られたものです。ソフトウェア工学的にも非常に優れたデザインで、既に西欧を中心に多くのユーザーを獲得しています。(と思ったら、日本が2番目に大きな市場だということで、この1年間の広まりにびっくりしています!)


本書では、プログラムを勉強したけど何をつくろうかと考えている方が、
ゲーム開発の全体像を体験できるように
チュートリアルを使いながらUnityの機能を紹介しています。
ちなみにこのチュートリアルは、
私がUnityを好きになるきっかけとなった3DPlatformer Tutorialを基本として、
幾つかの要素を追加したものです。


3DPlatformerチュートリアルの日本語訳はこちら
(この翻訳も誤字脱字、誤訳がありなので時間を見つけて修正しなければ、、、)


皆さんがゲームの開発を通じて
情報技術に興味を持って貰えることを期待しています!!


他にも3冊のUnity関連書籍が発表されています。
どれも素晴らしい著者の方々の本なので、私も楽しみです!


Unityによる3Dゲーム開発入門
宮川義之/武藤太輔
http://www.oreilly.co.jp/books/9784873115061/


Unity入門 〜高機能ゲームエンジンによるマルチプラットフォーム開発〜
高橋啓治郎


Unityゲーム開発 (訳本)
ミッシェル・メナード
バンダイナムコ社内教本 DVD付き
http://www.sbcr.jp/support/10160.html

Arduino Uno 来た!

大学で注文してはや2ヶ月。在庫切れとのことでずーっとどかなかったArduinoがついに来ました!!
というか、Amazonで注文しなおして2日で来たのですが、、、


ちょろちょろーっと、触ってみました。
おもしれーーー!!!
今までソフトウェア一本だったので、フィジカルコンピューティングには憧れていたのです。


電子回路は大学の実験でやった以来で感覚がなかなかつかめなかったのですが、
とりあえず、初期キットのセンサー類ひと通りは試してみました。
抵抗とか、入れるべき部分がいまいち微妙なのは、置いておくとして。


記念に、シリアルポートからLEDをオン/オフするバージョン。
シリアル接続で出来るってことは、言語も選び放題!!


#define LED 9

int val = 0;

void setup()
{
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  
  if(Serial.available()){
    int r = Serial.read();
    Serial.println(r);
    if(r == '0'){
      digitalWrite(LED, LOW);
    }else{
      digitalWrite(LED, HIGH);
    }
    delay(10);
  }
  
}

リプレイフレームワーク for Unity

格闘ゲームなどで決着がついたシーンをリプレイ表示するための、リプレイフレームワークを作ってみました。
使えるかどうか分かりませんが、アルファバージョンをGPLにて公開します。
(注)ライセンスは変える可能性があります。

デモ動画


使い方解説動画


構成

クラスの関係は次の通りです。

ReplayManagerを操作して記録や再生を制御します。サンプルに含まれているReplayManagerGUIを参考にしてください。

初期発見と初期化処理
  1. ReplayManagerのInitializeを呼び出すと、シーン中に存在する全てのReplayableコンポーネントを持ったゲームオブジェクトを探し出し、SendMessageを使ってReplayResetを呼び出します。
  2. Replayableを持ったゲームオブジェクトに、ReplayResetが定義されたコンポーネントが含まれていた場合、ReplayResetが呼び出されます。
    1. 初期化処理は任意のコンポーネントを作成し、ReplayResetと言う関数の中で行います。
記録開始と終了
  1. ReplayManagerのStartRecordingを呼び出すと記録が開始されます。
  2. ReplayManagerのStopRecordingを呼び出すと記録が終了します。
リプレイ開始と終了
  1. ReplayManagerのStartReplayを呼び出すとリプレイが開始されます。
  2. ReplayManagerのStopReplayを呼び出すとリプレイが終了します。
プレイバック
  1. ReplayManagerのPlaybackを呼び出すと指定した記録データを各Replayableに設定します。

拡張

任意のコンポーネントを作成し、ReplayTemplateやサンプルを参考にして、該当する関数を実装してください。(いいモジュールができたら教えてくださいw)

public class SomeComponent : MonoBehaviour
{

	public void RecordStarting ()
	{
		//記録開始時の処理を記述します。
	}

	public void RecordStopped ()
	{
		//記録終了時の処理を記述します。
	}

	public void ReplayStarting ()
	{
		//リプレイ開始時の処理を記述します。
	}

	public void ReplayStopped ()
	{
		//リプレイ終了時の処理を記述します。
	}

	public void ReplayReset ()
	{
		//初期化、リセット時の処理を記述します。
	}

	public void ReplayRecording (int dataIdx)
	{
		//フレームごとの記録処理を記述します。
	}

	public void ReplayPlaying (int dataIdx)
	{
		//特定のフレームのリプレイ処理を記述します。
	}

	public void ReplayPlayingComplete (float t)
	{
		//フレームごとのリプレイ処理を記述します。
		//引き数tには、リプレイ開始からの経過時間が渡されます。
		//tはフレーム間で補完を計算するなどに利用できます。
	}

脳波 x Unityでドラッグレース

先日、脳波でネコミミを操作するデモ動画をみてから、脳波おもしろい!ということで。
http://www.youtube.com/watch?v=w06zvM2x_lw

Neurosky社から発売されているMindSetを購入して、やってみました。
https://store.neuro-bridge.com/index.php?main_page=product_info&cpath=1&products_id=1
これは、APIも公開されているので、色々と遊べます。


こんな感じ


自分の脳波の集中力(Attention) VS リラックス(Meditation)でドラッグレース

動画をアップしました。
プレイしてる様子、、、ただ見てるだけ、、、笑

MindSet2台を接続して、2人の脳波(Attention)で対戦するのもやってみました。
なかなか面白いのですが、思ったようにコントロールするには修業が必要なようです。


で、MindSetを買うと、Unityのプラグインが付いてきますが、プラグインはUnityのプロバージョンでしか使えません。
データはBlutooth接続からシリアルポート経由で取得できるので、
ということで、付属していたCベースのソースコードC#に書きなおして、無料のUnityでも使えるようにしてみました。
折角書いたのでGPLで公開します。(あまり需要無さそうですが)
http://www.cis.sojo-u.ac.jp/~izumi/codes/MindsetUnity.unitypackage


使い方:
1.パッケージをインポートします。
インポートすると、いくつかエラーが出ます。
シリアルポートからの読み込みにSystem.IO.Portsパッケージを使っていますが、このパッケージはUnityが使用している.NET 2.0 Subsetには含まれていません。


2.Edit->Project Settings->Playerを開きます
3.Optimization- > Api Compatible Levelを .NET 2.0にします
4.Unityを再起動します
5.MindsetReaderをMainCameraなど(シーン中のオブジェクトなら何でもいい)に追加します
6.インスペクターでCom Portの値を、Mindsetを接続したシリアルポートの名前に変更します
これで基本的な準備完了です。
MindsetReaderのStartReadingを呼び出せば、読み込みが始まります。
MindsetLogger, MindsetLighter, MindsetLoggerGUIがサンプルとして付属しています。


7.MindsetLoggerGUIを適当なGameObjectに追加します(MainCamera)でもOKです
8.インスペクターでMindsetLoggerGUIのReaderに5でMindsetReaderを追加したオブジェクトをドラッグします
プレイして、MindSetが正しく接続されていれば、データが送られてきます。


MindsetLoggerGUIの中でハンドラを登録しています。
このハンドラは、Mindsetからのデータを読みだして、必要に応じて呼び出されます。
新しくMindsetReaderから値を呼び出したい場合は、新しいスクリプトでハンドラを登録するように記述して、7〜8の作業を行って下さい。
Logger, Lighter(ライトに追加してください), LoggerGUIのサンプルが参考になると思います。