ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
    123
45678910
11121314151617
18192021222324
252627282930 
<< November 2018 >>
ARCHIVES
CATEGORIES
UnityとVuforia
Unity5Vuforia4がリリースされました。

Unity5はフリー版でプロ版の機能が使えるようになっていました。
Vuforia4は開発で使う際にライセンスキーを入力が必要になりました。
カメラ画面下部分に「Vuforia」の文字が表示されるようにもなっています。

iOSだけですが、組み合わせて動作確認してみました。

1. Unity5 + Vuforia4
 iPhone6でカメラビューが起動しませんでした。。
 まだUnity5には対応していないのでしょうか?

2. Unity4.6.2 + Vuforia4
 こちらは問題なく起動しました!
 確かにカメラ画面下部分に「Vuforia」の文字が表示されるようになっています。
 これは今後お客様に説明が必要ですね。。

「Vuforia」文字が表示されるようになったのは、けっこう気になります。。
| unity & AR | 17:16 | comments(0) | - |
Unityでステータスバーを表示するアプリのステータスバーをスプラッシュ画面の間だけ非表示にする
ちょっとややこしいですが、基本ステータスバーありのUnityアプリで
スプラッシュ中だけステータスバーなしにしたいという要望があり対応しました。

いろいろ試して以下でOKでした(iPhone版)。

1.Unity側はStatusBar Hiddenはチェックしない。
2.ビルドされたプロジェクトのinfo.plistの「Status bar is initially hidden」をYES
3.UnityAppController.mmを修正

@implementation UnityViewControllerBaseのところにステータスバー関連メソッドを追加

// ステータスバーの非表示
- (BOOL)prefersStatusBarHidden
{
  return self.view.tag == 999 ? NO:YES;//NOのとき非表示となる
}
//ステータスバー文字を白くする
- (UIStatusBarStyle)preferredStatusBarStyle {
  return UIStatusBarStyleLightContent;
}
4.アプリが起動したときにステータスバー更新を呼ぶ
UIViewController * controller = UnityGetGLViewController();
    controller.view.tag = 999;
    [controller setNeedsStatusBarAppearanceUpdate];
    
    この例では、起動したタイミングでtagに999をセットして、
    prefersStatusBarHiddenで999になっていたらステータスバーを表示するようにしています。
| unity & AR | 15:56 | comments(0) | - |
vuforiaでのエラー(iOS)
Unity4.6 vuforiaのSDK3.0でiOSソースをビルドして実行するとエラーになります。
そのときはinfo.plistに「Initial interface orientation」を追加して、アプリにあった画面の向きを選択します。
普通の立て向きだったらPortrait (bottom home button)

バージョンアップのたびにいろいろあって大変です。。

 
| unity & AR | 13:24 | comments(1) | - |
unityでの大きさ単位
unityでは3Dオブジェクトの大きさをscaleで指定します。
これがどれくらいの大きさかわからなかったので調べたところ、1scaleが1メートルでした。
positionの方も1メートル単位のようです。

これにあわせれば、実際の大きさ表示と近くできそうです。
| unity & AR | 14:26 | comments(0) | - |
unityのアンビエント設定
 unityではライトを設置することで、画面に明かりができて
それに応じた影が3Dにつきます。

一部からの明かりではなく、全体を明るくするときの設定を忘れてしまうのでメモしておきます。

メニューのEditからRender Settingsを選択します。
画像

inspectorが表示されます。ここに「Ambient Light」があります。
デフォルトで黒っぽい色になっているので、白にしてやります。
これで、全体的に画面が明るくなります。

画像
| unity & AR | 13:33 | comments(0) | - |
3D素材
 unityを使ってなにかつくろう!
と、思っても3Dモデルは専門外なのでつくれません。。

良い素材サイトがないかとさがしてみたところ
turbosquid」がみつかりました。

画像

会員登録は必要ですが、たくさんの素材がダウンロードできます。

無料、有料の素材を検索してみつけることができます。
無料だけを見たい場合は、左下に条件を入力します。
画像
ここに「0」から「0」と入力すれば無料のみ表示できます。

今後素材が必要なときに役立ちそうです。
| unity & AR | 13:35 | comments(0) | - |
長崎西洋館お化け屋敷3【ARバージョン】
長崎西洋館お化け屋敷3【ARバージョン】が7/28(土)からスタートしています。

今回は「ARバージョン」ということで、スマホ、タブレットを使って
ARでお化けをみることができます。
お化け表示中にお友達にカメラボタンを押してもらえば
お化けと記念撮影もできます。

公式アプリはPlay Store、App Storeで「西洋館」で検索したらすぐに見つかります。

・Play Store

・App Store

この西洋館公式アプリ開発に、弊社も技術協力していて、特にAR部分をメインにやりました。

ARのSDKは「Vuforia」を、アプリ作成には「unity」を使用しています。
「unity」はゲーム作成ツールだけに、いろいろな表現ができていいです。
様々なアクションをするお化けたちを西洋館で見つけてみていただければと思います。

ちなみに、メインのお化け屋敷は、かなり怖いと評判です。
非日常を体験して大きな叫び声をあげたい方は、行かれてみてはいかがでしょうか?

| unity & AR | 09:51 | comments(0) | - |
ネットワーク接続状況
 unityでネットワーク接続状況を取得する方法を調べました。

Application.internetReachability」を参照することで接続状況がわかります。

if (Application.internetReachability == NetworkReachability.NotReachable){

  //接続されていないときの処理

}

else{

  //接続されているときの処理

}


状態は以下の3つがあります。

NetworkReachability.NotReachable;//つながっていない

NetworkReachability.ReachableViaCarrierDataNetwork;//つながっている

NetworkReachability.ReachableViaLocalAreaNetwork;//つながっている(wifi)


iOSで実行したところ、接続状況をチェックできました。

プロパティ参照になっていますが、都度接続状況をチェックしてくれるようです。

呼び出したときに次の処理に入るまで少しですが間がありました(iPhone3GSで確認)。


アプリ実行 → 接続チェック(OK)→ 接続切る → 接続チェック(NG)ときちんと動作されました。


| unity & AR | 11:10 | comments(0) | - |
音を再生する
 unityでは音声ファイルも簡単に再生できます。
mp3、wavなどが使用できます。

まずは、プロジェクトに追加します。
音声ファイルを「project」のところにドラッグ&ドロップで追加します。
画像

追加された音声ファイルに対して設定します。
とくにこだわりがなければ「3D Sound」はオフにしておきます。
画像

この音声を再生したいgameobjectに「Audio Souse」を追加しておきます。
メニュー →「Component」→「Audio」→「Audio Souse」

次にgameobjectにスクリプトを追加して、
publicでAudioClip型のプロパティを追加します。
そのプロパティに追加した音声ファイルをセットして準備完了です。

画像

あとはスクリプトで音声ファイルを再生します。

BGMとして繰り返し再生する場合。
gameobject.audio.clip = 音声ファイル;
gameobject.audio.loop = true;
gameobject.audio.Play();

効果音として再生する場合
gameobject.audio.PlayOneShot(音声ファイル);

効果音としての再生は他の音と同時にならすことができて便利です。

| unity & AR | 16:22 | comments(1) | - |
親オブジェクトの指定
 最初から画面にあるオブジェクトについては、
unity画面の階層ビューで親子関係をセットできますが
プログラム内でInstantiateして作成したオブジェクトには親がありません。

Instantiateして、あるオブジェクトの子にしたい場合は以下のように書きます。

//p_parentを親にしたいオブジェクトとします。
GameObject retObj = (GameObject)Instantiate(プレファブ);

//作成されたretObj.transform.parentに親にしたいオブジェクトの transformをセット      
retObj.transform.parent = p_parent.transform;

これで親子関係ができます。
| unity & AR | 15:51 | comments(0) | - |
| 1/2PAGES | >>