4. 入力デバイス

4.1. 極端な入力を要する仕様

製品寿命の短縮や故障、ユーザーの怪我に繋がるおそれがあるため、タッチスクリーンやそのほかの入力デバイスを使用する際に、連続、敏速または過度の圧力をかけないといけないような操作を長時間要するアプリケーションの仕様は推奨しません。

特に、スタートボタン(およびセレクトボタン、HOME ボタン)は、過去のプラットフォームと比べて耐久性が低い仕様となっているため、スタートボタンをユーザーに連打させるような仕様は禁止です。また、スタートボタンを短い間隔で押す操作(ダブルクリック)に特別な効果を持たせることも禁止です。スタートボタンを使用する場合は、アプリケーションのメインとなる操作に用いるのではなく、ポーズやメニュー画面への遷移など、補助的な役割として使用することを推奨します。

補足:

アプリケーションの種類がバーチャルコンソールの場合は当時の仕様に従うため、スタートボタンの連打およびダブルクリックを禁止する対象には含まれません。

 

 

入力デバイス

タッチスクリーン

スタートボタン

セレクトボタン

HOME ボタン

連打

バーチャルコンソール

製品寿命

安全性

 

4.2. 立体視表示に使用する画像をアウトカメラでキャプチャする場合

立体視可能な画像をアウトカメラでキャプチャする際は、左右のアウトカメラのエフェクト、自動露出機能の有効・無効、フレームレートなどの各種設定に必ず同じ値を指定してください。左右のアウトカメラで異なる設定が行われた場合、左右の画像で大きな差異のある不適切な立体視表示となる可能性があります。撮影環境や可変フレームレートによって不適切な立体視表示となることがありますが、左右の設定が同じであれば問題ありません。

なお、以下の関数は左右のアウトカメラに写る風景の違いによる自動露出やオートホワイトバランスの働きの違いを抑制するものです。左右のアウトカメラで異なる値を設定することを前提に用意されているため、左右のアウトカメラに同じ値を設定する必要はありません。

  • nn::camera::CTR::SetAutoExposureWindow 関数
  • nn::camera::CTR::SetAutoWhiteBalanceWindow 関数

 

入力デバイス

アウトカメラ

キャプチャ

立体視表示

nn::camera::CTR::SetAutoExposureWindow 関数

nn::camera::CTR::SetAutoWhiteBalanceWindow 関数

 

4.3. マイクの入力判定

マイクの入力判定を行う場合は、マイクの入力保証範囲および判定禁止領域を考慮してください。マイクの入力判定以外の用途で使用する場合は、これらを考慮しなくても問題ありません。

マイク入力保証範囲の上限と下限は、nn::mic::CTR に定数として定義されています。デフォルトでマイクの入力は入力保証範囲内の値になるようにクランプされていることに注意してください。

判定禁止領域の値の範囲は nn::mic::CTR::GetForbiddenArea 関数で取得できます。この範囲にある値がマイクから入力されたとしてもノイズ成分として扱い、マイクの入力があったと判定しないでください。

 

表 4-1. マイクの入力保証範囲
サンプリング種別 マイク入力保証範囲
SAMPLING_TYPE_8BIT 27 ~ 228
SAMPLING_TYPE_16BIT 7105 ~ 58415
SAMPLING_TYPE_SIGNED_8BIT -101 ~+100
SAMPLING_TYPE_SIGNED_16BIT -25663 ~+25647

 

 

マイク

入力判定

入力保証範囲

判定禁止領域

ノイズ成分

nn::mic::CTR::GetForbiddenArea 関数

サンプリング種別

SAMPLING_TYPE_8BIT

SAMPLING_TYPE_16BIT

SAMPLING_TYPE_SIGNED_8BIT

SAMPLING_TYPE_SIGNED_16BIT

4.4. マイク入力の誤判定防止

マイクを使用するアプリケーションは、マイクの誤入力による問題が起こらないように、以下のように何らかの対策を行ってください。

  1. マイク使用中はスピーカーから音が出ないようにする
  2. ユーザーがマイク感度を調整するためのオプションを用意する
  3. ユーザーがマイク入力閾値を調整するためのオプションを用意する

また、マイクに入力された音声を即座にスピーカーから再生し続けると、ハウリングを引き起こす可能性があります。これは、マイクに入力された音声をその 3DS で再生させる場合だけに限らず、ボイスチャットの音声が相手の 3DS を経由して、もとの 3DS のスピーカーから再生される場合でも起こる可能性があります。

このため、マイクへの入力音声を入力と同時に長時間再生し続ける場合は何らかのハウリング対策を行ってください。上記のマイク誤入力対策の「2. ユーザーがマイク感度を調整するためのオプションを用意する」はハウリングの防止にも効果があります。

 

マイク

誤入力

ハウリング

ボイスチャット

4.5. ジャイロセンサーの電源

アプリケーションで nn::hid::CTR::GyroscopeReader クラスのインスタンスを 1 つ以上作成すると、ジャイロセンサーの電源が ON になり、ジャイロセンサーの電源が OFF のときよりも消費電力が多くなります。その結果、ジャイロセンサーの電源が常に ON となっている状態は、常に OFF の状態と比べて、本体の電池持続時間が約 2~3% 減ってしまいます。

そのため、ジャイロセンサーを使用しないアプリケーションは nn::hid::CTR::GyroscopeReader クラスのインスタンスを作成してはいけません。

ジャイロセンサーを使用するアプリケーションであっても、できるだけジャイロセンサーを使用する場面に近いタイミングで nn::hid::CTR::GyroscopeReader クラスのインスタンスを作成するようにしてください。また、ジャイロセンサーを使用しない場面ではできるだけ nn::hid::CTR::GyroscopeReader クラスのインスタンスを削除することを推奨します。ただし、nn::hid::CTR::GyroscopeReader クラスのインスタンスを作成してから最大で約 160 msec 間はジャイロセンサーのサンプリングが発生しないことを考慮し、過度に短い間隔でインスタンスの作成と削除を行う必要はありません。

CTR-SDK 7.x 系からは、マスターエディタの「基本情報(CCI)」タブのミドルウェア一覧に「NINTENDO:Gyroscope」が表示されていないことで、アプリケーションがジャイロセンサーを使用していないことを確認することができます。

 

ジャイロセンサー

nn::hid::CTR::GyroscopeReader クラス

消費電力

4.6. 加速度センサーのキャリブレーション

3DS にはユーザーが加速度センサーのゼロ点のキャリブレーションを行える機能があり、アプリケーション中断中を含め、 HOME メニュー表示中に B ボタンと Y ボタンを同時に 3 秒間押し続けることでいつでも呼び出すことができます。HOME メニューから加速度センサーのゼロ点のキャリブレーションを行った場合、nn::hid::CTR::AccelerometerReader クラスの Read 関数および ReadLatest 関数から得られる値は補正済みの値となります。

上記の機能により、ユーザーが任意のタイミングで加速度センサーのキャリブレーションを行えるため、アプリケーション独自の実装による加速度センサーのキャリブレーションを行わないでください。ただし、加速度センサーのズレ(特に短時間で変動する可能性のある温度特性によるズレ)がアプリの挙動に大きな影響を与えるなど、アプリケーション独自のキャリブレーションモードを用意する必要がある場合は弊社窓口までご相談ください。

 

加速度センサー

加速度センサーのズレ

加速度センサーのゼロ点

キャリブレーション

HOME メニュー

nn::hid::CTR::AccelerometerReader クラス

nn::hid::CTR::AccelerometerReader::Read 関数

nn::hid::CTR::AccelerometerReader::ReadLatest 関数