ゆるのブログです

基本スプラトゥーン

スプラトゥーンウデマエシミュレーターのver.2を作った話


前置きの話

こんにちは。

ゆるです。

今回は少し前に作ったウデマエシミュレーターのGUIを作った話をしようと思います。

どういうコード書いたとかは希望があればって感じで今回は使い方を説明しようと思います。

今回はlaunch4jというアプリを使ってexeファイルにしてみました。

Java11以上で動くと思います。入ってなかったら入れるようにメッセージとかでるのかな。

githubへのリンクはこちらです。Releasesからexeをダウンロードして頂ければ使えると思います。

github.com

本題の話

使い方

起動したらこの画面になります。

初期画面

初期値はすべて0が入っていますが、自分の50戦の勝ち負けを入力してください。

とはいっても50戦以上入れられるのでintの最大値を超えない値であれば大丈夫だと思います。

ウデマエはボタンを押してください。最初はCが押されていますがC-やC+の方もCです。

SとS+以外は+や-は気にしないで大丈夫です。

ウデマエポイントはS 300とかC 0とかの数字部分のことです。

昇格戦とかに関係あるポイントのことです。

ランクポイントのほうが英語的には正しいんですけど知らないと紛らわしいので雰囲気で適当に名前を付けました。

S+レベルは最大がS+50の数字部分のことです。いい名前が思いつかず申し訳ないですね…

ともかく今回は画像のように設定してみました。

設定後の画面

このように設定してスタートボタンを押すとシミュレーションが始まり、結果が別ウィンドウで開きます。

今回はこのような結果になりました。

長いので中間は抜かします。

結果:上
結果:下

5000試合やってS+39で止まりました。

最後のほうかなり沼ってそうですね。

あとがきの話

今回はGUIで実装してみました。

まだ微妙なところは多いですが使えるようになったのでgithubにリリースしました。

勝率指定だったり画面拡大したときテキストフィールドも合わせたり色々改善点はありますが気が向いたらやっていこうと思います。

良ければ使ってみてください。

それではまた。

JavaFXとSceneBuilderを使って2つ目のウィンドウを開くときに詰まった話

前置きの話

こんにちは。

ゆるです。

今回はプログラム書いてて詰まった話をしようと思います。

ぬるぽ出て結構詰まりました。

結局はただの凡ミスだったんですけど一応残しておきます。

追記

他にもエラー出たので直すためにやったことを追記していきます。

こちらgithubにあるテスト用のコードです。
github.com

本題の話

NullPointerException

fxmlファイルにコントローラーを書く
BorderPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/19" fx:controller="application.JavaFXTestController"

このように最後にコントローラーの名前を追加する必要がありました。

もしくはSceneBuilderの左下を開いてコントローラーを選択すればよいと思います。

左下にコントローラー
コントローラーの詳細
宣言方法のミス
    void SecondWindow() throws IOException {

 		FXMLLoader loader = new FXMLLoader(getClass().getResource("SecondWindow.fxml"));
 		VBox root = (VBox) loader.load();
 		Scene scene = new Scene(root);
 		Stage stage = new Stage();

 	  //ぬるぽエラー
 	  //SecondWindowController SecondWindow = new SecondWindowController;
 		SecondWindowController SecondWindow = loader.<SecondWindowController>getController();
 		SecondWindow.label.setText("TestLabelSet");
 		
 		stage.setTitle("Second Window");
 		stage.setScene(scene);
 		stage.showAndWait();
 		
 	}

普通にインスタンス生成するときみたいにnewで作っていたのですがそこでエラーが出てました。

多分どこ見てもこんな方法してないと思うのでちゃんと見なきゃなと思いましたね。

RIPTutorial のCreating Custom Dialog *1を参考にさせていただきました。

JavaFXランタイム・コンポーネントが不足しており、このアプリケーションの実行に必要です

実行構成のVM引数に書き足す
--module-path "(C:\javafx-sdk-19\lib)" --add-modules javafx.controls,javafx.fxml
PATHを通す

ユーザー環境変数(U)
Path : C:\javafx-sdk-19\bin

システム環境変数(C)
変数 : CLASSPATH , 値 : C:\javafx-sdk-19\lib\*
変数 : JAVAFX_HOME , 値 : C:\javafx-sdk-19\lib

多分これは治った原因ではないです。

今後eclipseで実行の構成が楽になるだけだと思います。

Launcherクラスを作成

mainメソッドがあるクラスが

javafx.application.Application

を継承していると実行することができないらしいです。

新しくLauncherクラスを作成し、そこで継承すればよいとのこと。

Launcherクラスの中身はこちらです。

package application;

import javafx.application.Application;

public class Launcher {

	public static void main(String[] args) {
		
		Application.launch(Main.class);
	}

}

JavaFXインストーラーを作成する手順 - その他つまづいたところ等*2を参考にさせていただきました。

多分これをして治ったと思います。

あとがきの話

また何か詰まったら解決方法追加していこうと思います。

それでは。

参考にさせていただいたサイト

*1:RIPTutorial - Creating Custom Dialog riptutorial.com

*2:Fire Sign Blog - JavaFXインストーラーを作成する手順 blog.fire-sign.info

スプラトゥーン3Ver. 2.0.0で追加された新ブキの話

前置きの話

こんにちは。

ゆるです。

新シーズンが開始され新しいブキを使ってみたのでその感想をまとめてみようと思います。

簡単に感想を言いますと「楽しいブキ」ですかね。

それでは本題へ。

本題の話

スペースシューター

スペースシューター わかばシューター スプラシューター プライムシューター
ダメージ 24 28 36 42
射程 約2.9本 約2.0本 約2.3本 約3.1本
撃てる回数 100発 255発 108発 50発
確定数 5発 4発 3発 3発

射程は試し撃ち場のライン、一番奥の壁から何本でレティクルが反応するかで計算してます。

サブはポイントセンサー、スペシャルはメガホンレーザー、スペシャルポイントは200です。

いくつか比較してみましたが短射程と中射程の中間性能って感じでした。

表の中で一番大きな差は確定数の多さですね。

確定数が5発のシューターはモデラー種のみだったので大きな特徴だと思います。

5確はちょっと厳しいです。

公式からの情報を見たときはわかばの射程が伸びた代わりに少し発射レートが落ちたようなイメージを持っていたのですが残念ですね。

サポートよりのサブスペで、メインの性能も塗りに特化しています。

一人で戦い続けるブキではないですね。

前線をはるなら味方のカバーが貰える位置取りをしなければなりません。

中衛として戦うなら味方の足を塗るだけではなく、射程を生かしてメインを数発当ててあげられるような位置取りをしたほうがいいですね。

わかばはボムでカバーすることが多いので一瞬遅れますが、こちらはメインでカバーできるためなるべく味方がやられる前にカバーしてあげたいところです。

強いかといわれると現在キル性能が高いブキのほうが使われているので強いとは言えませんが今後良いスペシャルを貰ったらエリアで活躍する可能性はあると思います。

ただ、確定数が5を維持するなら現在の攻撃力24から1も上げることができないので今後攻撃力が上がる修正は望めないでしょう。

今後メインが強くなるなら塗り方面の強化かブレ軽減あたりでしょうか。

ワイドローラー

ワイドローラー スプラローラー ダイナモローラー カーボンローラー
ダメージ(横振り) 70 150 180 100
ダメージ(縦振り) 120 150 180 120
ダメージ(轢き) 70 125 125 70
1確射程(横振り) 不可能 約1.3本 約2.0本 約0.8本
1確射程(縦振り) 約1.3本 約1.5本 約2.4本 約1.1本
振れる回数 10発 11発 5発 25発

射程は試し撃ち場のライン、中央手前のオレンジのイカバルーンを倒せるラインです。縦振りはちょっと下向けてます。

サブはスプラッシュシールド、スペシャルはキューインキ、スペシャル必要ポイントは200です。

こちら3種類の中で最も厳しいブキです。

コロコロ転がして塗っても全然ハッピーになれないっぴ。

敵が急に表れても横振りじゃ倒せないため縦振りでエイムが求められる。

コロコロ転がしてたまたま敵に当たってもカーボンのようにコツンと可愛い音が鳴るだけ。

まさか横振りでも轢いても倒せないとは思いませんでした。

ちょっとやそっとの強化じゃ使われる可能性はないでしょう。

このメインに加えてシールドとキューインキです。

どう使えば強いのか教えてほしいです。

ここまでかなり書きましたが1つ良いところをあげるとすれば横振りが思ったより塗れます。

ダイナモローラーの横振りくらい塗れますのでインク効率は良いですね。

まぁ今後どうするのかイカ研究所の方々の動向が気になります。

R-PEN/5H

R-PEN/5H スプラチャージャー スプラスコープ 14式竹筒銃・甲 ソイチューバー
ダメージ 60 160 160 85 180
射程 約5.5本 約5.1本 約5.5本 約4.1本 約4.2本
撃てる回数(フルチャージ) 2発 5発 5発 11発 6発
撃てる回数(溜め無し) 44発 41発 41発 29発 50発

射程は試し撃ち場のライン、一番奥の壁から何本でレティクルが反応するかで計算してます。

サブはスプリンクラースペシャルはエナジースタンド、スペシャル必要ポイントは200です。

隠れてチャージし、クマサンチャージャーレベルの連射速度で5連続撃てるものだと筆者は思ってました。

が、実際はチャージキープできるわけでもなく。

射程が伸びた代わりに制限が設けられた竹のようなブキでしょうか。

チャージャーでヒト速ギアが効果的に乗るのは半チャージの間なので竹は効果的ですよね。

ただR-PENは竹と違ってフルチャージしている状態で構えたままなのでヒト速ギアも乗らず、使い方がかなり難しいブキだと思います。

射程が長いとはいえリッターが流行っている環境なので2発撃つのはかなりリスクがあるなと。

とはいえ5発連続して撃った場合の塗り性能は侮れません。

スプリンクラーで足元確保、エナスタでインク回復して連続して撃ち続ける。

特にエリアをまたいで撃ちあうようなステージでは敵を攻撃しながら一気に塗れるため悪くないです。

筆者としてはサブやスペシャルでも攻撃できる、もっと攻撃的なブキセットが出たら可能性があるかと思いました。

今後、様々な人が使って練度が上がれば射程の長い竹としてステージによっては可能性もありそうだと思います。

あとがきの話

今回は新ブキ3種類の個人的評価というか感想を述べました。

この性能のままじゃ環境入りは難しそうです。

スペシュは今後射程が欲しくて塗りたいステージなら期待できます。

R-PENは撃てる数が減った代わりにチャージキープができたり、逆に撃てる数と射程が伸びて超塗れるチャージャーみたいなものも面白そうですね。

ワイドローラーはせめて横振り、コロコロの1確が欲しいですね。

どのルールでも前線でコロコロしてたらぺちぺち撃たれちゃいますので「塗りながら攻撃できない」というリスクに対してリターンが「普通のローラーより少し塗れる」程度じゃ釣り合いません。

3の新ブキは今のところジムワイパーがかなり評価あがってきていますよね。

トラストは今後リッター対策ができあがるか、ステージによっては、という感じでしょうか。

また何かあったら考えを書こうと思います。

それではまた。

スプラトゥーンのウデマエシミュレーターを作ってみた話

前置きの話

初めまして。

ゆるです。

今回はウデマエシミュレーターというものを作ってみたので少しお話しようかと思います。

コマンドプロンプトってとこからJavaってやつを使える方は使ってみてください。

何言ってんだこいつって方は一応、下でかるーく説明します。

それでも訳分からん!って方はgoogle先生Javaを調べてみてください。

あと、作ったやつはコンソールから値を受け取るのでパソコンでしか動かないと思います。

本題の前の小話

Javaってなに?

みなさん、Javaって知ってますか?

かるーく説明するとプログラミング言語ってやつです。

「30億のデバイスで動く」ってキャッチフレーズの広告とか出されてるらしいです。

でも私は「30億のデバイスで動くらしいが客先では動かない」のほうがよく聞きます。

有名なところでは「Maincraft」ってゲームもJavaで作られていたりするそうです(統合版は違うらしいですが)。あとは「Twitter」や「Google」もJavaを使って作られていたりいなかったりするらしいです。

興味が湧いたら色々と調べてみると意外なサービスが出てきて面白いかもしれません。

こちらの記事とか筆者は分かりやすいなーと思いました。

gihyo.jp

ファイル形式とか

今回作ったプログラムは「.java」とか「.jar」というファイル形式です。Javaが入ってないと動きません。「.exe」とか「.txt」とかはみなさん見たことがあると思いますが、それの別バージョン的な感じであってると思います。

「.jar」は解凍すれば中身見れるので見たい方はどうぞ。GitHubへのリンクを本題で貼っておきますので中身見る意味もないかもしれません。

申し訳ないのですが、プログラミング言語の導入というものはちょっと面倒です。

なのでJavaを入れたい方は各々調べてください。

本題の話

本題の前に少しお話

さて、ここからが本題のウデマエシミュレーターについてです。

まずなんでこんなん作ったのかについてです。

少し前、といっても1か月以上前かもしれませんが「スプラトゥーン3でS+50へ2000試合で到達するためには勝率何パーセントくらい必要なのか」を調べたツイートを見かけました。とても興味深かったですのでみなさんも気になったらTwitterで調べてみてください。許可を取るのが面倒なのでご本人様は載せません。

まぁそういうツイートを見て、面白いな、久々にプログラムでも書いてみようかと思ったのがきっかけです。

流石に全く同じだと私じゃ完全劣化にしかならないのでちょっと別方向から調べてみました。

ウデマエシミュレーターの説明

どういうものなのかについて説明します。

シミュレーターといってもイカちゃんタコちゃんが戦うのを見られるわけじゃないです。

1,勝ち数

2,負け数

3,ウデマエ

4,ウデマエポイント

5,S+ポイント

の5つを入力することで「現在の勝率で順調に行くとあと何試合くらいでウデマエが上がるか、そしていつS+50へ到達できるか」を計算するプログラムです。

細かい補足を付け加えるならば

「金銀勲章は3つ得るが勝率に応じたランダム」

「初期勝率は入力できるが、試合をするたびに内部で勝率を更新」

など乱数を使った部分があるので毎回同じ結果にはなりません。

そのうち見やすく改善していこうと思います。

使い方

使い方です。

まずGitHubへのリンクを置いておきます。

<https://github.com/yuru67/Splatoon3_rank_simulation>

ここから [Splatoon3_rank_simulation_var.1.0.var] というファイルをダウンロードしてください。

コマンドプロンプトを開いて

java_-jar_

このように入力してください。アンダーバーは半角空白です。

入力したら、先ほどダウンロードしたjarファイルをドラッグ&ドロップして、ENTERを押してください。

勝ち数を入力

このような画面になると思います。現在の勝ち数を入力してENTERを押してください。

次は負け数を入力し、同じようにENTERを押してください。もし勝ち数を入力し直したい場合は-1を入力してENTERを押してください。ウデマエも同じようにC-からS+の間で自分のウデマエを入力してください。

以下に画像を表示しますが、ウデマエの数値を入力するときだけ一つ注意してほしいことがあります。一つ前の入力をしなおす場合戻るときに-1ではなく10000でお願いします。-1だともしかしたら借金してる人が入力できない可能性があるのでポイントが到達する可能性のない10000でよろしくお願いします。

ウデマエの数値を入力

すべて入力し終わったら

入力確認画面

このように確認画面が出ます。ここで0を入力したらシミュレーションが始まります。

シミュレーション結果

今回はこのような結果になりました。

Sの500ポイントから3105試合でS+50まで到達できたらしいです。

昇格戦の試合数は含んでいませんし、連勝や連敗もランダムですので毎回結果は変わります。

色々やって遊んでみてください。

あとがきの話

ウデマエシミュレーター作ってみたはいいですがCUIなので正直そんなに納得いってないです。まぁv1.0なのでこんなもので許してください。

そのうちGUIで作れたら使いやすくていいなぁって思ってます。

java入れなきゃいけないし面倒ですからね。

それではまた。

 

スプラトゥーン3アップデート情報が来た話

アプデ情報が来た話

こんにちは。ゆるです。

みなさん、スプラトゥーン3って知ってますか?

インクを塗り合う平和的なゲームです。

もし興味があれば調べてみてください。イカちゃんとタコちゃん可愛いです。

 

さて、2022/10/25,10時にTwitterスプラトゥーン公式アカウントからアップデート情報が公開されました。

大まかに説明すると今回はバグフィックスが中心で、ブキの修正は少なめでした。

それではTwitterでちょこっと見た色んな意見を参考にしつつ、個人的見解も含めつつ、ちょっとだけお話していこうと思います。

ただし、筆者はスクリュースロッシャー使いなので偏った感想となってしまうかもしれないことをご了承ください。また、本記事では普段使用している略称を使います。

細かい数値はスプラトゥーンwikihttps://wikiwiki.jp/splatoon3mix/)を参考にさせて頂きました。

Ver.1.2.0アップデート内容の話

メイン、サブ、スペシャルの修正

修正内容

まずは画像をどうぞ。

タンサンボム  使用後にインクが回復し始めるまでの時間を約15/60秒間延長しました。

サブウェポンの変更内容

[ヴァリアブルローラー,200pから210p][スクリュースロッシャー,200pから210p][LACT-450,200pから210p]

スペシャル必要ポイントの変更内容

今回はメインウェポンの修正はありませんでした。

まずはタンサンボムですね。現在のインクロック時間は85Fらしいので修正によって100Fになりました。ちなみに1Fは「1フレーム」と言い、1/60秒です。秒数にして1.4秒くらいから1.7秒になりました。

次に、スペシャルポイントですがスクスロ、ヴァリアブル、LACTが10P増えました。ギア数で言うと公式表記で約0.6個、サブギアですと約2個分ですね。

感想とか

それでは個人的な感想を。

タンサンボムですが、スクスロの弱体化を主に狙ってのことでしょう。銀モデラー、クーゲル使いは泣いていいと思います。クーゲルはメインでの戦闘が主だと思いますが、銀モデラーはサブを使う機会が多かったと思うので少し辛い調整ではないでしょうか。

ちなみに筆者としてはそこまで辛くないかなと考えています。

元々打開時以外はタンサンボムに頼った動きをしていなかったのでインクの残量を少し注意すれば動きが歪むほどではないと思います。

次に、スペシャルポイントですがスクスロは無難な調整だと思います。次回以降、もっと増やすか、このままか1か月間様子を見てまた調整を入れようということでしょう。

ヴァリアブルとLACTですが、マルチミサイル組ですね。10Pの増加でマルチミサイルの回数を減らしたいのでしょうか。ただスペ増のギアを増やせば何とかなるくらいの増加なのでそこまで影響はないかなと思います。公式大会のスプラトゥーン甲子園だとメインギアしか使えないのでその少しの影響が試合結果を変えるかもしれませんが筆者にはよく分かりません。

流石にソイチューバーは逃れられたようでよかったです。

不具合の修正

個人的に気になった部分をご紹介します。

かなり量が多かったのでごく一部だけになります。

すべては勘弁してください。

それでは書いていきます。

プレイヤー操作に関する問題の修正

プレイヤー操作に関する問題の修正1

プレイヤー操作に関する問題の修正2

1つ目は自分の画面では壁に隠れているのに相手の画面では隠れていない現象の改善ですね。イカタコちゃんの同期がうまくいってなかったのでしょうか。かなり影響があったので改善されて嬉しいです。しばらくの間は段差付近、壁付近をうろうろしないよう、プレイヤー側が注意しなければいけないかと思っていました。こちらの修正はかなり大きいですね。

2つ目はキャンピングシェルターの不具合修正です。後述する通信プログラムの改善と相まって、パージしているにも関わらず正面からやられるという謎の現象が無くなりますね。キャンピングシェルター使いのみなさんは喜びの舞を踊ることでしょう。ようやくスプラトゥーン3がまともに遊べると思います。

対戦に関する問題の修正

対戦に関する問題の修正1

対戦に関する問題の修正2

対戦に関する問題の修正3

1つ目の画像はスクスロの不具合修正についてです。様々な壁をすり抜けて渦が当たっていたのでかなり重要度の高い不具合だったと思います。キューインキに関しても同様で、上を通り抜けるように撃つと簡単に渦だけ当てられていました。壁抜けは明らかにおかしい動画をいくつも見た事があったので修正されて良かったです。

2つ目はウルトラハンコの修正祭りです。ボムを防がない。チャーのフルチャを防がない。地上振りが当たらない。塗れない。空中振りも当たらない。残念すぎるスペシャルだったハンコですがようやく使えるようになりました。ただ、このままですとただ不具合が治っただけです。2では正直微妙な性能だったのでもうちょっと強化が欲しいところです。

3つ目はウルトラショットの不具合修正です。壁の後ろにいても当たっていたのはウルトラショットの弾が回転しているためだと思っていましたが不具合だったようですね。壁の後ろに隠れて避けられるようになったのは助かります。

その他の問題の修正

その他の問題の修正

こちらはロビーでギアを変えた時に反映されない不具合の修正です。個人的にはかなり嬉しい修正です。ストリンガーやワイパーはメインインク効率をどれくらい積めば何発撃てるのか、人移動速度はどれくらい乗るのか、など調整したくても出来なかったので助かりますね。

通信に関する変更

通信に関する変更

こちらが今回の目玉である通信プログラムの改善です。平均して約3/60秒の短縮とのことで大きな改善だと思われます。サーモンランでも試合でもかなり実感できるのではないでしょうか。まぁ本当に一瞬早くなる程度ですが。いつの日か、倒したらすぐに「たおした!」表示が出るくらいまで早くなることを願っています。

まとめの話

まとめ

公式サイトにも書かれていますが、今回のアップデートは不具合修正が中心でした。次回の更新データは11月終わりとのことで12日からのフェスが終わってからですね。

まだスプラトゥーン3が発売されて2か月くらいしか経っていないのにもかかわらずここまで不具合が見つかるのもすごいですがそれのほとんどを修正している任天堂にも感謝です。

冒頭にちょっとお話しますとか書いておきながらここまで長い記事になってしまい申し訳ないです。次回のアップデートは時期も予告されていますし、どのようなブキ調整が来るのか楽しみにのんびりとスプラトゥーン3やっていきましょう。

それではまた。

自己紹介の話

ご挨拶

みなさん初めまして。

ゆるです。

基本ゲームの話しようと思っています。

特にスプラトゥーンというゲーム。

ここ7年くらいはどっぷりハマってるので基本はスプラトゥーンの話になると思います。

 

ゲーム以外だと何があるかな。

最近話題のアニメ、漫画くらいならするかな?

よろしくお願いします。

とりあえず今回の話

今回は自己紹介のつもりで書いているのですが特に書くことがないです。

オタクよりな人ってことだけ覚えて帰ってください。

本当は、珍しく書いたプログラムをせっかくですし、知らない誰かに紹介しようと思ってブログを開設してみたのです。

しかし、いきなりそんなことしたらプログラミング星人だと思われても困るので自己紹介させて頂きました。

 

ということで次は書いたプログラムを紹介するか、スプラトゥーンの何かについて少しお話しようかと思います。

また書きたくなった時に更新します。