npmライブラリにどうやらPS4操作ができるライブラリがあるらしいので、とりあえず軽く使ってみました。
必要なもの
- PS4と同じネットワークに繋がったPC
- ネットワークの繋がったPS4
- PS4 Second Screenアプリの入った同じネットワークに繋がったスマホ
セットアップ
PCで ps4-waker
をインストールし叩く
npm install -g ps4-waker
ps4-waker
最初に起動すると No Credentials
とか出てくるので、コマンドラインからどのPS4を操作するのか、情報を登録する必要があります。
とりあえずコマンドラインはこの状態のまま待機です。
スマホでSecond Screenアプリを起動し、ps4-wakerに接続する
スマホでSecond Screenアプリを起動し、うまくいくと画面上にps4-wakerが出てくるので、それをタップします。
すると、コマンドライン上でPINコードを求められますので次の手順へ。
使用するPS4で認証コードを発行する
- [設定]→[モバイルアプリの接続]→[機器を登録する]を押下すると8桁のPINコードがでてくる。
- PINコードをコマンドラインにうちこむ。(スペースはなしでOK)
うまくいくと Logged into device! Future uses should succeed
とかでてきます
作業おつかれさまでした
CLIコマンド一部紹介
注意事項としてですが、PS4の電源が落ちていると使えません。
起動コマンドはスタンバイモード時のみ可能です。
起動する
ps4-waker
状態確認
ps4-waker check
スタンバイモードにする
ps4-waker standby
ゲームを起動する
ps4-waker start [title id]
- モンスターハンター:ワールドを起動したい場合
ゲームのtitle idは起動中にcheckコマンド打ったら見れました。
ps4-waker start CUSA06027
ボタン押下
Key names:
Button names are case insensitive, and can be one of:
up, down, left, right, enter, back, option, ps
You cannot send the actual x, square, etc. buttons.
A string of key presses may be provided, separated by spaces, and they
will be sent sequentially.
In addition, a key name may be followed by a colon and a duration in
milliseconds to hold that key, eg: ps4-waker remote ps:1000
ホーム画面しか操作できないのか、ゲーム中だと反応しないようです。
上下左右とenterとback(?)とoption、psボタンしか動かせないらしい
- 右に移動
ps4-waker remote right
プログラム内から操作する
公式のサンプルだとこんな感じ。
const {Device} = require('ps4-waker');
var ps4 = new Device();
ps4.turnOn().then(() => ps4.close());
ただ、これだけだと接続して起動して終わりになっちゃいます。
なので、ひとつサンプルコードを書いてみました。
PS4を起動してモンハンワールドを起動
const main = async () => {
const { Device } = require('ps4-waker');
let ps4 = new Device();
await ps4.turnOn();
await ps4.startTitle('CUSA06027');
ps4.close();
}
main();
ええやん
備考
iPhoneからでも PS4 Second Screenアプリを使えば電源操作などはできるらしいンゴねぇ