2013年12月25日水曜日

Unity Advent Calendar 25日目

この記事は Unity Advent Calendar 25日目の記事です

メリークリスマス!

Unity Advent Calendar 25日目の担当@Zi_suです。
ネタ何にしようかな、自作してきたスクリプトとかゲームとか色々まとめて記事を書こうかなとか思っていましたが
突如現れたこのキャラについて書くしかないと天の声がしました。


そう!オープンソース系ヒロインのユニティちゃんです!

ユニティちゃん基本情報
ゲームエンジンunityが贈るオープンソース系ヒロイン!
本名:大鳥こはる
声優:角元明日香(かくもとあすか)さん
誕生日:8/13
キャラデザ:ntnyさん









オープンソース系ヒロインのユニティちゃんでどんなゲームを作っていこうかと、想像が膨らみますね。
イラストと3Dモデルからどんなゲームで活躍してくれそうか想像していきましょう。

力強い目!
これはもうアクションや格ゲーの目ですね
立派な中段蹴り!揺れ物も無いので軽そう!左手が蹴りの勢いに任せて逃げてるのが女の子っぽい。脇も空いている。

かわいい。3Dアドベンチャーもいけます。ラブデスとか。エロはunity仮面が釘刺してましたね。








バスケットボール?が似合う。スポーツゲームもいけます。

オープンソース系なだけあって結構色々活躍してくれそうですね。

プログラミング初めて、ゲーム作ろうってなって始めはコマンドプロンプトに文字出してダンジョンRPG創るのも楽しいのですが、
頭のなかで拡がる世界を作ろうと画像を出して、3Dモデルを出して、スキンアニメーション入れて、エフェクト考えてってしていくと、ゲームルール考える以外のところに労力割かれて、しかもそれら専門分野化してるしひたすらハードルが上がっていきます。
サンプルで出るモデルが可愛く無いとやる気も上がらないでしょう。嫁への愛にまさるやる気はないんです。
MMD4Mecanim+Unity+Oculusで嫁召喚してキャッキャしながら楽しく学習ができる時代がきてます。MMDモデルだと様々な権利が絡んでくるとこですが、ユニティちゃんならオープンソース系を謳っているし、もっと気軽に使えるでしょう。
3Dモデルで配布されて、モーション、フェイシャルも自由に作れるのか気になるところ。

まだまだユニティの勢いは止まりませんし、ゲーム外で使われるケースも増えてます。
色んなデバイスの対応が容易ってのも大きいです。Noviant Falconの正しい使い方とか、超音波収束装置とか。KickStarterで出てくる色んなデバイスとかもunity対応してくるでしょう。
fuzeなんてイベントもありますね。

やりたいなと思ったら、個人で即実装して人に見せて、どんどんスピード上げてリアル充実させましょう。

------------------------終わり----------------------

ユニティちゃん想像ばっかりしてても仕方ないので、unity2Dの機能使ってスプライトのスクリプト調べがてら、ここ一年ぐらいゲーム作ってなかったし五時間ぐらいかかってしまってユニティちゃんで2Dゲームやってみたのがこちら。
画像クリックで別ウィンドウで開きます。
操作方法:←→キーで移動、↑キーでジャンプ
CommingSoonのロゴマークを集めましょう。

使用したアセット類
NGUIは説明不要として、RotorzTileSystemは、unityエディター上でタイルマップ作るのに便利なアセットです。

こんな画面でブラシでタイルを選択して、なぞるだけでマップが出来ます。
タノシイ!✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌

2013年12月14日土曜日

初めてのOculusアプリ開発

久しぶりの更新です。
Oculus Rift Advent Calender 2013の14日目を担当します。@Zi_suです。
今回、初めてのOculusRiftアプリ開発して感じたことを書いていきます。

Oculusを買って開発しようとなったのは第一回Oculus Game Jamがきっかけです。unityの対応がとても手軽、テレビ画面を見るのとは違う体験ができる。目の前に3D美少女が現れる。未来のゲームきたぞ!と熱くなりました。共に参加していた皆様ありがとうございました。

開発キットが届いてから何を作ろうかと想像をふくらませ、いっしょにトレーニングを参考に筋トレのやる気を引き出すものにしようと至りました。
プログラマーって座りっぱなしでおやつに飲み物自由なのが多いせいかお腹まわりがどんどんマシュマロ男子になっていくので、たるんだお腹を鍛える腹筋トレーニングを目指しました。たるんだお腹何とかするなら有酸素運動ですけど。

そして出来上がったものがこちら。
MikuMikuHukkin-α

1.開発経緯
 実は腹筋ではなくダンベル持ち上げるアームカールを、ミクさんをお姫様抱っこしてるように見せよう!と開発開始しました。kinect使用してみて、部屋が狭すぎてろくにキャプれない。何とかキャプれてもアームカールの動きと相性が悪いのか飛びまくる。お姫様抱っこなんて幸せな気分にもなれず。鉄ダンベルの感触がとても気分を盛り下げる。
 LeapMotionも考えたが、力尽きて落とした時とかに危険。恐らく手の認識が出来ない。kinectを使わず、素直にヘッドトラッキングを利用した腹筋トレーニングへ変更。
 思ったよりも、腹筋の動作で首を持ち上げるのと起き上がる動作に違和感を感じなかったので続行。あれこれモーフ入れたり、喋らせようとしたり調べながら一週間ほどでα版として出来ました。

2.開発してみて
 oculus側のスクリプトとか設定とかホント何もせずにprefab放り込んで、MainCamera消したら、もう画面がoculus用になったので導入とても楽でした。
ただ、何かoculus付けて画面を確認すると、両目で違和感がある。左目カメラと右目カメラの配置とミクさんの配置の関係で視界に差がありそう。
 腹筋回数のHUDとか出そうかと思ったけど、ゲームゲームしてないほうが体験として良くなるかなと思って入れませんでした。実際ないほうがミクさんに集中できていいですね。
 ヘッドトラッキング方向にレイを飛ばして、ミクさんの顔周りとあたったら、照れモーフをPlayMakerから設定。これも遷移図でみるとわかりやすくていい。
 メガネかけてるとoculus被るときメガネ外して、またつけてってのがとても面倒う。
これはもうレーシックとか裸眼視力上げるしかない。コンタクトにするか。
 アドベントカレンダー初日の@hecomiさんのリップシンク記事を見て、ミクさんにしゃべってもらうのも、スクリプト入れて、Talkメソッドを一回呼ぶとOKで凄い。@hecomiさんありがとうございます。

3.まとめ
 初めてのoculusアプリ開発でしたが、ほとんど困ることはなく、やりたいなと思ったことはググったり、ツイッたりしたらoculusクラスタの皆さんが書いていたことが多くてとても助かりました。コミニュティの力って凄いです。
 oculusでVR世界に入ってる感動が強いので、それなりに景観を作らないと割りと冷めた気分になってしまいがちでした。背景ブルースクリーンとか、ベッドとミクさんだけとかだと慣れると冷めます。異空間とか異世界感とかピクサー感を出していくとより楽しめそうに思います。
 Oculusで拡がる新しい体験を目指して、今後も開発していきます。kinect2と広い部屋でOcueamClubがやりたいですね^^

明日は@Wizapplyさんです。よろしくお願いします。
 



2013年8月27日火曜日

Redmineインストールメモ

自分でRedmine使用するために参考にしたサイト

Redmine本家
http://redmine.jp/guide/RedmineInstall/

MySQL入れる手順。mysql56が最新のようでそっちに変えてインストールした。 http://d.hatena.ne.jp/heavenshell/20120814/1344952129

Redmine立ち上げる手順。rakeとか何とか色々。 http://qiita.com/janus_wel/items/06dae0dec1ff1a886d54

2013年7月25日木曜日

LeapMotion+Unity ジェスチャー閾値の設定

一部で話題にLeapMotionが発売開始されました。
手や指、道具(鉛筆など細長い物)を認識して位置や方向を高精度で取得できるデバイスです。
kinectの手指限定版みたいなものです。
大いに期待して開発者登録を済ませDevKitの頃から触っていくなかで、PVのようにスラスラと思うがままに操作ができる夢のデバイスかという、その幻想はぶち殺されたわけでした。

製品版が日本にも届きはじめてアレコレと各所で記事が上がって賑わっているのを見て、私も参加させろと記事を書くことにしました。

導入記事などはあちこちで書かれていますので、今回はドキュメントから見つけたジェスチャーの閾値設定の変更方法をご紹介します。
C#版のAPIReferenceでUnity上で動作を確認しています。
ドキュメントの場所は
docs/Languages/CSharpandUnity/API/class_leap_1_1_config.html

スワイプジェスチャーを試していて、かなり早く動かさないと認識してくれない。NUIとしてつかれてしまって話にならない。閾値の設定変更があります。
Leap.ControllerクラスのConfigプロパティから毎フレーム基準値を変更します。
基準値変更関数
Config.SetFloat(string key, float value);
変更した基準値をセーブする。
Config.Save();

実際のコードにするとこのようになります。

private Leap.Controller controller;
//初期化時
public void Start(){
    controller = new Leap.Controller()
}

//毎フレーム更新処理
public void Update(){
    controller.Config.SetFloat("Gesture.Swipe.MinLength", 0.0f);
    controller.Config.SetFloat("Gesture.Swipe.MinVelocity", 10.0f);
    controller.Config.Save();
}

どうやら毎フレーム設定する必要があるようです。そこに気をつけてください。

スワイプジェスチャーの場合の設定だけですが、ドキュメントには全部の設定可能なパラメータが載っています。納得いく認識になってない方は、色々調整してみてはいかがでしょうか。


プロモーションビデオに出てるようなスラスラと思うがままに動かすには、パラメータの調整やアルゴリズムの最適化などソフトウェア側で工夫する必要がありそうですね。



このガジェットでエラーが発生しました