UDN
Search public documentation:

MobileScreenOrientationJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > モバイルホーム > モバイルスクリーンの方向

モバイルスクリーンの方向


概要


モバイルデバイスには通常、 ポートレートランドスケープ の 2 つのスクリーン方向が備わっています。デバイスを垂直方向に長くなるようにして持つと、ポートレート モードになります。ランドスケープ モードとは、横方向に長い場合を指します。

portrait.jpg landscape.jpg
ポートレート ランドスケープ

「Unreal Engine 3」で作成するゲームは、どちらの方向でも設計することができます。ただし、ポートレートまたはランドスケープのどちらか一方でプレイしなければなりません (両方ではプレイできません)。また、スクリーンの方向はプレイ中に変更することができません。

方向の設定


「Unreal Engine 3」で作成されるゲームはデフォルトでランドスケープ モードとなっていますが、ゲームをポートレート モードで表示すべき場合は変更することができます。

iOS デバイスのための方向設定

iOS デバイスのためのスクリーン方向の設定値は、.plist ファイル内にあります。デフォルトの方向設定値をオーバーライドするには、望みの設定値を UDKGame/Build/iPhone ディレクトリ内の UDKGameOverrides.plist ファイルに追加します。スクリーンの方向に関係する key が 2 つあります。 UIInterfaceOrientationUISupportedInterfaceOrientations です。 UIInterfaceOrientation は、起動時の方向を決めます。一方、 UISupportedInterfaceOrientations は、許可されている方向を指定するものです。「Unreal Engine 3」では、 UIInterfaceOrientation の設定項目だけを使用していますが、両方の項目を適切に設定することは大切なことです。

これらの plist の key に有効な値は次のようになります。

portrait_up_th.jpg portrait_down_th.jpg landscape_right_th.jpg landscape_left_th.jpg
UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeRight UIInterfaceOrientationLandscapeLeft

ポートレートモードでゲームを表示するように設定するには、 UDKGameOverrides.plist ファイルで、既存のオーバーライドの後に次を追加します。

  <key>UIInterfaceOrientation</key>
  <string>UIInterfaceOrientationPortrait</string>
  <key>UISupportedInterfaceOrientations</key>
  <array>
     <string>UIInterfaceOrientationPortrait</string>
      <string>UIInterfaceOrientationPortraitUpsideDown</string>
  </array>
  

変更されたファイルには、次のようなものが含まれているはずです。

UDKGameOverrides.plist
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
     <dict>
        <key>UIFileSharingEnabled</key>
        <true />
        <key>CFBundleIdentifier</key>
        <string>com.udn.example</string>
        <key>CFBundleName</key>
        <string>MyUDKGame</string>
        <key>CFBundleDisplayName</key>
        <string>UDK Game</string>
        <key>UIInterfaceOrientation</key>
        <string>UIInterfaceOrientationPortrait</string>
          <key>UISupportedInterfaceOrientations</key>
          <array>
            <string>UIInterfaceOrientationPortrait</string>
            <string>UIInterfaceOrientationPortraitUpsideDown</string>
          </array>
     </dict>
  </plist>
  

自動回転


上記にあるように、各方向 (ポートレートとランドスケープ) には、デバイスの持ち方によって、2 つのバリエーションがあります。「Unreal Engine 3」によるモバイルゲームのデフォルトの動作は、デバイスに合わせて、これら 2 つのバリエーション間で自動的に回転するというものです。この動作は通常問題を起こすことはありませんが、ゲームプレイをコントロールするためにデバイスのティルト (傾き) に大きく依存するようなゲームの場合は、問題となる場合があります。自動回転の動作を制御するために、2 つのコンソールコマンドが用意されています。

mobile enablerotation
自動回転の動作を有効化します。
mobile disablerotation
自動回転の動作を無効化します。

これらのコマンドを、 コンソールコマンド アクションを利用して Kismet 内で実行することによって、マップ単位で自動回転の動作を制御することができます。

自動回転の動作を無効にしてマップを起動するには、次の Kismet を使用することができます。

rotate_kismet.jpg

あるいは、 すべてのアクタに備わっている ConsoleCommand() 関数を使用してコードを介して呼び出すことができます。これらのコマンドをゲームタイプまたはプレイヤーコントローラで実行することによって、自動回転の動作をグローバルに (少なくともゲーム単位で) 制御することが可能になります。

次の例では、ゲームタイプのために自動回転の動作を強制的に無効にする方法が示されています。

MyGameInfo.uc
  class MyGameInfo extends SimpleGame;
  
  event InitGame(string Options, out string ErrorMessage)
  {
     super.InitGame(Options, ErrorMessage);
  
     ConsoleCommand("mobile disablerotation");
  }