arm64のUbuntuでPython+Seleniumを動かす方法

Oracle Cloud Infrastructure (OCI) でSeleniumを動かしたときのメモ

arm64ということもあり色々ハマったが、適切にやればすぐできる

環境

シェイプ: VM.Standard.A1.Flex

イメージ: Canonical-Ubuntu-22.04-aarch64-2022.08.10-0

やり方

sudo apt update
sudo apt upgrade

はやっておいた後、

sudo apt install python3-selenium

するだけ。これだけでchromium関連のものとpipにseleniumがインストールされるっぽい。そのため自分で

pip install selenium

chromiumのインストールをする必要はない。ただしインストールされるseleniumのバージョンは、執筆時点では最新版ではなく4.0.0a1だったため注意が必要かもしれない。

Pythonのコード側の注意

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--headless')
# または options.headless = True
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--remote-debugging-port=9022')
driver = webdriver.Chrome(options=options)

とする必要がある。上3つのoptionが必要そうなことは調べればすぐ分かると思うが、一番下は気付くのに時間がかかった。SSH接続越しに利用するときは必要っぽい。ポート開放も必要かも? ここが上手くいってないと

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed.
  (unknown error: DevToolsActivePort file doesn't exist)

のようなエラーが出るはず。chromedriverなどのパスの指定や、start-maximized、disable-infobars、--disable-extensionsのオプション指定の必要はなかった。これらの対策をしてもエラーが出るときは Issues · SeleniumHQ/selenium · GitHub で解決策を探すのもありかも

その他

chromium関連のバージョンを合わせたいときに

pip install chromedriver-binary=***

を使ってみたがこれは上手くいかず、

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
(The process started from chrome location {binaryのパス} is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

のようになってしまう(パスは忘れた)。このbinaryのパスでchromeを起動すると分かるが、上手く起動できずクラッシュしてしまう。軽くググってみても原因は分からなかった(このライブラリのGitHubのIssueにもなかった)。arm64であることが影響しているのだろうか?

その他2

元々私はここ(arm64のubuntuにchromium, chromedriverを入れる方法 | さらいふ)を参考にインストールを進めようとしていた。しかし、最新版のビルドが終わってなかったため少し古めの(バージョン90だったと思う)をインストールしたところバージョンのズレが生まれ苦しむことになった(ここを参考にする前にすでにsudo apt install python3-seleniumを実行していたり他の方法でchromiumを入れようとしていたりなどでバージョンがごちゃごちゃになっていた気がする)。もしそうなってしまった場合は

apt search chromium

chromium関連のパッケージを探し、

chromium-browser/jammy,now upgradable to 1:85.0.4183.83-0ubuntu2 arm64
chromium-chromedriver/jammy,now upgradable to 1:85.0.4183.83-0ubuntu2 arm64

のような表示があって(うろ覚え)upgradableなバージョンが一致していれば

sudo apt update
sudo apt upgrade

でバージョンが一致すると思う。私はこれやったら一致してプログラムが動くようになった。

【osu!mania】10keyを始めよう!【音ゲー】【鍵盤ゲーム】

この記事はB4UT Advent Calender 2021の二日目の記事です。

 

音ゲーの中には様々な鍵盤ゲームが存在します。例えば鍵盤部分に注目すると弐寺は7key、ボルテは4key+2key、OverRapidは6keyか4key。他にもMalodyやosu!maniaで4key、7keyをプレイしている人は多いと思います。しかし、これらの鍵盤ゲーでは、固定運指で遊ぶ場合一部の指しか使いません。そんな時、全部の指を使った、10keyの固定鍵盤ゲーを遊びたいと思うのは当然ですよね?

実は10keyの鍵盤ゲームは実際に存在します。いくつかの音ゲーで10keyを遊ぶことができますが、ここでは主にosu!maniaでの10keyの導入方法を解説していきます。現在10key人口は非常に少ないため、この記事が10keyを広める一助になればと思っています。

そもそもosu!maniaって何?という方や10keyって何?という方はまず以下の動画を見てみてください。こんな感じの音ゲーです。

youtu.be

 

それではこのゲームを始めるための手順を解説していきます。この記事ではkeyをk、scratchをsと略しています(例: 弐寺の7key1scratch→7k1s)。LNはLong Notesの意です。

 

1. osu!をインストールする

ここの解説は他の記事に丸投げします。ググってインストールし、アカウントを作ってください。

 

2. 10keyのDiscordサーバーに入る

Discordには10以上の鍵盤数を持つ音ゲーを愛する世界中の人々のためのコミュニティがあり、そこで様々な10kのリソースを受け取ることができます。Discordのアカウントを持っていない場合は作成し、以下のリンクからサーバーに入りましょう。

discord.gg

サーバーに入るといきなりbotからメンションが飛んできますが、ルールを確認してね!と言われるだけなので安心してください。

f:id:GrGuruto:20211128152018j:plain

チャンネル解説(抜粋)

#welcome-and-info: まずはこのチャンネルを見てルールを確認してください。ルールの他に10kのリソース、段位についての説明があります(この記事でも解説します)。24kや48kのBMS段位のリンクもあるけど、どこから持ってきたんだろう…?

#roles: 自分のプレイするkey数やプレイスタイル、言語を選択して自分にロールを付与することができます。言語を選択するとその言語専用のチャンネルを閲覧できるようになります。日本語もあるので選択しておきましょう。

#general: 10kについての雑談チャンネル

#mapping: 譜面作成について話すチャンネル

#map-releases: 作成された譜面を宣伝するチャンネル。譜面集めにも使えます。

 

 

3. 譜面をダウンロードする

10kの譜面を探すことは4kや7kに比べると難しいかもしれませんが、10k鯖には10kのほぼ全譜面をまとめたファイルがあります。PCの容量に空きのある人は、welcome-and-infoチャンネルのResources欄の"The Complete 10K Mania Pack"をダウンロードしてしまいましょう(約5.7GB)。これだけで約2500譜面が揃いますが、あまり容量が空いていないという人のためにもいくつか譜面パックを紹介しておきます。

・10K2S collection Object by MKTR - 10K2S Collection · beatmap info | osu!

10K2SのBMSの譜面から皿を取って10kの譜面にしたものを集めたパックです。パックは10種類以上あり、これらだけでもかなり多くの譜面を集めることができます。BMS産ということが影響して、osu産の譜面に比べるとLNが少ないです。(なぜかお前絶対BMSじゃないだろ!という曲も含まれています)

・SK_la's 10K PACK la's 10K PACK - Anime · beatmap info | osu!

"osu mania 10k pack"でググるとトップに表示されるパック。こちらも10種類以上のパックがあり、上のリンクから入手することができます。

・Flow Various Artists - Flow (Part 1) · beatmap info | osu!

低難易度の譜面が集まったパックです。初心者の頃にこのパックを知りたかった。

 

4. キーコンフィグを設定する

osu!maniaでの10kのキーコンフィグは5k-coopの場所で設定できます。テンキーレスのキーボードを使っている場合は tab q w e c , p [ ] \ (画像1枚目)や、caps a s d c , l ; ' enter(画像2枚目) といったキーを使っている人が多いようです。JP配列のキーボードはエンターキーが二段に広がっているため、右手の位置を左にずらした方がやりやすいかもしれません(画像3枚目)。テンキー付きのキーボードの場合は a s d f space 0 7 8 9 + といったキー配置も可能でしょう。

f:id:GrGuruto:20211201000131p:plain

1. 私のキー配置

f:id:GrGuruto:20211201000224p:plain

2. capsキーに割り当てできれば使える配置

f:id:GrGuruto:20211201000249p:plain

3. 真ん中に寄せた配置

 

5. スキンを設定する

普段4kや7kをプレイしているスキンは10kに対応していない可能性があるため、10kに適したスキンに変えた方がプレイしやすいかもしれません。#welcome-and-infoチャンネルのResources欄の"10k+ resources spreadsheet"という名前のスプレッドシートの中に様々なスキンのダウンロードリンクが載っているので、ダウンロードして色々試してみましょう。ここではその内のいくつかを紹介します。

・SK_laスキン

f:id:GrGuruto:20211201003004p:plain

 

・XDerbyXスキン

いくつかのバージョンがあり、ver.5はver.4に比べノーツが太くなり、LNの見た目も変わっています。元々はカラフルなスキンですが、私は二枚目の画像のように自分で色を減らしたver.4の改造版を使っています。

f:id:GrGuruto:20211202184837p:plain

ver.5

f:id:GrGuruto:20211201003211p:plain

二色に減らしたver.4

 

・narrowスキン

スプシ内ではnarrowスキンと書かれていますが、実際の名前は"Osu!Mania DP skin+"です。その名の通り、上二つに比べると見た目が細長いです。スプシにあるwideスキンはこれを幅広くしたものです。

f:id:GrGuruto:20211202182551p:plain

 

 

6. 段位を受けてみよう

4kや7kのように、10kにも段位が用意されているので実力試しとして受けてみましょう。10kの段位は二種類あり、一つはオスマニ産の段位、もう一つは10K2SのBMSを流用した段位です。mania段位は0~9段とζ段の11種類、BMS段位は1~10段と皆伝、Catastoropheの12種類があります。mania段位は曲ごとに譜面傾向が決まっており、0~5段にはJack、LN、Speed、Stamina譜面が含まれています。6段以上になるとさらにTechnical譜面が追加されます。また、mania段位とBMS段位の難易度関係は、大雑把に言うとmania段位n段≒BMS段位n+2となっています。

これらの合格条件は、全曲をポーズなし、(hidden, fade in, flashlight, hard rock, mirror, doubletime, nightcore以外の) MODなし95%以上で完走することです。段位に合格したリザルトを10k鯖の#scores チャンネルにアップロードし、Moderatorにメンションすると段位ロールを得ることができます。

mania段位: osu!mania 10K Dan (段) Courses · forum | osu!

BMS段位: Various Artists - 10K BMS Dans Phase I · beatmap info | osu!

 

7. 10keyの世界ランキングを確認してみよう

10K leaderboard というサイトでosu!maniaの10kだけの世界ランキングを確認することができます。集計の対象となっているのは10kの全てのLoved譜面とRanked譜面で、ppの総合計で順位が決まっています(余談ですが、対象譜面を一度でもプレイしたことのある人はこのサイトに名前が載るため、サイトに登録されたユーザー数を確認すると10k人口の少なさが分かると思います)。

 

8. 10keyのマルチ会に参加してみよう

10k鯖では毎週、初心者からランカーまで世界中の10k勢が参加するマルチを行っています。人が集まらず会が消えることもありますが、現在は日本時間の土曜日15時からと、24時からの週二回行っています。botの投稿に反応すると下のように直前にリマインダーを送ってくれます(反応しなくても参加できます)。時間になると他の参加者が10k部屋を立てて、discordから参加できるようにしてくれると思うのでそこからマルチに参加しましょう。様々なレベル帯の人が参加するため、あまり高難易度の譜面は選ばれないので安心してください。また、時々マルチをしながら通話をすることもあるので、英語の分かる人はそこに参加するのも楽しいかもしれません。

f:id:GrGuruto:20211201005747j:plain

botがリマインドする様子
リアクションボタンで行くかどうかの意思表示ができます


9. その他(10keyの遊べる他のソフトについて)

10kを遊ぶためのソフトは他にも存在するので、ここでも少し触れておきます。

・Soundsphere

bmsksh、osu、midiファイルなど多くの譜面形式に対応しているソフト。譜面を自動でconvertし任意のkey数に変更する機能があります。10k鯖にSoundsphere公式鯖へのリンクがあるので、その鯖から導入方法を確認できます。Soundsphereについての情報はかなり少ないですが、インストール方法を説明した動画を貼っておきます。

How to install soundsphere, add charts and skins - YouTube

・Malody

10kのosuファイルを再生することでmalodyでも10kをプレイすることができます。

 

おわりに

これで10kで十分に遊ぶことができると思います。良い10kライフを!

気になることがあった時は、Discordの10k鯖で質問すれば皆優しく答えてくれます。英語が厳しいという方は日本語チャンネルを使ったり、私個人のTwitterやDiscordに来ていただいたりしても大丈夫です。

 

TwitterGrGuruto (@GrGuruto) | Twitter

ぐるぐると (@0TURG) | Twitter

Discord: GrGuruto#0602

【Deemo】Aragami(Extra) AC攻略

こんにちは、ぐるとです。2021年5月にAragami(Extra)をACしたので、意識していたことをいくつか書きます。鍵盤の精度地力がなくてかなり苦労しました…。当時の4kの実力はMalody 10th Dan(中華段位)でした。

AC手元動画はこちら

youtu.be

 

この記事では親指~小指の指番号を1~5、右手を赤色、左手を青色としています。BT-Aのような4鍵の位置を表す表記はボルテから借りてきました。

 

1. 開幕4k

24分連打の混ざるところがこの曲の最難(Aragami専門家の方もそう言ってた)。ここの勝率は最後まで高くならなかったが、すぐリセットできるから回数でゴリ押した。回数は積めるが癖もつきやすいから、いくつか以下のような運指のストックを持ってそれを回避するようにしていた。bpm196の24分を楽に追いつけるとここの難易度も下がりそうに思う。

ちなみに24分両手トリルの後のBT-D→BT-Aの階段のリズムも24分。ずっと16分だと勘違いしてて、光らないな~と思ってたらそういうことだった。Aragami専門家に指摘されるまで全く気付けなかった。

f:id:GrGuruto:20211123235015j:plain

メインに使っていて、AC時にも使っていた運指
人差し指で連打するから24分が楽に追いつく

f:id:GrGuruto:20211123235304j:plain

固定気味に餡蜜を使った運指

f:id:GrGuruto:20211123235358j:plain

BT-BとBT-Cの間の位置を叩くと餡蜜を一打増やせる

32分に入る前のちょっと汚い配置は指を増やして片手での折り返しを避けた。初FC時からこの運指。

f:id:GrGuruto:20211125111234j:plain



2. 12分が続くところ

f:id:GrGuruto:20211124233657j:plain

時々グレる。左に出っ張ってるゴミ(画像のこれ!ってやつ)のために薬指を使っていたから、左薬指と右人差し指を同時に押す意識をしていた。

 

3. サビ前

f:id:GrGuruto:20211124234528j:plain

同時押しがあるせいで右が16分で叩かされ(画像の矢印)、そのあと24分に入るのが地味に難しい。打音を大きくして両手トリルが抜けなくなるように意識した。24分トリルのあとの配置はゴリ押し。はじめは指押ししようと考えていたが意外と難しかった。

スクショ撮ってみて初めて気付いたけど、同時押しのあとの24分のはずの両手トリルのノーツが等間隔に置かれてない…。なんで?

 

4. サビ

f:id:GrGuruto:20211125001008j:plain

大難所その2。正攻法で出来たら光りやすいかなと思ってたけど、エイム力と連打力が足りずできなかった。餡蜜の叩くタイミングは最後まで掴めなかったから感覚任せ。餡蜜で4回叩いたあとは16分の両手トリル。昔はここのスライド苦手だったけど、腕を交差させる運指にしたら安定して通るようになった(他人の運指をパクった)。

 

5. 4本指スライド地帯

f:id:GrGuruto:20211125001312p:plain

気を抜くと始点でスライドがグレる。アクセスガイドをオンにして、叩いた瞬間から指を大きく動かす。

(ここの同時押し、よく見ると本当に同時にノーツが置かれているわけではない)

 

6. ラスト4k

大難所その3。そもそも難しいのにAC通過すると心臓バクンバクンなって死ぬ。意識する点は、24分の降ってくる位置を覚えて拍頭をリズムキープすること。

下の画像の同時押しが混ざる配置で毎回グレてしまっていたため運指を組んだ。本当は固定で行きたかったけど、4kでの同時押しの意識は難しい。

f:id:GrGuruto:20211125004940j:plain

 

最後の24分は開幕4kのように固定を崩し、連打を叩きやすいようにした。両手トリル後に一か所餡蜜を入れると打数が分かりやすくなる(24分×10の両手トリルのリズムで叩いても通る)。これも他人に教えてもらった運指で、本当にありがたい。その後のスライドは結構抜けやすいから、大げさに動かす。

f:id:GrGuruto:20211125183553j:plain

これでAragami(Extra) All Charmingです。お疲れさまでした。

f:id:GrGuruto:20211125212241j:plain

 

おわりに 4kの鍵盤力はAragami攻略に役立つか?

私は大いに役立つと思います。全く4kできない人でもAragamiの理論値は出せると思いますが、鍵盤力があった方が癖が付きにくくなると思っています。ただ、Aragamiでは理論値を出すことを目的とするため、多少のミスは許されるような発狂力よりも一グレも出してはいけない理論値力が重要になりそうです。私は普段発狂系の練習しか行っていなかった影響もあってか、この曲を詰め始めた時全く4k部分が光りませんでした。そのため、OverRapidの4kで理論値を出したり、MalodyでDeemoにより近いスキンで精度を上げたりする練習をAC取得前一週間くらいは行っていました。理論値を取る意識を掴むのにちょうどよかったです(荒神AC直前の動画: Novatail 4k Pro MAXX【OverRapid】 - YouTube )。

質問があれば私のTwitterへどうぞ。

 

 

GrGuruto

Twitterぐるぐると (@0TURG) | Twitter