日課のまとめサイトを巡回中、何やら野球好きの俺の嗅覚が1つの記事に反応した。
「サクサクセスで横浜を日本一にする」か…
おもしろそうやん!読んだろ!
そう思った俺はサクサクセススレの沼に手を出すことになった……
こんな感じでパワプロのサクサクセスを使った企画をまとめたサイト(もしくはなんJの元スレ)を読み、そしてハマり、気づいたら深夜まで読み漁っており、朝日の眩しさで我に返る…
こんな経験をしたことがある人も少なくないのでは無いだろうか。
けいぞー調べ(※)では野球好きの日本国民の約67%が「サクサクセススレを見ていたら朝日が登っていた」経験をしているという。
(※)筆者けいぞーの妄想
しかし、そんなサクサクセススレジャンキーのみんなが「自分でサクサクセススレと同じ企画をやらない」のは何故か?
そう、「なんJ民の存在」である。
「うちではなんJ民飼ってないから誰をサクサクセスで作るか決められないし…」「なんJ民に見てもらえないなら作った選手が日の目を浴びないからいっぱい選手作る意味ないし…」
このように、サクサクセススレにおいてなんJ民の存在は企画を成り立たせるための存在であり、企画をやろうと思えるモチベーションになっている。
ではこの記事では、なんJ民が原住民に駆逐されてしまった世界線でも「サクサクセスで日本一を目指す」企画が出来るようになる方法を考えていく。
サクサクセススレジャンキーのみなさんも、この記事を参考に1人でサクサクセス企画にチャレンジしてもらえればと思う。
ちなみに、サクサクセス企画とはなんぞや?という人は以下の記事を見てからこの記事を読んでもらいたい。
なぜサクサクセス企画はなんJでやられているのか
そもそもサクサクセス企画はなぜなんJで行われているのか?
その理由を知り、排除していくことが1人で企画を完遂するための早道だと思うので、まずは理由を考えていこう。
なぜサクサクセススレはなんJで?
- どの選手をサクサクセスで作り直すのかを安価で決める
- まとめられる可能性があるため、作った選手が世に残り続ける
- 人に見られている、アウトプットしているということで完遂までモチベーションが保てる
- なんJ民から反応がもらえるから楽しい
こんな感じだろうか。
ということは、これの逆を考えれば1人でやる人が少ない理由がわかりそうだ。
なぜサクサクセススレは1人でやらない?
- どの選手をサクサクセスで作り直すのかを決められない
- まとめサイト、5chの過去ログに残らないため作った選手が世に出ない
- アウトプットが無いためモチベーションが保ち辛い
- 反応してくれる人がいないから楽しくない
うーん、それっぽい理由が考えられた気がする。
1人でサクサクセス企画がやれない理由が考えられたので、それぞれ出来るようになるために各理由の対策を書いていく。
どうすれば1人でサクサクセス企画ができるのか?
どの選手をサクサクセスで作り直すのかを決められない
サクサクセススレではレス番号を指定して(アンカー)、そのレスで書かれた選手を作り直す、という流れで行われている。
つまり、なんJ民がいないとどの選手を作るか決められないので企画が進められない。
自分で好き勝手に選手を選んで作り直してもいいのだが、それだと日本一に向けて都合がいい作り直しをしてしまうため、「え!この選手を作り直すのかよ!」というサプライズや、「お、この選手を作り直すのか!やったるで〜」という充実感も味わえないため、ある程度のランダム性があった方が良い。
(例えばヤクルトで日本一を目指す企画をしている時に自分では間違っても山田哲人の作り直しをしようとは思わないが、なんJ民はいとも簡単にそのような選択をしてくることがある。そしてそれが楽しい)
では、自分で企画を進めるときにもランダムで作り直す選手を決められるようにすればいいのでは?と考え、作り直す選手の情報をランダムに決めてくれる仕組みを考えた。
中身についての説明は別で記事を書こうと思うが、下記のように選手の背番号を自動で出力してくれるバッチファイルを作成した。
(バッチファイル、めっちゃ癖あったから素直にWSL2導入してbashとかで作ればよかった…)
企画で使用する球団で、「背番号は↓です」と書かれている番号(この例では”36″)を持った選手を作り直す、と決めておけば「不本意だけど主力選手を作り直さなきゃ^^;」という場面も出てくるため、なんJ民に理不尽に作成選手を決められることが再現できると思う。
完全にランダムに選手を決めることになってしまうので「この選手作り直したらおもろいやろな~」というなんJ民のセンスを再現することはできないが、このように自動で選手を決めるようにすることで十分企画は実現可能になったと思う。
バッチファイルの中身を下記の隠している部分に記載しておくので、使いたい人は自分でbat形式で保存して使ってみてほしい。
(インターネット上のAPIを使用している部分があるため、インターネットに繋がる環境でないと正常に動かない場合があるので注意)
バッチファイルの中身を表示する
@echo off
set hoge=%random%
call :func_sebango
set position=
echo +-------------------------------------------------------+
echo 投手ですか?野手ですか?
echo (1: 投手 2: 野手)
echo +-------------------------------------------------------+
set /P position=
rem 変数定義
rem ゼロ埋め用文字列(3桁)
set zeros=000
call :func_var
call :func_zero
call :func_zero_num
call :func_name
call :func_birth
call :func_form
call :func_form_num
call :func_pref
call :finish
pause
exit /b
:func_var
rem 変数定義
set /a year=%random%*24/32767+1979
set /a month=%random%*12/32767+1
if %month%==2 set /a day=%random%*28/32767+1
set TRUE_FALSE=FALSE
IF "%month%"=="4" set TRUE_FALSE=TRUE
IF "%month%"=="6" set TRUE_FALSE=TRUE
IF "%month%"=="9" set TRUE_FALSE=TRUE
IF "%month%"=="11" set TRUE_FALSE=TRUE
IF %TRUE_FALSE%==TRUE (
set /a day=%random%*30/32767+1
) else (
set /a day=%random%*31/32767+1
)
if "%position%"=="1" (
rem 1から473までの乱数の生成
set /a pitch_form=%random%*473/32767+1
rem set /a pitch_form=94
set /a over=189
set /a quoutor=321
set /a side=426
set /a under=465
set /a tomio=466
set /a tamura=467
set /a aoi=468
set /a yasushi=469
set /a mizuki=470
set /a itsutaro=471
set /a sana=472
set /a pawa=473
) else if "%position%"=="2" (
rem 1から332までの乱数の生成
set /a bat_form=%random%*332/32767+1
set /a standard=176
set /a open=298
set /a clow=309
set /a god=310
set /a ichiro=311
set /a baster=312
set /a oh=313
set /a org=319
set /a gedo=320
set /a masaru=321
set /a yaben=322
set /a sachiko=323
set /a hijiri=324
set /a hanyo=329
set /a saki=330
set /a ayumi=331
set /a shina=332
)
rem 1から47までの乱数の生成
set /a pref=%random%*47/32767+1
exit /b
:func_zero
if "%position%"=="1" (
rem ゼロ埋め用文字列と引数を結合
set zero_pitch_form_num=%zeros%%pitch_form%
) else if "%position%"=="2" (
rem ゼロ埋め用文字列と引数を結合
set zero_bat_form_num=%zeros%%bat_form%
)
exit /b
:func_zero_num
if "%position%"=="1" (
rem 既定の桁数に削り(右から3桁)、出力
set zero_pitch_form=%zero_pitch_form_num:~-3%
) else if "%position%"=="2" (
rem 既定の桁数に削り(右から3桁)、出力
set zero_bat_form=%zero_bat_form_num:~-3%
)
exit /b
:func_name
echo "氏名"
rem for /f "usebackq delims=" %%A in (`curl -s https://green.adam.ne.jp/roomazi/cgi-bin/randomname.cgi | jq.exe`) do set name=%%A
curl -s https://green.adam.ne.jp/roomazi/cgi-bin/randomname.cgi
echo ""
exit /b
:func_birth
echo "生年月日"
echo %year%/%month%/%day%
exit /b
:func_sebango
rem 0から99までの乱数の生成
set /a sebango=%random%*100/32767
rem 乱数の表示
echo "背番号は↓です"
echo %sebango%
exit /b
:func_form
echo "フォーム"
rem echo DEBUG:zero_pitch_form_num=%zero_pitch_form_num%
rem echo DEBUG:pitchフォーム=%pitch_form%
rem echo DEBUG:batフォーム=%bat_form%
rem echo DEBUG:zero_pitchフォーム=%zero_pitch_form%
rem echo DEBUG:zero_batフォーム=%zero_bat_form%
if "%position%"=="1" (
if "%zero_pitch_form%" leq "%over%" (
set /a pitch_form_num=%pitch_form%
exit /b
) else if "%zero_pitch_form%" leq "%quoutor%" (
set /a pitch_form_num=%pitch_form%-189
exit /b
) else if "%zero_pitch_form%" leq "%side%" (
set /a pitch_form_num=%pitch_form%-321
exit /b
) else if "%zero_pitch_form%" leq "%under%" (
set /a pitch_form_num=%pitch_form%-426
exit /b
) else if "%zero_pitch_form%"=="%tomio%" (
exit /b
) else if "%zero_pitch_form%"=="%tamura%" (
exit /b
) else if "%zero_pitch_form%"=="%aoi%" (
exit /b
) else if "%zero_pitch_form%"=="%yasushi%" (
exit /b
) else if "%zero_pitch_form%"=="%mizuki%" (
exit /b
) else if "%zero_pitch_form%"=="%itsutaro%" (
exit /b
) else if "%zero_pitch_form%"=="%sana%" (
exit /b
) else if "%zero_pitch_form%"=="%pawa%" (
exit /b
)
) else if "%position%"=="2" (
if "%zero_bat_form%" leq "%standard%" (
set /a bat_form_num=%bat_form%
exit /b
) else if "%zero_bat_form%" leq "%open%" (
set /a bat_form_num=%bat_form%-176
exit /b
) else if "%zero_bat_form%" leq "%clow%" (
set /a bat_form_num=%bat_form%-298
exit /b
) else if "%zero_bat_form%"=="%god%" (
exit /b
) else if "%zero_bat_form%"=="%ichiro%" (
exit /b
) else if "%zero_bat_form%"=="%baster%" (
exit /b
) else if "%zero_bat_form%"=="%oh%" (
exit /b
) else if "%zero_bat_form%" leq "%org%" (
set /a bat_form_num=%bat_form%-313
exit /b
) else if "%zero_bat_form%"=="%gedo%" (
exit /b
) else if "%zero_bat_form%"=="%masaru%" (
exit /b
) else if "%zero_bat_form%"=="%yaben%" (
exit /b
) else if "%zero_bat_form%"=="%sachiko%" (
exit /b
) else if "%zero_bat_form%"=="%hijiri%" (
exit /b
) else if "%zero_bat_form%" leq "%hanyo%" (
set /a bat_form_num=%bat_form%-324
exit /b
) else if "%zero_bat_form%"=="%saki%" (
exit /b
) else if "%zero_bat_form%"=="%ayumi%" (
exit /b
) else if "%zero_bat_form%"=="%shina%" (
exit /b
)
)
exit /b
:func_form_num
rem echo DEBUG:pitchフォームnum=%pitch_form_num%
rem echo DEBUG:pitchフォーム=%pitch_form%
rem echo DEBUG:batフォームnum=%bat_form_num%
rem echo DEBUG:bayフォーム=%bat_form%
if "%position%"=="1" (
if "%zero_pitch_form%" leq "%over%" (
echo "オーバースロー%pitch_form_num%"
exit /b
) else if "%zero_pitch_form%" leq "%quoutor%" (
echo "スリークォーター%pitch_form_num%"
exit /b
) else if "%zero_pitch_form%" leq "%side%" (
echo "サイドスロー%pitch_form_num%"
exit /b
) else if "%zero_pitch_form%" leq "%under%" (
echo "アンダースロー%pitch_form_num%"
exit /b
) else if "%zero_pitch_form%"=="%tomio%" (
echo "松崎 トミオ"
exit /b
) else if "%zero_pitch_form%"=="%tamura%" (
echo "田 村"
exit /b
) else if "%zero_pitch_form%"=="%aoi%" (
echo "早川 あおい"
exit /b
) else if "%zero_pitch_form%"=="%yasushi%" (
echo "阿畑 やすし"
exit /b
) else if "%zero_pitch_form%"=="%mizuki%" (
echo "橘 みずき"
exit /b
) else if "%zero_pitch_form%"=="%itsutaro%" (
echo "白名 逸多郎"
exit /b
) else if "%zero_pitch_form%"=="%sana%" (
echo "佐菜 あゆみ"
exit /b
) else if "%zero_pitch_form%"=="%pawa%" (
echo "パワプロ"
exit /b
)
) else if "%position%"=="2" (
if "%zero_bat_form%" leq "%standard%" (
echo "スタンダード%bat_form_num%"
exit /b
) else if "%zero_bat_form%" leq "%open%" (
echo "オープンスタンス%bat_form_num%"
exit /b
) else if "%zero_bat_form%" leq "%clow%" (
echo "クラウチング%bat_form_num%"
exit /b
) else if "%zero_bat_form%"=="%god%" (
echo "神主1"
exit /b
) else if "%zero_bat_form%"=="%ichiro%" (
echo "振り子1"
exit /b
) else if "%zero_bat_form%"=="%baster%" (
echo "バスター1"
exit /b
) else if "%zero_bat_form%"=="%oh%" (
echo "一本足1"
exit /b
) else if "%zero_bat_form%" leq "%org%" (
echo "オリジナル%bat_form_num%"
exit /b
) else if "%zero_bat_form%"=="%gedo%" (
echo "外藤 侠二"
exit /b
) else if "%zero_bat_form%"=="%masaru%" (
echo "田中 まさる"
exit /b
) else if "%zero_bat_form%"=="%yaben%" (
echo "ヤーベン"
exit /b
) else if "%zero_bat_form%"=="%sachiko%" (
echo "海野 幸子"
exit /b
) else if "%zero_bat_form%"=="%hijiri%" (
echo "六道 聖"
exit /b
) else if "%zero_bat_form%" leq "%hanyo%" (
echo "汎用%bat_form_num%"
exit /b
) else if "%zero_bat_form%"=="%saki%" (
echo "新島 早紀"
exit /b
) else if "%zero_bat_form%"=="%ayumi%" (
echo "佐菜 あゆみ"
exit /b
) else if "%zero_bat_form%"=="%shina%" (
echo "にじさんじ/椎名唯華"
exit /b
)
)
exit /b
:func_pref
rem 乱数の表示
echo "出身都道府県"
type pref.txt | findstr -i ":%pref%:"
exit /b
:finish
set INPUT_STR=
echo +-------------------------------------------------------+
rem echo "実行結果:"
rem echo "name=%name%"
echo 処理を終了しますか?
echo (0: 終了 1: 氏名を作り直す 2: 生年月日を作り直す
echo (3:背番号を作り直す 4: フォームを作り直す 5: 出身都道府県を作り直す)
echo +-------------------------------------------------------+
set /P INPUT_STR=
if "%INPUT_STR%"=="0" (
echo "終了"
exit /b
) else if "%INPUT_STR%"=="1" (
call :func_var
call :func_name
call :finish
exit /b
) else if "%INPUT_STR%"=="2" (
call :func_var
call :func_birth
call :finish
exit /b
) else if "%INPUT_STR%"=="3" (
call :func_var
call :func_sebango
call :finish
exit /b
) else if "%INPUT_STR%"=="4" (
call :func_var
call :func_zero
call :func_zero_num
call :func_form
call :func_form_num
call :finish
exit /b
) else if "%INPUT_STR%"=="5" (
call :func_var
call :func_pref
call :finish
exit /b
) else (
echo "0~5を入力してください"
call :finish
exit /b
)
exit /b
割とやっつけで作ったのでクオリティはご容赦してもらいたいのと、パワプロ2020に特化して作っているので、パワプロ2018やパワプロ2022ではフォームの部分が正常に動かない(存在しないフォームを指定する等)可能性があるのは認識いただきたい。
まとめサイト、5chの過去ログに残らないため作った選手が世に出ない
アウトプットが無いためモチベーションが保ち辛い
この2つについては、そもそもサクサクセスで作る選手をサクサクセス企画で使う”専用の”選手として作成してしまうことで、
- 企画中は楽しく選手作ってたけど、企画が終わったあとはこの選手はどうしたらいいんだろう
- なんのために今後使う予定もない現役選手と同じ名前の選手をこんなにたくさん作っているんだろう
という気持ちになっているのではないかと推察される。
であれば、「サクサクセス企画で使う専用の選手を作る」のではなく、「別の何かで使う選手を作る一環としてサクサクセス企画で楽しんで選手を作る」のように別のところにもモチベーションを作ってあげればよいのではないかと考えた。
例えばけいぞーリーグのように「オリジナルの球団・リーグを作るための種としてたくさん選手を作る」というモチベーションを持った上でサクサクセス企画も楽しそうだからやってみる、でもいいし、「友達とオリジナル選手を使って対戦するために強い選手を作る」というモチベーションでもいいと思う。
とにかく、サクサクセス企画だけで使用目的を完了させてしまうのではなく、別の目的のためにも選手を使えるようにするのがオススメだ。
今回作成した自動選手情報決定用スクリプトでは別の目的でも選手を使用できるようにするために、自動で決定するものを下記の情報にしている。(下記の情報はサクサクセスで選手を作る際に決定する必要があるものを網羅したつもりでいるが、抜け漏れがあれば指摘してもらいたい)
- 背番号
- 氏名
- 生年月日
- 投球フォーム/打撃フォーム
- 出身都道府県
このように作成する選手ごとにしっかりと個性をもたせることで、「実在選手のリメイク」だけではなく、1人のオリジナル選手として命を吹き込んであげるのだ。
実際にどのようにこのスクリプトを使っていくかは、今後けいぞーリーグでやろうと思っているサクサクセス企画を見てもらえればと思う。
反応してくれる人がいないから楽しくない
これに関しては正直どうしようもないかもしれないw
以下のような手を考えては見たが、多分満足行く反応がもらえることはないと思う。
- けいぞーリーグのように企画の経過をブログで報告して反応をもらう
- 身近な友人や身内に企画を見てもらい、反応してもらう
ここで言う反応というのは、企画進行中にリアルタイムでもらえる反応のことだと思うので、ブログで企画の成果を報告してそれに対して反応をもらっても企画進行時点で楽しくなるわけではないと思う。
であれば身近な人にリアルタイムで反応をもらってみればいいが、不特定多数のなんJ民が歯に衣着せず正直にくれる反応と身近な人がくれる反応では「企画を楽しくする」という点ではやはり違ってくると思う。
というか、なんJ民は天才の集まりだと思う。経過を報告してあんなにすぐに面白い反応をすることを身近な人に求めてはいけない。
よって、↑2つは妥協案とし、本当に満足いく反応を企画中にもらいたいのであれば、やはり自分でサクサクセススレを立ててみることをおすすめする。
(立ててくれたらけいぞーも見に行きますw)
最後に
本記事では「サクサクセス企画を1人でやるにはどうすればいいか?」について記載した。
実際にこれからけいぞーリーグでサクサクセス企画をやる際には今回紹介したスクリプトを使って選手の情報を決定していくことになる。
※名前についてだけは完全ランダムではなく、ランダムで作成した名前に実在選手の名前の要素を加えて「どの選手をリメイクしたか?」はわかるようにしたいと思う
作成したスクリプトの詳しい内容や、作成にあたって苦労した箇所などについては別の記事に記載したいと思うので、興味がある人は楽しみにしておいてほしい。
そもそもけいぞーリーグってナンノコッチャ?という人は↓の記事を見ていただければ。
ここまでご覧いただきありがとうございました!
この「けいぞーリーグ」ブログ以外にも、YouTube、Twitterなどで情報を発信していきたいと思っているので、もし興味を持っていただいた方は下記の「けいぞーリーグをフォローする」よりチェックをお願いします!
コメント