サークル関連のメールをDiscordに転送するようにしてみた

お久しぶりです。kofuk です。
3 日くらい前にメールを Discord に転送するものを作った話を書きます。

コードも貼ろうと思ったんですが、貼るほどのコードがなかったです。欲しい方は連絡ください。
あと、この投稿を読んでも実装の詳細とかはあんまり分かんないです。まあアイデアの共有ということで……。

背景

なんか僕はサークルの連絡担当者ということになっていたんですが、まあこいうのは全員に見えたほうがよいだろうということで、メールを全部 Discord に送り込むことを思いつきました。決して面倒だったからとかそういう理由ではない。んで会長の God に相談したんですが、あんまり乗り気ではなさそうでしたが、どういうものが出てくるのかという興味から (かどうかは知らんが) やっていいと言ってくれたので、適当に作ったという次第です。

構成

何も難しいことはしてないです。IMAP でメールを見に行って、条件に合う未読メールがあったら落としてきて Discord に転送するという感じです。Discord は Webhook の URL に適当に POST するだけでメッセージ送れるから便利ですね。
ひとつ注意点として、このメールアドレスにはサークル関係のメール以外もどんどん来ているので片っ端から転送していると僕の正体が暴かれてしまいます (プライベートのメールが流出してしまうという意味)。アイドルとして (アイドルではない) そのようなことは許されませんね。そのへんをどう実装したかについても後ほど説明します。

実装

メールを見に行く部分

この部分で一番非自明なのは、他の用件のメールとサークル関係のメールを見分けるという部分と、一回転送したメールはそれ以降転送しないという部分だと思います。まあ結果的にこのへんは別に難しいということはなかったんですが。

一番簡単にできる方法を考えた結果、Outlook (そう、Outlook だったのです) のルール機能を使って、適当なフォルダーに放り込んでおいて、そのフォルダーのメールだけを転送対象にするのが楽だということで、そういう実装にしました。ちなみにここのフィルターは「学生団体各位」が入っているかどうかという非常にアドホックなものになっています。Cc に特定のアドレスが入っているかという条件が使えればいいんですけど…。

一回転送したメールをもう一度転送しないというのは、一回ダウンロードしたメールは既読になる仕様らしく、未読メールだけを処理すれば良かったので簡単でした。無知は罪ですね。

ひとつ注意点としては、iso-2022-jp でエンコードしてあるメールがそこそこあるので、その部分をうまく扱わないといけないことです。

Discord に送り込む部分

ここが一番自明な部分です。Discord に Webhook URL を貰ってきて、適当に JSON を POST しています。2000 文字の制限があるらしいので 2000 文字を超えるメールは分割しないといけないんですが、この部分はまだ何もやっていないです。文字数という概念はあまりにも難しすぎる………

その他

一応先頭行の「学生団体各位」という文字列を削ったり、メール末尾にくっついている署名を削ったりはしています。このへんはかなりアドホックなコードが入っています。

島原城に行ってきました!

3月3日に長崎大学のVRキャンパス制作の資料集めのためにサークルのメンバー4人で島原城に行ってきました。2日前くらいまで雨が降ってて心配でしたが、ちょうどこの日は晴れでした!

自分は初めて島原城に行きましたが(というか島原に行くこと自体初めてでしたが)、想像してたよりも大きく、まさに城って感じがしました。島原城の他にも武家屋敷を回ったりしましたが、街の落ち着いた雰囲気を感じることができ、当時の暮らしが偲ばれました。

個人的には、なかなかプライベートではこういった場所に行く機会はなく、さらにこのご時世もあり、外出する機会があまりなかったのでいい気分転換になりました!

 

 

Minecraft のマップを生成するソフトウェアを書いた

はじめまして。kofuk です。このサークルに入ったのはたしか去年の11月くらいだったのでまだ新入部員です[要出典]。

もう数か月前になりますが,Minecraft のセーブデータをパーズして上空から見た画像を生成するソフトウェアを書いたので,その紹介をします。このサークルの活動とは直接は関係がないです。

こちらがそのソースコードのリポジトリです。
残念ながら,私一人で作っているので開発リソース的に GNU/Linux にしか対応していないです。以前は Windows にも対応していたのですが,Windows で使う人がいなかったので(そう,私の知りうる範囲では私しかユーザがいなかったのです)テストするのも面倒になってやめました。ただ *nix 的な API を使っているのは一部なので,Windows に移植するのはそんなに大変じゃないと思います(Windows に詳しい人がいたらプラットフォーム依存部分の移植をお願いしたい……)。

これは私が個人的に管理している Minecraft のワールドで,Web ページでマップを見られるようにするために使っています。あと指定した座標の一番上のブロックの ID を取る機能とかも実装していて,右クリックでブロック ID を確認できたりします。x, z 座標を与えられたらその座標の一番上のブロック ID を返すというのもこのソフトウェアの機能のひとつです。

以下は需要あまりない気がするけど技術的な話をつらつらと書いていきます。

最初は Python で書いていて(というのも Python だとよさげなライブラリがけっこうあったので)遅かったので,C++ で書き直したとかいう話があったりします。ただ C++ だと良くも悪くも書いた以上のことはあまりやってくれないので別の辛さはけっこうあったりします。余談ですが,先日もとの Python ライブラリの作者に GitHub でスターをいただきました。

まず Python だと遅かったという話をすると,Python だと GIL とかがあってマルチスレッドにしてもその分のパフォーマンスは発揮できないというのがあったりします。GIL というのは Global Interpreter Lock の略でデータ競合(並列処理で別の実行コンテキストが同じメモリ領域に書き込んでしまってバグるみたいな状態)を避けるために,同時に1つの Python のコードしか実行されないようになっているということです。Python には(Python じゃなくてもできるけど)スレッドじゃなくてプロセスでやるという方法もあったりしますが,それでも処理が遅くて不満だったりしたので,やっぱり C/C++ で書き直した方がいいだろう判断して移植しました。これには私が Python があまり気に入らないという背景もけっこう関係していたりします。インデントでブロックを表現するってのがコード足したりするときにけっこう厄介で。

ただ,GIL がないということは,競合条件でバグらないように自分で書いてあげないといけないので面倒くさいです。マルチスレッドって必要ないならなるべく書きたくない機能だと思います。(ちょっと危ないコードがあったりするんですが,適当なワークアラウンドで見ないふりをしたりしています,はい,だめです)。

最近の更新としては,前から気になっていた Unit テストを書き始めたことです。とりあえず導入して新しい機能のところから書いていけばいいだろうということで,実際にはあまり書いていないですが,書いたところでも既にバグが見つかりました。やっぱりテスト書くのは大切ですね。

直近の TODO としては,Minecraft の大型アップデートに対応するということだと思います。これがブロックの追加が多そうで面倒だなという感じで見ています。

ということで,今回はこれくらいですかね。最後までお読みいただき,ありがとうございました。

僕の流行り

僕のハマっているもの

 

どうもみなさんお久しぶりです、初めましての方は初めまして、ごジンクスです!

最近、コロナで外出することが出来ず、暇を持て余していると思いますが、だからといって、あまり外出はしないようにしましょう。

といっても、やはりずっと家にいるのは、暇でしょう。

そこで今回、僕のハマっているゲームを紹介したいと思います。

 

そのゲームは

プリンセスコネクトRe:DIVE

です!

 

このゲームは、記憶を失ってしまった主人公である騎士くんが、様々な女の子と仲良くなり、魔物を倒すというゲームです。ダンジョンRPGで、レベルやスキルを上げていかないとなかなか敵を倒せないので、やりこみがいがあると思います!

 

ただ、このゲームの魅力はこれだけではありません!

その中でも今回は、3つご紹介させていただきます!

 

まず1つ目、キャラがかわいい!

 

やっぱり、これは外せないでしょう!キャラのデザインもよく、キャラにそれぞれの個性があるから、面白くて、かわいい!

ちなみに、今の中での僕の推しは、ユイとクロエですね~。

 

続いて2つ目の魅力は、ストーリーが良き!

 

メインストーリーはネタバレもあるので、詳しくは言えませんが、それぞれのギルドが争うことになるのだが、その裏で怪しい影が動いており世界を脅かそうとしていた、果たして騎士くんはこの世界を救うことができるのだろうか、みたいな感じです。

他にも、ギルドストーリー、キャラストーリーがあり、そこでは、それぞれのキャラの魅力が詰まっていて、僕のような萌え豚には大歓喜ですよ!!詳しくはプリコネRをインストールして遊んでみてください!

 

最後に3つ目の魅力は、アニメーションがあること!

 

ゲームにアニメーション入れるのは、ずるいですよ、こんなんはまってしまいますよ~。それぞれの必殺技モーションにアニメーションがあるため、それが可愛かったり、かっこよかったりするから、もう目が離せませんよ~。

しかも、ストーリーにもアニメーションが入っているため、アニメが好きな人にはたまらないコンテンツです。

 

さて、いかがだったでしょうか。このゲームを遊びたいという人は、ぜひプリコネRで検索検索~♪

 

おまけ

おすすめアニメ

 

異種族レビュアーズ

恋する小惑星

痛いのは嫌なので防御力に極振りしたいと思います。

 

Twitter

https://twitter.com/gozipro_39318

 

新部長爆誕!!

新部長爆誕!!

お久しぶりです、ごジンクスです!!!

なんと、

先日から、

部長になりました!!!

いやぁ~、部長になれてうれしいですね~~!!

せっかく部長になれたので、いろんなことをみんなとやってみたいですね~!

unityでたくさんのゲームを作ったり、ほかの大学の方たちと一緒にゲーム作りをしたり、コミックマーケットにも出店できたらいいですね~!

そんなわけで、部長として、サークルを盛り上げていけたらいいなと思っています。

これからどうぞよろしくお願いします!!

ごジンクス

twitter

https://twitter.com/gozipro_39318

C97に参加してきました

こんにちは、Boltzです。
12/31の冬コミ(C97)4日目にサークル代表として参加したのでレポートを書きます!

今回マルチメディア研究会がどんなものを頒布したのかを説明した後、
コミケの感想を書いていきます!

頒布物紹介

今回、当サークルのブースで頒布したものは以下の3点です。
・書籍版「Unityで作るリズムゲーム」
・2019年度サークルコンピCD「Noir」
・2Dシューティングゲーム「NOVAE」ダウンロードカード(委託)

書籍版「Unityで作るリズムゲーム」

読者の方が今日からリズムゲームが作れるようになる!を目指した本です。
当サークルのメンバーに加え、外部の方にも協力していただき、1冊を作りました。

現在こちらのサイトでも頒布中です。
https://ecml.booth.pm/

 

2019年度サークルコンピCD「Noir」

長大祭で頒布した、サークルのコンポーザーによるコンピCDです。
「ダーク」をテーマとした5曲が入っています。

2Dシューティングゲーム「NOVAE」

シューティングゲーム(委託品)です。
こちらの動画の53:15あたりからご紹介いただいております。

まとめ動画を作ってくださった「えーでるわいす」さん、本当にありがとうございます。
(余談ですが、私はアスタブリードがとても好きです)

参加しての感想

サークル参加なので朝7時半くらいからビッグサイトに向かい、設営をしました。
朝日が神々しく感じました。

ブース設営が初めてだったので、手間取ってしまいましたが
10時前には設営完了!拍手で来場者の方をお迎えしました(朝のAppleStoreかな?と思った)

 

まわりのサークル

今回、C97出展宣伝ツイートをしていた時のご縁などでいくつかのサークルさんと繋がれたので、
そのサークルさんや、周りの気になったサークルさんのところにお伺いすることができました!

 

反響

このTwitterのタグで何件か反響をいただいており、嬉しい限りです。
本や頒布物の感想ツイートは見つけ次第Twitterアカウントの方でご紹介させていただきます!

 

最後に & 次回

最後に、今回売り子で参加してくれた ゆゆ さん、寝起きさん、本当にありがとうございました!
出展にあたりご協力いただいた皆様には感謝してもしきれません。

また、次回以降ですが、後輩で「C / C++ でテキストエディタ作る本を書きたい」と言っている人がいたので、マルチメディア研究会の次回作にご期待ください!!!

【C97 4日目】「Unityでリズムゲームを作ろう」を頒布します【頒布情報】

追記事項 2020/1/1

この記事で紹介している本をboothで頒布開始しました!よろしくお願いします!

ダウンロード版
https://ecml.booth.pm/items/1739359

書籍版
https://ecml.booth.pm/items/1739286

(追記ここまで)

 

こんにちは、ご無沙汰しております、Boltzです。
今回のブログではイベント出展の告知をします!

C97とは

12月末に東京ビッグサイトで行われる同人誌即売会です。通称冬コミ。
今回、マルチメディア研究会は「C97」にて販売スペースをいただけたので、技術同人誌を販売することになりました!

初めて作った「リズムゲーム制作Howto本」を頒布します。

(リズムゲームとは、音楽に合わせてタイミングよく操作するタイプのゲームです。巷で言われている音楽ゲーム, 音ゲーみたいなやつです)

 

サークルスペース情報

・日時: 2019年12月31日(火 C97 4日目) 10:00 – 16:00
・場所: 南ユ26a

 

書籍情報

初めてサークルで本を作ったのですが、
なんと200部も発注してしまいました(ノリで……。)

また、この本は今年の4月から書いており、
148ページという厚さになってしまいました。

ゲームをつくってみたいけどアイデアが浮かばない方、
リズムゲームの実装方法に迷っている方など、多くの人に読んでいただきたいと思っています。

リズムゲームの実装方法に迷っていた1年前の自分なら絶対買います!!!

サークルブースで販売しているので、お買い上げいただけると嬉しいです!!

こちらから、試し読みもできます!

12/31 コミケ終了後からダウンロード販売も行う予定です

残念ながらコミケに来れない、という方もこちらのサークルツイッター にて情報発信を行うので、
フォローしてお待ちいただけると幸いです。

 

制作秘話

先ほど「リズムゲームの実装方法に迷っていた1年前の自分なら絶対買います!!!
と書いていましたが、当時路頭に迷っていた私はどうやって実装方法をつきとめたのかというと、

第1章の著者のゆゆくん(Twitter: @yuyu0127_)に直接実装方法を聞きにいきました

ゆゆくんはこれまでいくつものリズムゲームを作ってきた人で、ネットの一部界隈でも有名なので
直接エンカしに行った感じですw

そしたらかなり根本的な部分から丁寧に教えてくれたので
なんとか当時作っていたリズムゲームを完成までもっていくことができました。

この時の経験から、サークルで「リズムゲームの作り方Howto本を書こう」という企画が出たときに
ぜひゆゆくんにもプログラミングのパートを担当してもらいたいと思い、声をかけさせていただきました。

すると、まさかの100ページ超えの原稿を上げてくれて、
紙面上でもとても丁寧な解説をやってくれました。

本の校正のため、数回本の読み直しと、サンプルのコードのプログラミング(リズムゲーム本RTAといいます)を行いましたが、
わかりやすく書かれており、スピーディーに読み進めることができました。

この本には他にも色々載せていますが、
プログラムの章は本当におすすめです!!

以下、書籍情報を載せています。

 

【目次】

・はじめに

・第1章 Unityでリズムゲームを作ろう
– まずは見た目から入る
– ノーツの挙動を考えてみよう
– ノーツの挙動を実装してみよう
– 譜面を読み込もう
– 判定を実装しよう
– 音を再生しよう
– スコアとコンボを実装しよう
– 選曲画面を作ってみよう

・第2章 自作コントローラを考慮した UI 設計
– ボタンガイド
– フォーカスが移動する方向

・第3章 頻用される特徴的譜面配置の分析
– 音楽ゲームの機種の特徴・分類について
– 譜面配置各論

・付録 サンプルデータ(第1章プロジェクトの完成形)
– Unityプロジェクトディレクトリ, サンプルゲームをGitにて配布

 

【商品情報】

この本は2019年12月31日にコミックマーケット97(冬コミ)で頒布されます。

『Unityで作るリズムゲーム』
B5サイズ技術同人誌(148ページ) / 1,000円

今日からオリジナルリズムゲーム作りをはじめよう!

 

【この本の特徴】

・Unityでのリズムゲーム作りがまるごとわかる!
・実際に手を動かしてゲーム制作をできる
・ロングノーツやソフラン(曲中のテンポ変化)の実装方法も詳しく解説!
・演奏画面を作った後の「UI設計」や「譜面制作」の考え方も紹介
・サンプルデータをオンラインでダウンロード可能

 

【この本の対象読者】

・リズムゲーム制作について興味がある人
・Unityを触ったことがあるものの、実際のゲームの組み方がわからない人



長大祭にてイベント「Game Center Next」を行いました

11月2日、3日の2日間にかけて長大祭が行われました!

マルチメディア研究会は、去年に引き続き部員の作成したゲームを遊べるイベント「Game Center Next」を開きました。

今年は、オリジナルCDの販売、1年生だけでUnityを使って制作したゲームの出展など新たな動きも始めました。

去年より多くの方にご来場いただきありがとうございました。

ただ、予想以上の方にご来場いただいた結果、時間帯にもよりますが、待ち時間が長くなってしまうなど、新たな課題も出てきました。

まだ少し手探り状態な部分もありますが、皆様の意見を受け止めさらにより良いものにしていき来年も開催いたします。来年の長大祭へのご来場もお待ちしています。

 

出展ゲーム紹介

以下、出展ゲーム紹介です。

 

長大祭 開催!

はじめまして、マルチメディア研究会1年の「じーすりー」です。入部して半年以上経つのに今まで書いたことがなかったのですが、自分も広報の人間なので今後更新する機会も増えると思います。

さて、いよいよ長大祭始まりました!

マルチメディア研究会ではサークルのメンバーが制作したゲームをゲームセンターとして展示しております。

今回、本サークルではシューティングゲームやリズムゲーム、2Dスクロールゲームの展示を行い、また新たな試みとして、サークルで制作したCDの販売も行っています。

自分はロードと言うアルマジロが主人公の2D横スクロールゲームにプログラマーとして参加させていただきました。初めての経験だったので、不安要素しかなかったのですが、1つの作品を作り上げることが出来たのでよかったです。

初日は、小さなお子様の方から大人の方まで、幅広い年齢の方に楽しんでいただけたかなと思います。反省点も多くありましたが、それらを明日に生かしていきたいです。

自分は主に受付の方を担当していたのですが、少し不慣れな部分があったので、明日は柔軟な対応を出来たらいいなと思います。

 

最後に・・・

一日目は無事終了しましたが、明日もゲームセンター行っていますので、ぜひともA-23教室にお越しください!

長大祭に出展するゲームの宣伝

みなさん、どうもお久しぶりです、ごジンクスです!明後日、いよいよ長大祭が開催されるので、私たちが作ったゲームの宣伝なんですが、その前に余談として、自分の趣味をかたらせてくれーーー!!!!

 

1.  心配すんな、ここでは余談しか話さねぇ

今回の余談は、

 

ドラゴンボールヒーローズ

 

についてです!!

皆さんはドラゴンボールヒーローズをやったことがありますか?私が小中学校の頃は、よく遊んでおり、

スーパーレア、アルティメットレアが出たときはすごく興奮していましたねぇ~!!ただ、高校に進学してからは、全く遊んでおらず、PVとアニメを見るだけで、満足するようになってしまいました。

 

しかし

117日より稼働のユニバーサルミッション第11弾で、

ドラゴンボールヒーローズは9周年を迎えました!!!

 

さらに、9周年の間ナビゲーターを続けていたトランクスが、

ついに、ゴットの領域に!!!!

 

しかも、過去にリリースしたいろんなカードが復刻するから、使いやすいカードがたくさん手に入る!!?

 

さらにさらに、今回の復刻アルティメットレアを合わせると、なんと18枚!!!

 

これを聞いたら、なんだかやりたくなってきました!皆さんも、このブログを見て、やり始めてくれるとうれしいです!!

 

2. ご注文はゲームですか?

まぁ、趣味の話は、ここまでにしてゲームの宣伝をしたいと、思います。(急に真面目ぶってんな~笑)今回紹介するゲームは、NOVAEとロードの2つを紹介したいと思います。

 

2.1   NOVAEについて

NOVAEは、2D横スクロールシューティングゲームで、機体は2種類に変化でき、敵を倒していきます。私も、テストプレイさせてもらいましたが、最後までクリアできませんでしたが、とても楽しかったので、お金を払ってでも、もう一度やりたいです!!!!

 

2.2 ロードについて

ロードは2D横スクロールアクションゲームで、私がディレクターを務めました。初めて、みんなでゲームを作るのは、初めてだったので、つたないところがあるかもしれませんが、楽しんでもらえたら、うれしいです!!ストーリーも私が担当したので、見てもらってくれると、私がとても喜びます!!!

 

 

じゃあ、今回の私のブログは、ここまでにします。

たくさんのご来場お待ちしております!!!