おもちゃラボ

Unityで遊びを作っていきます

PS4のコントローラが充電できないときの対処法

先日、PS4のコントローラ(DUALSHOCK4)が
充電できなく
なってしまいました。

USBケーブルを接続しても、コントローラの裏側の
ランプが黄色に点灯しません・・・

  • USBケーブルを交換してみても効果なし
  • 充電アダプタから直接給電しても変化なし

8年近く使ってますしついに
バッテリがお亡くなりになったようです。

治し方を考える

PS4はもっぱらtorneにしか使ってなかったので
わざわざ新しいコントローラを買うのもモッタイナイ!

ということで、モバイルバッテリからUSB経由で直接給電するように改造しました。

これまで構成はこんな感じ

これからの構成はこんな感じ

それでは、さっそく修理していきましょう!

分解&修理

まずはコントローラ裏のネジを外してから
ハウジングの切れ目に沿ってマイナスドライバーを
差し込んで殻割り
します

FPCケーブルがはずれないようにそっと開けます

つぎにバッテリから伸びる電源&GNDを2本とも切ります

いま切断した電源とGNDに、USBケーブルの5VとGNDを
それぞれはんだ付けします。
(バッテリの電圧は4.5Vって書いてたけど、、まあいいや笑)

はんだ付けしたところはショートしないように
ホットボンドで補強

torneではL2ボタンは使わないので
ここにUSBケーブルを通します(適当具合がやばい)

 

USBケーブルをモバイルバッテリに接続すると、
無事動くようになりました!

これで快適torneライフはまだまだ続きます。

注意

私の場合、上記の方法でうまく動きましたが
分解改造は自己責任でお願いします

【iMovie】iPhoneで撮影した動画が白飛びする場合の解決方法

iPhone12で撮影した動画をiMovieにドラッグ&ドロップすると
動画が白飛びしてハレーションを起こしたような映像
になってしまいます。

元の動画はこんな感じなのですが・・・

f:id:nn_hokuson:20220118200407j:plain:w500

iMovieで読み込むと↓のような感じで
明度が高いというか、コントラストが強くて白飛びした
映像になってしまいます。

f:id:nn_hokuson:20220118200605j:plain:w600

映像が白飛びする現象は

  • iPhone 12 mini
  • MacBook Pro(macOS Catalina)
  • iMovie(10.1.16)

で確認しました。

iMovieで白飛びする場合の解決方法

この問題を解決するには、使いたい動画ファイルを
選択した状態で右クリックして「選択したビデオファイルをエンコード」を選択します。
f:id:nn_hokuson:20220118201148j:plain:w200
次にポップアップウインドウで解像度を選択して「続ける」を押して
動画を書き出します(少し時間がかかります)
f:id:nn_hokuson:20220118201159j:plain:w400
書き出した動画をiMovieで読み込めば
白飛びしなくなります!
f:id:nn_hokuson:20220118201816j:plain:w600

まとめ

白飛びの原因は動画のエンコード方式のようですので
いちど、別のエンコード方式に変換してから読み込むことで
この問題を解決できます。

また、iMovie10.2.2ではこの問題は起こりませんでした。

【Unity】コライダーを可視化する方法2選

f:id:nn_hokuson:20211210164008g:plain:w400

UnityでデバッグをするときColliderを可視化したいことってありますよね。
コライダーを見える化するには

  1. Physics Debuggerを使う
  2. 可視化スクリプトを使う

の2通りの方法があります

Physics Debuggerを使う

Physics Debuggerを使うとUnityエディタ上でコライダを可視化することができます。

Physics Debuggerを使うにはメニューバーから「Window」→「Analysis」→「Physics Debugger」を選択します。画面右下の「Collision Geometry」にチェックを入れるとコライダが表示されます。

f:id:nn_hokuson:20211209202916p:plain:w500

ただし、可視化できるのはUnityエディタの編集時のみです。Unityエディタで実行した場合や、iOS/Androidのアプリ、PCでの実行時にはコライダを可視化することはできません。

可視化スクリプトを使う

Unityエディタやアプリ実行時にもコライダを可視化したい場合は、スクリプトを使って可視化する必要があります。こちらのスクリプトを参考にさせて頂き、実行時にコライダのスケール等を変更した場合にもリアルタイムで変更が更新されるようにしました。

ColiiderVisualizer.csをダウンロードして、プロジェクトに追加してください。
ColliderVisualizer

次に、コライダを表示したいオブジェクトにColiiderVisualizer.csをアタッチしてください。
f:id:nn_hokuson:20211209203925p:plain:w250

ColliderVisualizerはスクリプトをアタッチしたオブジェクト(子要素を含む)の全コライダを検索して可視化を行います。実行すると、次のようにコライダが可視化されます。
f:id:nn_hokuson:20211210163358p:plain:w500