UE4でアカウントシステムを作りたい!!!


AzurePlayfabとUnrealEngineを連携してオンラインシステムを構築します

BPでplayfabを利用してアカウントシステムを作る

調べた感じ公式がプラグインを用意しているのはplayfabしかありませんでした。ですのでこちらを利用していきたいと思います。

まずplayfabに登録してください

https://developer.playfab.com/en-us/sign-up

次にこちらの公式プラグインをエンジンにインストールして有効化して下さい(無料です)

https://www.unrealengine.com/ marketplace/ja/product/playfab-sdk

実際にBPを組んでいく

①まずはplayfabへの接続を行います

set playfab settingsノードをどこでもいいのですが始まったら呼び出してください。ここでGame Title IdとPlay Fab Secret Api Keyが必要です。

Idはstudio Idです。playfabの最初の管理画面にあります。 apikeyはstudio設定(歯車マークのやつ)→titlesetting→secret keysにあります
id1

②アカウントを登録できるようにします

ウィジェットを作成します。

テキストボックスはメアド、パスワード、名前が最低限あれば大丈夫です
id2

後は各テキストボックスの値をstring型の変数に格納してRegister Play Fab Userノードに各値を渡してください(ノード下のカスタムイベントを追加しないとエラーになります・ノードは始め構造体になっているためノードのrequestピンを右クリックして分解してください)

id3

ノードのを何らかの方法(ボタンとか)で実行すると登録が引数の情報をもとに登録が行われます

③ログイン処理を組みます

id4

パスワードとユーザーネームのテキストボックスを用意してください

id5

テキストボックスのデータをstring型の変数に格納してください。そしてLogin with Play Fabノードを呼び出し、requestピンを分解して変数のパスワードとユーザーネームを引数にセットして下さい。

id6

successコールバックが来たらピンを分解してその中にあるplay fab idをgameinstanceとかに保存してください

クラウドセーブを実装する

今回はデータがあるか確認してあった場合表示してなかったら作成して表示するbpを組みます

①データがあるか確認する処理を組む

先ほどgameinstanceにplayfabIDを保存したと思いますが、そのデータを引数にGet user Dataノードを呼んでください。keyはなんでも構いません。今回は"coin"にしました。

そしてsuccessコールバックを分解してget fieldを呼びます。nameは先ほど設定した"coin"です。それをas objectへ戻り値を渡し、さらにその戻り値からget string fieldを呼びます。field name は"value"です。そしてデータがなかった場合戻り値のstringを使用すると警告が出るのでas objectの戻り値をis validを使ってifで分岐させます。
id7

②データがなかった場合データを作成する

先ほどのif文でfalseだった場合、construc json string valueを呼んでas objectにセットしてset fieldのターゲットに戻り値をセットします。field nameは当然"coin"です。そしたらupdate user dataノードを呼び、requestを分解してrequest dataにset fieldの戻り値をセットしてください。これでアップデートできるはずです。

id8
ホーム