幻の26マン(Apexlegendsを自分で作りたかった話)

注意)本記事は著者のメンタル状況に応じて抽象度が変化するようになっております。
ご了承ください。

みんなー!忘れてたやろー!!!
俺も忘れてたー!!!(わけではないけど忙しくて忘れさせられかけてた)
2021年以内に終わらせられてよかったー!!!


WMMC Advent Calendar 2021 - Adventaradventar.org

の26日目(ですらない)の記事ですぅぅぅ!!
本当なら昨日は19日(もはや遠く昔の日だな)は…
たまかけ君の「学生大会の感想」
学生マイクロマウス大会の感想(懺悔) - HackMD
でした。
…お疲れ様でした…
コロナ禍で製作意欲の下がっている人が多い中
標準マウスを作成したのは素晴らしいでプリプリィッ!!!

(というべきなのか、
それとも
昨日(ですらない)の記事は
僕の脅迫で無理やり書いてくださった
某さんの
ものづくりのチーム開発を攻略しよう① リーダーが気をつけるべきこと - まんぼーの技術記
とすべきだったのか…?)

0.まずはじめに

まずはじめに、なにはともあれ開催者として一言申し上げさせていただきます。
あ、その前に謝罪しますか

遅れてすいませんでした…
一応毎日研究の合間にコード書いたりデバッグしたりして一日100文字ぐらいは書いてたんですけど年末ということもあって遅れました。
言い訳は以上です。

そして

25日間皆さまありがとうございましたぁぁ!!


技術的なことからゆるふわ趣味趣向の話まで毎日卒論で白目剥きながら口角上げて読ませていただきました。
1、2年生は大半が知らないと思うのですが
このサークル、コロナ前までは
大体なぜかM2どころか卒業してもサークルに顔を出してました(頻度は少なめ)
一応老害という枠になるのですがね…

そんなわけで修士生にマイクロマウス問わず色々なものづくりの相談ができます。
たまに先輩が来たら相談してみたり雑談してみてください。
ふとした話から技術的なことを学べることは多いですし僕は大学で自分で勉強したものより先輩と話してて知ったことの方が多い気もします。
なんなら先日の記事のGASの存在もA.Tさんに聞いて知った気もします。

ま、とりあえず開催者の言葉はここまでにして

幻の26マン(トウェンティシックスマン)
の記事でもいきますか(黒子のバスケをまねただけです)


 さて!アドベントカレンダーの主催者なのでまともな記事をあげておくかと作った先の2つ

(1つめ:
WMMC AdventCalendar 2021 1日目 - judgeのブログjudge.hatenadiary.com
)

(2つ目:
judge.hatenadiary.com
)

を見て、同じクオリティを求められても困りますはい。
僕は卒論生ですから…(現実)
アドベントカレンダーより卒論書かなきゃいけないのに…!(なお0文字)
今日だけ一日中お休みして
明日から卒論機体の評価試験を行なっていこうかなって思っているぐらいなのに…
3つも記事書いてもうたやないか…!

最後ぐらいゆるふわでやらせてもらいます。
これで僕の精神も保たれるので…
MOSIマウス関連の記事が読みたい人がいれば昨年度のあたりは参考になるかもです...(昨年の)

1.またこいつGASかよ

 前回GASというものを紹介しました。

(本記事は前回を前提にするので環境構築等がわからない人は前のを読んでくれると幸いです)
前回→
judge.hatenadiary.com

実はあれには7章目があり、そこで書く予定のものがあったのですが、長すぎたので断念しました。それをここで書きます。

ではまず、僕のGmailの惨状は
メールが数千たまっています。

Gmailの件数、やばないですか?

それもそのはずで、
僕のGmailアカウントは

①大学用
②趣味用その1
③趣味用その2
インターン
⑤その他用

などという無駄におおく、しかもそれぞれそこそこに営業メールが来るのでこうなってます。
大学からは内容も無いメールばかりが届く中で奨学金などの有意義なメールが紛れ込んでいて普通に見逃しがちです。(見逃したことはないですけど)

なので整理したいというか、いらないメールは消し去っておきたいんですよね。

そこで、GASでまず全ての不要なメールを削除します。
これでメールボックスはスッキリするので
その後も毎日不要なメールを削除して行きます。
着信拒否すれば良いと思うんですが、
その中にたまに大事だったり興味のあるメールもあるので着信だけはしておきたい、という感じです。
では早速やっていきます。

2.早速消し去ってみる

僕のGmailを開き、さっそく不要なメールを確認して削除します。
今回は削除対象を
spotify」「AtCoder」「UltimakerCura」からのメールを削除します。
削除理由:興味はもうないので.....

コードは以下のようになります。

/*****************************************************
 * delgmail()
 * 引数:なし 
 * 返り値:なし
 * 
 *[処理の説明]
 *・対象のGmailを消す
 *****************************************************/
function delgmail() {
  //検索条件
  //今回はspotifyとultimakerとAtcoderからのメールはもはや興味ないのでこいつらを消し去ってみる
  conditions="{from:no-reply@spotify.com from:info@e.ultimaker.com from:noreply@atcoder.jp}";

/*複数条件(AND)の場合、条件をスペースで区切るだけでOK
   複数条件(OR)の場合、条件をスペースで区切りつつ、{}で囲う

<基本的な条件検索法>
・「from:」→メールの送り主で検索
・「subject:」→メールのタイトルで検索
・「to:」→メールの送信先で検索
・「is:unread」→メールが未読の場合を検索
・「is:read」→メールを既読した場合を検索
・「is:starred」→メールにお気に入りがついたものを検索
・「has:attachment」→添付ファイルがあるものを検索
・「after:」→指定日以降に送信されたメールを検索
    ex) after:2021/12/20 ⇒ 2021年12月20日以降に送信されたメールを検索

・「before:」→指定日以前に送信されたメールを検索
    ex) before:2021/12/20 ⇒ 2021年12月20日以前に送信されたメールを検索

・「newer_than:」→指定した年数・月数・日数を遡った時点から現在までに送信されたメールを検索
     ex1) newer_than:1d  ⇒ 1日前から現在までに送信されたメールを検索
     ex2) newer_than:2m  ⇒ 2か月前から現在までに送信されたメールを検索
     ex3) newer_than:3y  ⇒ 3年前から現在までに送信されたメールを検索

・「older_than:」→指定した年数・月数・日数を遡った時点から現在までに送信されたメールを検索
     ex1) older_than:1d  ⇒ 1日前以前に送信されたメールを検索
     ex2) older_than:2m  ⇒ 2か月前以前に送信されたメールを検索
     ex3) older_than:3y  ⇒ 3年前以前に送信されたメールを検索
*/

  //上記の条件にあうメールを取得
  delete_mail_list=GmailApp.search(conditions);
 //全消し
  for (var i = 0; i < delete_mail_list.length; i++) {
    delete_mail_list[i].moveToTrash();
  }
}

メールリストは個人情報の塊すぎたので結果は載せられないんですが、
消えました。数百ものメールが。

お、これならスッキリするのもはやいな〜!
って思ってましたが、大学メールで問題が発生しました。

どうやらW大学のドメインが@gmail.comじゃないのはGoogleからGMail機能だけ借りてきてそれをアレンジしたっぽくて、
しかも権限とかの問題でメールの削除、これできなかったんすよね…

まぁしゃーないです。
とりあえず消すことに成功したので
大学メールはこまめに消していこうな〜
(戒め)

GASについてはこれで終わります。
息抜き回というか中間発表が終わったばかりでメンタル的には瀕死なので勘弁してください…

3.で、ここからは適当

 この一年、メイドカフェ行った〜!!
とか、相席屋…とは…?みたいなそういうのは何もなく、面白エピソードも特に何もないんで、書くことないんすよね。
(来年はあると思うんで来年書きます)

強いて言えば今年の2〜3月ごろにはまった
Apex legends
っていうゲームにあるランクシステムで(要するにどれぐらいの実力があるか)で
ダイヤ帯💎って言う、いわばある程度の
一般人ゴール(諸説)
【Apex】一般プレイヤー的にゴールのランク帯ってここじゃね?|Apex Legendsまとめ速報 - えぺタイムズ
に達した、ぐらいですかね…
とはいえ大体1000時間ぐらいやると到達する感じ
(僕は人生初のFPSゲームだったので1100時間ぐらいかかったんですが…)
なので超簡単!ってわけではないです。

1回だけだとまぐれかもなとか思ってとりあえず3シーズン(s9〜s11)連続で行けましたが、(このゲームでは一定期間毎にランクがリセットされる)
ダイヤの上のマスターは絶対に自分じゃ行けないと強く感じた
のと、
これ以上は時間の無駄だなって思ったので
最近は友達とカジュアル回す程度の熱量です。
やらなすぎて下手くそになってきてるんですが
たまに誘って遊んでくれると嬉しがります。

で、 ゲームしてて思ったのが、
FPSというか、簡単でもゲーム作れたら楽しそうだなって。
専門は機械なのでこう言うスキルは役に立つかわからないのですが、
モットーが
「技術は広くそこそこ深く」なので
Unityで簡単なゲームを作ってみた(行動力の権化)
おい誰だ現実逃避って言ったやつ
それを紹介して終わります。
本格的なゲームエンジンでもやってみたいな〜

①金玉転がし
 ただ矢印キーの入力に応じて玉が動くのでそれで迷路をクリアする、だけの簡単なやつです。
もともと少し古めの公式チュートリアルをアレンジしてみたんですが、これやる時に参考にしたらUIが変わりすぎてて何も参考にならなかったのでオススメしません。
ただ研究という現実からの逃避には最適な暇つぶしです。
初めてのUnityの雰囲気つかみでやってみました。
ちなむと金玉なのに金色じゃないのは現実志向だからなんていえない

↓実際のプレイ動画(作者なのにへたくそという残念ぶり)

②シャドバもどき
[謝罪]
→作成していたがバグ多くてなんかの参照無いみたいなエラー出てきてでも参照できてるはずみたいななんかごちゃごちゃしてたら
萎えてやめたので慣性もしてないですし動画もないです。

③Apexというかバイオ?もどき

まーーーーーじで一からFPSゲームなんて個人で作ろうとするものではない(先人のサイトは死ぬほど見て猿真似したが結局デバッグの時に苦労する)

 ま・じ・で脳みそ狂うかと思いましたまる。

ローカル座標、ワールド座標の変換やら
クオータニオンベクター3を用いた様々な計算…

もうなんでそうなるのかわからんけど
Google it したらそうやって書いてあった。
それしか言えません。
恥ずかしながら
私はテンソルやらクオータニオンやらの概念をマジでよくわかってないので解説できない!!!今もわかりません!!!
授業で取り扱った際にも
苦手すぎてよくわからんけどとりあえず単位もらったからヨシ!のスタンスです。
とりあえず聞かれてもよくわからないけどこれを作るにあたって勉強はした。身になったかは置いておいて…

最後の方に追加した何かが悪かったのか、最終版はバグり散らかしててとてもお見せできる状態でないことと、2021年が僕を待っててくれなさそうなので
もうこの状態でだします....
見栄えしなかったので見るに堪えなかったので途中撮っておいた試験版のやつだけ載せます。
今後クオリティが上がったら載せるかもです..
ちなむとこの後追加した敵キャラの動作の幅や操作のオーバーレイは結構クオリティが高くできたので満足でしたが、それらも今はなぜかばぐってて直せません。作戦が卒論優先なので時間がない...
少なくともFPSゲームって作るの難しすぎて二度とApex任意のゲームクソとかいえない身体にされたわ...
では以下、私のつたないPCゲームのおぼつかない操作をどうぞ…

↓実際のプレイ動画(50%完成地点)


(補足)
これらの3Dモデルは無料の外部のやつ持ってきたのでもちろん僕が作ってるはずないです。
こちらのサイトpolyhaven.com
などからテクスチャーは奪ってきました
地形などは作りました。

4.最後に

 以上です。今年はおふざけなしでブログ書いたんですが疲れるのと
性分に合わないなって感じでしたね。
とりあえずゲームはお粗末なものでしたができて動くと楽しいものです。
卒論機体も動けば楽しいのですが…
あ、なんか卒論がバブみ幼稚園にお迎えに来たので帰りますバブッ!

明日は…あれ…バトン引き継ぐ先が…
来年の開催もお楽しみに〜


一応本来引き継ぐはずだったぱわぷろさんの2日連続記事は…

  • >

ss-sholaw-wmmc.hatenablog.com

っていうか2日連続!?
すごいっすねばぶばぶっ!
修論大丈夫なんですか〜?
ここ数年で一番サークルでマウスマウスしてた人の記事なので新入生とかは今後の指針とかに役立つかもです!

では、もうすぐ年明けですね!良いお年を!













…あ?クリスマス?こないだ終わったよ
その話題あと1年は出してくるなよ?