Author Archive

カスタムビルド解像度設定がリビルドで変更されない場合の対処

By |

カスタムビルド解像度設定がリビルドで変更されない場合の対処

Unityでカスタム解像度を使ってビルドするとき、選択された会社名とアプリ名にリンクされたその解像度でプレーヤー設定ファイル を作ります。 問題は、その後そのカスタム解像度を変更してプロジェクトを再構築したい場合でも、古いプレーヤー設定ファイルがあるコンピューターに表示されるものが一度設定した解像度になることです。 たとえば、解像度を800×600のカスタムサイズに設定してビルドした場合は、このようになります:   後でカスタム解像度を1920×1080に変更して再ビルドしても、同じ800×600の解像度が表示されます。   その解像度を適切な解像度に設定するには、2つの方法があります:   最初の方法は、ビルドプレイヤー設定に新しい会社名を設定することです。 その後、その名前であなたのシステムに新しいプレイヤー設定フォルダを作成します。   二番目の方法は、レジストリファイル内の設定フォルダを見つけて削除することです。 そのようにあなたの新しい解像度設定のファイルを作成します。 そのファイルはレジストリエディタのHKCU / softwareの中にあります。

Unity HubでインストールしたUnityのVuforiaプラグインをアップデートする方法

By |

Unity HubでインストールしたUnityのVuforiaプラグインをアップデートする方法

Unity Hubはとても便利で新しい機能ですが、Vuforiaをアップデートする場合、少し面倒な手順が必要になります。 最新のUnityのバージョンを既にインストールしていて、そのUnityと共にインストールされたVuforiaのバージョンよりも更に最新のVuforiaがリリースされている場合、下記の手順でVuforiaをアップデートできます。 Unityを起動するときにVuforiaは無効の状態になっています。(Image1)。 とりあえず、Vuforiaを使用するため、 File>Build Settings>Player Settigsボタン または Edit>Project Settings>PlayerからPlayer Settingsを開き、 (Image2) Player settingsのVuforia Augmented Realityオプションをチェックする必要があります。 (Image3) Vuforia Configurration Pannelの出し方 すると Vuforia Configuration Panel でVuforia Update のリンクをクリックできるようになります。(Image4)。 Image1 Image2 Image3 Image4   ここで一旦Unityを閉じてください。 ダウンロードが終わったら、 VuforiaSupportInstaller-Windowsの圧縮ファイルを解凍し、UnitySetup-Vuforia-AR-Support-for-Editorのイントラーをダブルクリックします。 UnitySetupアイコンを選択してください(Image5)。 インストールを続いて、Destination Folderのページを見えたらBrowseボタンをクリックしてください(Image6)。 ここで、Vuforiaの最新を適用したいUnityのバージョンの実行ファイルが置かれているパスを指定します。 Image5 Image6 Program FilesフォルダーにあるUnityフォルダーを選択してください(Image7)。(注意:Unity Hubのフォルダーではありません。Unity自体の実行ファイルがあるフォルダを指定する必要があります。) Image7 それでUnityをアップデートするバージョンを選択し、OKボタンを選択してください(Image8)。 Image8 次のウインドで選んだフォルダーを確認できます(Image9)。それでインストールを最後まで続けてください。 Image9 Unityを起動するとVuforiaがアップデートされていることが確認できます(Image10)。 Image10

Unityでのアプリ内のムービー表示方法と、常に正しい解像度と比率を維持するように設定する方法。

By |

Unityでのアプリ内のムービー表示方法と、常に正しい解像度と比率を維持するように設定する方法。

How to create a movie screen with unity, and to set it to keep the right resolution and ratio at all time.  ユニティでムービー画面を作成する方法と、常に正しい解像度と比率を維持するように設定する方法。   First you will need to import a video, the list of the supported format in unity can be found here :  最初にビデオをインポートする必要があります。サポートされているフォーマットのリストはここにあります:  https://docs.unity3d.com/Manual/VideoSources-FileCompatibility.html   Next, to be able to render the…

Vuforiaで大きいオブジェクトを表示するためのアドバイス

By |

Vuforiaで大きいオブジェクトを表示するためのアドバイス

Vuforiaで大きいオブジェクトを表示するためのアドバイス マーカーとそのサイズとの関係 VuforiaのImageTargetと表示されて欲しいオブジェクトのサイズは相関関係があります。 例えばオブジェクトを2m*2mのサイズで表示したい場合、ImageTargetのサイズを0.2m*0.2mにして、 印刷したイメージも0.2m*0.2mサイズに出力をしなければなりません。 もし正しく設定されていなければ、オブジェクトが表示されるときの比率が壊れてしまいます。 オブジェクトをその場に残す方法 大きいオブジェクトの全体を表示するためにVuforiaのExtended Trackingはとても便利です。 ImageTargetのオプションをEnableにすると、 イメージからスマートフォンのカメラがちょっと離れてTrackingがなくなっても、 オブジェクトが残ります。 ARCameraのゲームオブジェクトのWorld Center ModeオプションをCameraにすると、 オブジェクトを中心に回り込むような表示がかのうです。 イメージターゲットは床でも壁でも、Unity内でオブジェクトのローテーションを変えることで、対応可能です。 マーカーとカメラとの角度で発生する問題 オブジェクトのカメラを通しての見え方(カメラアングル)はマーカーを 認識したときにデフォルトの仰角が決まります。 床においたマーカーとスマートフォンのカメラとの角度に関する注意点 そのため、床にマーカーを置きオブジェクトを表示した場合、 カメラのポジション(デフォルトの仰角)はマーカーを認識した際決定されるので、カメラを水平にして、 オブジェクトが正面ではなく少しずれた表示になります。 床にマーカーを配置した際のスマートフォンのカメラとの距離に関する注意点 マーカーを床に置くとカメラとイメージが必然的に遠く離れるため(ユーザが立っている場合) マーカーとユーザーのスマートフォンのカメラとの角度が浅くなるので認識しずらくなります。 大きいオブジェクトのマーカーは壁に配置がおすすめ 壁にマーカーを配置する場合はその問題はないでしょう。 イメージを壁に置いたらその高さを測定し、 Unity内でのImageTargetの高さと現実の世界のイメージの高さを合わせてください。 イメージか、QRコードか 最近QRコードはとても人気になりました。雑誌とかデパートの製品とかにどこでも使みかけます。 VuforiaもQRコードが使えますが色々悪いポイントがあります、 大きな欠点はトラッキング(カメラからの認識)の問題です。 大きいオブジェクトを表示するには比較的大きなQRコードコードを全部をスキャンする必要があります。 カメラがQRコードを認識する際、スキャンの角度やライトの明るくさは足りないとTracking機能が正しく動作しないことが多くなります。 一方、イメージであればQRコードよりも認識の向上が期待できます。 イメージであれば、画像の一部を認識できれば、マーカーとして機能するからです。 (※QRコードは全体が認識されないとオブジェクトが表示されない) 認識率を上げるため適切な写真を選ばなければなりません。 Vuforiaが推奨するイメージの条件は下記の三つです。1)ディテールが多いイメージ。 →頂点が画像の中に多く含まれるイメージ 2)いいコントラストのイメージ。 3)同じパターンではなく、色々な形が含まれている写真のほうがいい。 →有機的なパターン https://library.vuforia.com/articles/Best_Practices/Attributes-of-an-Ideal-Image-Target 以上がカメラにやさしいイメージの条件ですが、一つ付け加えるならば方向が分かりやすいほうがよいでしょう。 3つの条件にあう写真に画像ソフトでマークを付けくわえれば、配置する際に人間にとって便利です。

HTC VIVEでポジションリセンターを行う(UNITY)

By |

HTC VIVEでポジションリセンターを行う(UNITY)

Oculus Riftに比べて、HTC Viveのドキュメントは決して豊富とはいえません。 UnityのUnityEngine.VR.InputTracking.Recenter(); の関数が使えないなど、UnityのネイティブVRサポートも正しく動作しないことがあります。 例えば、作成中のゲームでStanding ModeやSeated Mode使おうとした場合SteamVRのValve.VR.OpenVR.System.ResetSeatedZeroPose (); を利用することになるとおもいますが、Room-Scaleでのプレイヤー位置のリセットの場合はその関数は動かないことを前提としえいる為利用することができません。 そこでルームスケールでの位置リセットを実現するため、スクリプトを作成しましたのでシェアしたいとおもいます。 上記のスクリプトでは、VRの体験者はPlayRoomのRoomScale内のどこでもいても、ゲームを起動するとスタートの際、ゲーム内の初期ポジションに配置されます。 そしてゲーム始まった後、またその決めた場所に戻させるスクリプトです。 ゲームが一旦始まった場合でも矢印↑キーをおせば、ゲームの初期ポジションに戻すことができます。 細かい部分についてはまた次回に説明したいと思います。    

Go Top