x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

AnswerHub Maintenance

Background maintenance is scheduled to occur between 9 - 11am EDT on Tuesday, May 21. Site operation may be slower than normal during this time and a brief interruption in operation may be observed

自作したプラグインがネットワークマルチプレイ時のみにクラッシュする

WiiリモコンやWiiFit、ヌンチャク、クラシックコントローラ等を使用できるようにするWiiRemotePluginを自作しましたが、プラグインの設定を利用した状態でのネットワークマルチプレイ時のみ、SlateCore.dllのSWidgetでクラッシュしてしまい、困っています。何度プレイしても発生する時もあれば、発生しない時もあり、再現性は悪いですが、かなりの頻度で起こります。 発生のタイミングもつかめていません。

原因がわからなかったので、VisualStudioから起動してみたところ、

SWidget::~SWidget()

{

 if (FSlateApplicationBase::IsInitialized())

 {

  for (const auto& ActiveTimerHandle : ActiveTimers)

  {

   FSlateApplicationBase::Get().UnRegisterActiveTimer(ActiveTimerHandle);

  }

 }

} ←

の矢印の部分でブレークが発生しました。 ひととおり変数の値を確認してみましたが、ActiveTimers(型はTArray < TSharedRef < FActiveTimerHandle > > )の中のDataがNULLになっており、そこが怪しいのではと考えています。

プラグイン自体はgithubの方で公開しておりますので、参考にご覧ください。

https://github.com/YutoNamiki/WiiRemotePlugin

[フォルダの説明]

Pluginsフォルダ ・・・ UE4上で使用するプラグインのデータです。

Toolフォルダ ・・・ Pluginで読み込むためのdllをビルドするプロジェクトが入っています。『WiiYourself!』というライブラリを少し改良して使用しています。

プラグインの使用方法については、

① WiiリモコンをBluetooth接続する。( 参考サイト:http://wikiwiki.jp/gcwiiemu/?Tips_Connect_RealWiimote

・Wiiリモコンは接続が完了するまで、『1ボタン』や『2ボタン』などを定期的に押し続けて、常にLEDが点滅するようにしてください。

・BluetoothレシーバをUSBに接続し、"Bluetoothデバイスの追加"等を開き、『Nintendo RVL-CNT-○○』を選択してください。

・その後、『ペアリングにコードを使用しない』を選択すると、ドライバのインストールがかかり、インストールが完了すると接続完了になります。(『MyBluetooth』などのBluetoothレシーバ付属プログラムがある場合はそちらの流儀で接続してください。)

②WiiRemotePluginを既存のC++プロジェクトに追加する。

・Blueprintプロジェクトの場合は、VisualStudioプロジェクトを生成してください。

・既存プロジェクトのディレクトリ(.uprojectがあるディレクトリ)にPluginフォルダをそのままコピーしてください。

・エクスプローラー上で現在のディレクトリ(.uprojectがあるディレクトリ)から『Config』>『DefaultGame.ini』をテキストエディタ等で開き、

[Plugins]

EnabledPlugins=WiiRemotePlugin

と記述して保存をかけてください。

・プロジェクトを起動し、『編集』>『Plugins』>『Project』>『InputDevices』にあるWiiRemotePluginのEnableにチェックがついているか確認してください。ついていない場合は、チェックをつけてプロジェクトを再起動してください。これでPluginを使用できます。

③WiiRemotePluginを使用する。

・操作したいアクタのブループリントエディタを開き、『クラス設定』で詳細にあらわれた『インターフェース』の『追加』で『WiiRemoteInterface』を選択して継承を行ってください。

・続いてそのアクタのコンポーネントで『コンポーネントの追加』>『WiiRemote』を選択して追加してください。

・UnrealEditorに戻り、『編集』>『プロジェクトの設定』>『インプット』で『ActionMappings』か『AxisMappings』で入力イベントを作成してください。マッピング選択で一番下にもうひとつ『キーボード』の項目があり、そこに含まれているものがすべてWiiリモコンの入力になっています。あとは、通常の入力マッピング設定と入力イベントで操作入力を受け付けてUE4内で使用ができます。

ローカルプレイでは特にバグが見つかっていないので、使用したい方がいらっしゃいましたら『WiiYourself!』(http://wiiyourself.gl.tter.org/) のライセンスについてご確認の上、自由にそのままご利用ください。また、初めてのプラグイン作成のため、プログラムに関するコーディングミス・バグの発見や構成に関するご意見がありましたらコメントを頂けると助かります。

その他にもインターフェースの継承やコンポーネントの追加の設定を飛ばして使用できる『WiiRemotePlayerController』や『WiiRemotePluginActor』などがありますが、まだ動作確認をしていないため、動作保証しかねます。

何の情報をお伝えすれば良いのかわからない状況ですので、問題解決に必要な情報がありましたらご連絡ください。

情報量が多く、大変難しい問題かもしれませんが、ご助力頂けると幸いです。

Product Version: UE 4.10
Tags:
more ▼

asked Jan 23 '16 at 01:37 AM in Japanese

avatar image

Yuto Namiki
1 2 4

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

0 answers: sort voted first
Be the first one to answer this question
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question