あのゾンビより

プログラミング、VR、ゲームなど趣味の記録

今年の活動振り返り2018

初めて1年の振り返りを書きます。

f:id:anozon:20181231113623p:plain
anozon 2018 contirubte

作ったWebApp

作った module

まとめ

個人開発に費やす時間がが圧倒的に減っているのが残念。 それぞれの開発スピードやスマートなやり方は身についていると思うのでもう少し手を動かしていきたい。 module や CLI 開発ができるようになったのは開発の幅が増えた。テストスキルも少し上がった。 振り返ってみるとプロダクトについて全然アウトプット出来ていないので何か対策を考えたい。

バーチャルマーケットに「行ってきた」

ぼくは最近 VRChat 触り始めた初心者です。 バーチャルマーケットで貴重な体験をできたことと、特別思うことがあったので書きます。

バーチャルマーケットを知って VRChat を触ってみた。

バーチャルマーケットを知ったのはつい最近でした。(2018年8月中旬) それをきっかけに VRChat を初めて触りました。

最初の所感は上ような感じです。

デスクトップモードでやりました。 環境は MacBookparallels からの Windows です。VM 環境なのでやっぱりカクカクでした。(しかも背景とかノイズっぽくて表示されない。)

バーチャルマーケットの準備でPC買った

バーチャルマーケットは本気で体験したいので、環境を整えることしました(デスクトップモード)。 Core i7、メモリ 32G です。グラボはあまりきにしてなくて内臓の Intel UHD 630 でした。

ネットで注文して一週間待ちました。

バーチャルマーケット前日にマシンが届きました。 サクッと Windows 環境をセットアップしました。

VRChat の世界に入ってみたら Hub で若干重たくて不安になりました。だけど動作を軽くできないか調べてみたら、Window サイズを大きくしてしまったのが原因だったぽくて解像度を調節したら軽快になりました。

フィオさんの放送を見ながら

バーチャルマーケット当日

最初ワールドへの入り方が若干わかりずらくて戸惑いました。しばらく待ったら初 req invite 承認されました。 (あれ?知り合いしか入れないイベントだった!?とヒヤッとした)

その関係で YouTube のフィオさん(主催者さん)の放送にたどり着きました。この放送はマジで見てよかったと思ってます。ブースや出展者さんの丁寧な説明があって、初心者の僕にとって勉強になりました。界隈の有名人やVRChat、アバターの専門用語も知れました。

あと運営の多くの努力でなりたったイベントだったこともわかりました。本当におつかれさまです。

Twitter では #バーチャルマーケット タグを追いました。トレンド 1位おめでとうございます。

バーチャルマーケットの良かった体験

かっこいいワールド

会場のワールドがかっこいいのです!広くし開放的だし装飾が浮いてるし会場も浮いてるし綺麗でした!

おしゃれなブース

バーチャルならではなブースがたくさん並んでいるのは本当にワクワクしました。 (これが現実でやろうと思ったら、後処理も含めてどれだけ無駄な人手や資源が必要になるだろうか) ブースも作品の一部として楽しめました。

広告パネル

僕は地味に広告やポスターにワクワクしてました。VRイベントの宣伝が垂れ幕や看板で飾られていてお祭り感を増してました。映画館のシアター入る前の広告みたいな。SF 映画に出てくる派手な広告ではなかったけど、逆に雰囲気に合っててよかったのかなと思います。

無料配布アバター

f:id:anozon:20180830065756j:plain

モクリのアバターが配布されていました。 「特別なお土産手に入れたぜ!」となりました。(行かなくて手に入ります。)イベントの記念になりました。

アバターはいいぞ

正直アバターについては興味なかったけど今回でめっちゃ興味がわきました。バーチャルマーケットを知ったときもアバター展示がメインっぽいのをわかっていながらアバターにはあまり興味がなく、ブースやオブジェクトの展示を少しでも楽しめたらなと思ってました。

しかし VRChat でアバターワールドにいったり、バーチャルマーケットでブース回ってて楽しさがわかりました。試着できるのがやっぱり大きいです。

自分のアバターは作ろうくらいに思っていたけど、やる気が出て、ぬこみやさんの素体を購入しました。(Liveで汎用性の高さなどオススメされていたので)

知り合いと合流して VRChat

バーチャルマーケットは終わった後で VRChat やってる知り合いと初めて合流しました。おすすめワールドを紹介してもらって一緒に探検できて楽しかったです。日本の上空を散歩できるワールドや、万華鏡やボーリング場などワクワクしました。

同日夜の cluster. で VRoadCaster を聞いた

第14回 V-TV 輝夜月さんライブ直前 Cluster ×VRoadCaster 公開生放送 アフタートーク - YouTube

cluster. は 2年ぶりくらいに使ったのですが進化していて良さを感じました。 視聴席を気にせずに歩き回れる気楽な雰囲気で面白い体験でした。

バーチャルの可能性や課題について真剣な議論が聞けて、視聴者のコメント含めていろんな意見が流れていました。

あと、あの場に自分のモデルで参加している人も結構いました。突発なのでデフォルトアバターの自分は羨ましさを感じました。

幻想的なワールドを旅したい

f:id:anozon:20180830065742j:plain

f:id:anozon:20180830065802j:plain

昔よく幻想的な絵を見ると、その世界に飛び込みたいと思ってました。上のはそのうちの2例です。

(どちらも昔の拾いもので出典が追えなくて原作者さんを特定できなくて1すいません><)

そこで6年前、モデリングの勉強をして3D空間で少しでも再現してみようとしました。

f:id:anozon:20180830065752j:plain

f:id:anozon:20180830065834j:plain

それでできたのが上のモノです。(当時使ってたのはメタセコイアです。) パラソルの方はいわゆる4次元で屋根の内側に奥行きがあります。

さらに作ったモデルや描いた絵を3D空間に飾りたいなと思い、1人称視点でワールドを移動したり、モデル設置、編集ができるエディタを作りました。Dx ライブラリです。

www.youtube.com

こんなことしながら、全世界が3D空間上でつながって、そこでコミュニケーションしたり、ショッピングも売り物の 3D モデルを見ながらやったりする世界を夢に見てました。

それから 5年ほど Web ばかりやっていて 3D から離れていたときに Twitter の TL で目に入ったのが バーチャルマーケットでした。

これからやりたいこと

1つは上に書いたように絵の世界を再現して探検したいです。 モデリング技術をつけていく必要がありそうです。

1つはこの分野を発展させるサービスを作っていきたいと思います。 ノウハウの共有効率化するサービスやツールの作成や、バーチャルならではの発想を研究したいです。

もう1つは、最近、夢から飛び起きるほど幻想的な景色を見て、すぐに紙に 特徴をスケッチしました。 それをワールドとして実現したいです。

最後に

VRの分野を本気で楽しんだり、盛り上げようと挑戦してる人がたくさんいて、その存在を知れたのが嬉しいです。

VRChat に限らずバーチャルコンテンツの発展を祈ってます(そして自分でもやっていきたいです)。

バーチャルな世界では人が想像する夢のような世界を再現することができます。そして生み出された世界をみんなで自由に旅できます。

こんな素晴らしいアイディアに、ワクワクしない人なんていないでしょう?


  1. まとめサイトや壁紙サイトに出回りすぎてて

インターネットIDを anozon (あのぞん)にした理由

はじめまして。あのぞん(anozon)です。

初記事ということで anozon という ID について書きます。

この ID に決めた理由や基準がいくつかあるので、「これからインターネットID を決めようと思ってる人」のために残しておこうと思います。

(私はネット初心者ではないです。別の ID で6年間活動していた経験を元にしてます。)

ID の決め方で重視した点

優先した順に説明します

Twitter ID が空いている

新しいIDでも一番使っていこうと思ってる SNS だから重視しました。

ドメインもチェックしましたが anozon.com だけ amazon に取られていました1。他の TDL が一つでも取れればいいかな楽観的なのでそこは妥協しました。ちなみに anozon.me を取りました。

アルファベット6文字にする

5文字以下のIDを登録できないサービスが多いから6文字にしました。

発音からID が書きやすい & IDから発音がわかりやすい

anozon → あのぞん あのぞん → anozon

と相互に変換しやすいように選びました。「shi」「si」「ra」「la」などは避けました。 知り合いの ID を絞り込みにくいことがたまにあったからです。あと表記ゆれ防止です。

プログラマブルに anozon を選んだ手順

ここからは細かい話です。 Twitter ID が空いていることを最も重視しているので手作業で 1つずつ確認するのは面倒だし少しプログラムを書きました。

もうすこしこだわり条件を追加する

上記条件だけだと候補が膨大にあります。 なので a から始まる IDをとることにしました。リストアップで上の方に出る可能性が高くなるからです。 そこでアルファベット6文字の条件があるので「ん」を入れて「a + (ひら2文字) + n 」、「あ◯◯ん」にすることにしました。

条件に合うIDをダンプする

まずひら2文字の部分は2文字のかなローマ字なのでそれを全部出力します。 正規表現だと [bcdfghjklmnpqrstvwxyz][aiueo] にマッチするものです。

github.com

python のライブラリが見つかったので python で書きました。

regex = "[bcdfghjklmnpqrstvwxyz][aiueo]"
names = sorted(list(sre_yield.AllStrings(regex)))

その中から読みやすそうな文字にしぼります(ここは手作業でやった)。

  # |--|--|--|bo|--
  # |--|--|--|do|--
  # |ga|ge|--|go|--
  # |ha|--|--|--|--
  # |ja|je|--|--|--
  # |--|ke|ki|--|ku
  # |ma|me|mi|mo|mu
  # |na|ne|ni|no|--
  # |pa|pe|pi|po|--
  # |sa|se|--|--|--
  # |ta|te|--|to|--
  # |wa|--|wi|wo|--
  # |ya|--|--|yo|yu
  # |za|ze|--|zo|--

aほげn の候補をダンプします。

  rbon = "(bo|do|ga|ge|go|ha|ja|je|ke|ki|ku|ma|me|mi|mo|mu|na|ne|ni|no|pa|pe|pi|po|sa|se|ta|te|to|wa|wi|wo|ya|yo|yu|za|ze|zo)"
  r2 = "a{rbon}{rbon}n".format(rbon=rbon)
  names = list(sre_yield.AllStrings(r2))
  print(json.dumps({"names": ",".join(names)}, indent=2))

1444件ありました。

Twitter で空いてる文字にしぼりこむ

Twitter API の説明は省きます。

users/lookup API で 100件ずつ screen_name のユーザを取得できるので 14回叩いて結果を merge しました。

f:id:anozon:20180822160247p:plain

1444件のリストから取得できたユーザの ID の集合を引いて 130 個 に絞り込めました!

これで使えるTwitter ID の絞り込みは終わりかと思ったら少し違いました。

API で取得できない凍結ユーザがまだ残っていました。

すぐにはいい方法が思いつかなかったので https://twitter.com/ユーザ名 を叩いて帰ってくるステータスコードでフィルタしました。

import names from '../../data/names-none.json'
import axios from 'axios'

const main = async () => {
    const usables = []

    for (const name of names) {
        await axios
            .get(`https://twitter.com/${name}`)
            .then(() => {})
            .catch(err => usables.push(name))
    }
    console.log(JSON.stringify(usables))
}

main()

結果以下の 26個数に絞られました。

["aboyun",
"ajepen",
"ajeyon",
"ajeyun",
"akuwon",
"aneyon",
"anozon",
"apeton",
"apewon",
"apeyun",
"apoyun",
"awimun",
"awizon",
"awojen",
"awomun",
"awopin",
"awowin",
"awozan",
"awozen",
"azebon",
"azejen",
"azepen",
"azewon",
"azeyun",
"azomun",
"azowon"]

6文字とはいえ良さげな ID は枯渇しかけてますね。

この中からは発音の良さと google 検索結果を見ながら anozon に決定しました。小文字アルファベットが上にも下にも突き出さないところも気に入っています。

他の ID は僕はいらないので、欲しい方はどうぞ使ってください。

危惧してること

エゴサ汚染

例えば「あの日見たゾンビの名前を僕達はまだ知らない」というラノベがヒットして「あのゾン」という略語がはやったらやだなーと思ってます。

スパム

amazon を偽った anozon のスパムメールTwitterでいくつか報告されてました。数は少ないので駆逐されたのかなと思います。

おわりに

ということで、anozon はちょっとこだわりを持って選んだ ID でした。大事に使っていきたいと思います。 選ぶ手順で Twitter API を叩くときに Insomunia という http クライアントアプリを使いましたが、ここはコードで書いてもっと自動化できそうですね。


  1. 大手サイトはユーザのタイポをカバーするためにリダイレクト設定するドメインをとっておく