まるまるこふこふ

数々の次元が崩壊し、全ての生命が塵と化すのを見てきた。私ほどの闇の心の持ち主でも、そこには何の喜びも無かった。

英会話もシャドーイングも発音訓練も避けて英検1級に受かる

さいです。普段はソフトウェアエンジニアをやっています。英語学習をしていて、先日その成果が実って、英検1級に合格することができました。国内の英語最難関資格の一つであり、TOEIC900~950相当です。

英検1級に合格したのですが、今まで英会話やシャドーイング、発音訓練はしたことありません。※英会話のみ、正確には嘘です。後述します。

今日はその合格に至るまでに英語学習の中でやってよかったことを記述したいと思います。

メンターを捕まえる

英語学習は継続が重要です。毎日継続できるかが大切になってきます。しかし英語学習は苦痛です。単語は暗記せざるを得ないし、文法は例外だらけで個別の事象を一つ一つ暗記していかないといけないし、リスニングやスピーキングは耳や口といったフィジカルを鍛えていく作業となります。

例えばコンピュータ・サイエンスの学習は、一つの概念を学ぶと、他の概念に適用できるので、学べば学ぶほど理解が加速していく現象に出会えるし、コンピュータというものがどうやって動いているのかという「なぜ?」に答えてくれる知的好奇心が満たされる行為です。しかし英語はそういったものではなく、知的好奇心を満たさない学習という作業を続けていくことになります。正直苦痛です。

メンターに自分の学習をフォローしてもらえると、英語学習を継続しやすくなります。自分はメンターと言える人物に出会うことができ、その方に週1回の1時間でリーディングのわからない点をフォローしてもらっていました。Economist や Newsweeks の記事から課題を出してもらって事前に精読し、その中で読めなかった箇所や、発生した疑問点を教えてもらうということを続けていました。

個人的に教えてもらっている以上、課題をこなさなかったり、あるいは学習をやめてしまうと、相手をがっかりさせてしまうし、それは嫌だったので、毎週の課題を継続することができました。オンライン英会話の講師だとこうした責任感は生まれにくいので、個人的にメンターを捕まえて教えてもらうのは良いと思います。

また英語の学習方法についてもアドバイスもらうことで、英語学習に対する興味を持ち続けることができました。

メンターを見つける上で重要なことは、相性だと思います。英語学習に対するスタンスが一致していて、かつパーソナリティも一致しているのが望ましいです。逆に英語の講師である必要はないし、メンタリング経験がある必要もないと思います。自分より英語力が高い1学習者で問題ありません。

自分のメンターはリーディングインテンシブな学習をしており、本記事で次に述べるように、リーディングがあらゆる英語力の根源というスタンスの方でした。自分もリーディング力をまず向上させたいと思っていたので、このスタンスは好意的でした。もしシャドーイングの大切さや、英会話の大切さを説かれていたとしたら、ここまで英語学習は続けられなかったと思います。

またパーソナリティもどちらかといえば内向的でオタク趣味であり、これも私と一致したのも相性が良かったです。海外旅行大好きなタイプの人とか、キャリア向上に強い意識のあるタイプの人ってどちらかといえば苦手意識を感じていたので…。

自分の場合はメンターにリーディング学習のフォローまでお願いしていましたが「学習方法を定期的に相談できる信頼できる相手」というだけで十分だと思います。繰り返しますが、自分と相性の良いメンターを見つけましょう。

リーディングにまず注力する

4技能(リーディング、リスニング、ライティング、スピーキング)のうち、まずはリーディングを高いレベルまで上げることをオススメします。なぜならリーディングはすべての能力の根源だからです。

読んでわからないことは、リスニングしてもわかりません。リーディングが自分が理解できるまで時間をかけることが可能な一方、リスニングは1度聞いてすぐに理解しないといけないことから、リーディングよりリスニングの方が高い情報処理能力を要求されるからです。

また読んで理解できないことは、ライティングできません。自分が理解できてないことを書けるわけないのです。

そしてスピーキングという行為は、リスニングをしながら、その場でライティングするようなものです。当然リスニングとライティングができないと行えません。

逆にいうと、リーディングを高いレベルまで引き上げることで、他の3技能をより効率的に学習することができます。

リスニングで聞き取れない原因は「意味が理解できなかった」「聞き取れなかった」の2つですが、リーディングが高いレベルでできていれば、前者の「意味が理解できなかった」可能性を潰すことができます。テキストになっていれば読めるはずなので、リスニング学習でフォーカスすることは「発音と単語を紐付ける」「リダクションやリンキングに慣れる」といった耳で聞く練習だけになります。

リーディングで単語と文法が高いレベルでできていれば、ライティングではそれらを使いこなす訓練をするだけとなります。

リーディングにまず注力することは、恐らく4技能を満遍なく向上させるより効率的に学習できるかと思います。シャドーイングも発音訓練も英会話もこの段階では不要です。

リーディングスキルが足りないままシャドーイングをしても、意味や文構造が理解できていないので頭に残らないでしょうし、英会話をしても喋れる文のレパートリーが増えたりはしないでしょう。

シャドーイングや英会話は、英語にまったく触れてない人が、英語に慣れる上では有効ですが、慣れる以上のことを提供しないと思います。

リーディング学習方法

1.単語と文法

単語と文法はリーディングスキルの基礎です。特に文法知識は抜け漏れがあると非常に学習効率が落ちるので、理解しきっておきます。

文法

文法はそこまで高いレベルは必要ありません。高校知識で十分です。自分は高校知識が既にあったので特に文法学習はしませんでしたが、一般的に Forest がよくオススメされているようです。

単語

自分のレベルに合わせて、始めると良いと思います。本屋に行って、単語帳を難易度の低い順に眺めていき、5割くらい知らない単語帳に出会ったら、それが適切なレベルの単語帳だと思います。

自分の場合、英検準一級の単語帳を眺めたところ、そこそこわかるものも多かったので、いきなり英検一級の単語帳を始めました。

また英検一級対策としては、パス単は抜け漏れが多く、パス単を極めるだけでは高得点を狙えなかったので、自分は、でた単アプリという非公式の英検1級の単語アプリもやっていました。

英検®1級 でた単

英検®1級 でた単

  • Namiko Takahashi
  • 教育
  • ¥980
apps.apple.com

play.google.com

単語が頻出度に応じてカテゴリABCあるのですが、カテゴリAとカテゴリBまでやれば、英検一級の単語ではおおよそ8~9割取ることができました。

2.英文解釈

単語と文法を学習しただけでは、読めるようにはなりません。「単語の意味はわかるが文章の意味がわからない」「文法はわかるが文章を実際にどの文法に当てはめればいいのかわからない」といった課題にぶち当たります。単語と文法を実際に使いこなすための英文解釈の訓練が必要になります。

いくつか英文解釈の本はあります。難易度が最も高いのですが、これが自分はオススメです。英文を一つ一つ、どういった読み方をしていくのか、解釈するときにどういった案があるのか、といった「文章の解釈の仕方」を実際の文章を使いながら解説してくれます。

内容が濃いため、1冊仕上げるのに非常に時間がかかり、かつ学習負荷もありますが、この1冊を理解しきれば、英文解釈は問題ないと言えます。

3.精読

実際のドキュメントを読みながら、鍛えた英文解釈を精読していきます。時間をかけてでもいいので、1つの文章が、どういった文法を使って、どういう構造なのか、単語はここではどういった意味で使われているのか、わからない単語があればどういった意味で使われているのか、を調べながら読んでいきます。

非常に時間がかかります。ですが文章を早く読むということは、これらの精読プロセスを一瞬でやっているだけに過ぎないのです。精読できないまま速読する訓練をしても、それは文章を理解しないまま目で追っているだけに過ぎません。

たくさんの文章で精読を訓練すると、だんだん精読を時間をかけずに行えるようになります。こうして読むスピードと理解力が上がっていきます。

この精読の際に、自分より英語に詳しい人に補助をお願いするとより効率が上がります。どうしてもわからなかった文章について、文章の構造がどうなっているかを質問したり、文章の前提となる背景知識を補完してもらうことで、より学習効率が上がります。文法用語を使うこととなるので、ネイティブよりは日本人に教えてもらった方が良いでしょう。

題材は英検一級レベルであれば、NewsweeksConversation がオススメです。Economist まで読めるようになると英語で文章を読むことがすごく楽しくなるのですが、Economist は難しい表現や例え表現が多いので、英検一級のリーディング向けではありません。

リスニング学習方法

リーディングができていれば、リスニングというのは「耳からリーディングする」というだけになります。今まで目から頭に入ってきたことが、耳から入れるようにするだけです。

基本的に「耳で聞くことに慣れる」といった耳のフィジカルな訓練をなります。

精聴する

1.文章1つを耳で聞く
2.スクリプトを見て正解の文章を理解する
3.その文章通りに聞こえるまで聞き直す(この際に聞き取れなかった単語の発音と、リダクション、リンキング箇所も把握する)
5.文章を聞いて意味理解までできるようになるまでやる

といったことを地道に繰り返していくことになります。精聴というワードがあるかはわかりませんが、自分はコレを精聴と呼んでいます。

精聴には時間がかかります。しかしリーディングと同様に、リスニングというのは、精聴のプロセスを一瞬でやっているだけに過ぎないのです。精聴を繰り返すことで、耳で英語を聞くことに慣れていきます。ゆくゆくは聞いて、単語の意味と文法構造がパッと思いつく、そこから意味理解にすぐつながる、といった状態になれます。

オススメYoutube教材

あまり映画やドラマを見ないので、アカデミックやニュース寄りの Youtube 動画を挙げておきます。

www.youtube.com

↑英検1級対策としては一番オススメ。核兵器の是非など社会テーマの動画が多く、ライティングやスピーキングに役立ちます。また動画の時間も5分前後と短いので負荷も少ないです。

www.youtube.com

www.youtube.com

www.youtube.com

www.youtube.com

ライティング学習方法

文章の考え方

ライティングするには①まず何を書くか考える②考えたことを文章にする、の2プロセスが必要になります。

論旨が明確かつ一貫した文章を書くには、ロジカルシンキングクリティカルシンキングといった考え方の訓練が必要になります。ロジカルシンキングクリティカルシンキングが必要なのは日本語でも英語でも共通です。共通なので、日本語でこうした考え方ができる人は、英語でも適用できるので、特に訓練不要です。

自分は社会人歴の浅い時期にこれらの考え方を身につける機会があったため、特に意識せずとも英語のライティングの際も困りませんでした。

これらの考え方は一朝一夕で身につくものではなく、また英語学習という本筋からもズレはしますが、もし学びたい人いれば、日本語の本で構わないので「ロジカルシンキング」「クリティカルシンキング」といったテーマの本を読んでみると良いかと思います。

文章の書き方

アカデミック・ライティングという書き方があります。

  • 無生物主語を使う
  • 分詞構文や関係代名詞の非制限用法を使う
  • specificな語彙を使う

といったことを心がけることで、幼稚な文章を避けて、簡潔かつ意味の凝縮された大人の文章を書くことができます。

上記のどちらかの本を読めば、コツは掴めると思います。

書いたらネイティブチェックしてもらいましょう。意味は通るけどネイティブとしては不自然、といった文章をなくすことができます。

idiy.biz

といったサービスがあります。

スピーキング学習方法

独り言

昨今はオンライン英会話などで簡単に英語で会話する機会が得られます。しかしそもそも日本語ですら人と喋る苦手なタイプの人にとっては、初対面かつ文化すら異なる人と英語で喋らざるを得ないオンライン英会話は苦痛に感じるでしょう。私もそうです。

そういう会話が苦手な人は、独り言がオススメです。特定のトピックに関してスピーチをします。できればこの際に、録音して聞き返すとなお良いです。

独り言では表現力や文法の正確性を向上させることができます。人と会話していると、質問に対して即座に答えないといけないため、文法や表現にこだわる余裕がなく、文法や表現がなかなか伸びていきません。一方で独り言では、自分のペースで自分のスピーキングの文法の誤りや、より適切な表現での言い換えを見つけて改善することができます。

英検一級の二次試験に合格するだけなら、これだけでも十分です。自分はこれで最初の英検一級の二次試験で、通常の合格ラインである24点を獲得しました。(残念ながらこの時の試験は合格ラインが上がってしまったため不合格でした)

オンライン英会話

nativecamp.net

オンライン英会話は NativeCamp をオススメします。理由は定額で1日に何度でもレッスンを受けることができるからです。

1日30分のレッスンを毎日続けるだけでも、スピーキング力はゆっくり伸びていきます。しかし毎日英語を喋っていても、それがたった30分では現状維持になりがちです。多くの人にとっては、英会話レッスン以外の圧倒的多数の時間を日本語で話すことになるため、せっかくレッスンで英語を喋っても、次の日には元に戻ってしまうんですね。

オススメの方法として、休みの日などに1日かけて、レッスンを5~6回連続で受講するという方法があります。30分レッスンを受けた後に、30分復習をし、次の30分レッスンを受けるというのを繰り返します。NativeCamp は1日に何回でも受けられるため、こうした訓練が可能です。

おおよそ6時間くらいスピーキングに関する訓練をすることになるので、最後のレッスンではクタクタになって、全然考えがまとまらない、口が回らないといった状態になると思います。この状態で喋ることができる内容は、普段では何も負荷がなく喋ることができる内容です。あえてこのクタクタの状態に持っていくことで、負荷なく喋ることのできるスピーチを増やします。

自分はこうした訓練のおかげで、日本語脳と英語脳の頭の切り替えが容易になりました。日中に仕事でたくさん日本語を使った後も、容易に英語の頭に切り替えて、オンライン英会話で、特定のニュースに対して自分の意見をその場で4~5センテンスの論理一貫した意見を返すことができるようになりました。

またレッスンではただ喋るだけでなく、終わったあとの復習も重要です。レッスンが終わるたびに、喋りたかったけど、うまく英語で言えなかったことをメモしておいて、それを英作文して次回喋れるように練習します。また喋れたけれども文法的に怪しかったり、曖昧な使い方をしてしまった単語を、復習します。

※冒頭で英会話をせずに英検一級に合格したと書いたのですが、正確には2回目の二次試験のスピーキングテストの準備に際してのみ英会話を利用しています。ただ先述したとおり、独り言だけで合格ギリギリの点数であれば獲得可能です。

発音について

第二言語学習者として高レベルを目指すだけであれば、発音訓練やシャドーイングは不要だと思います。正しい発音をする必要はもちろんありますが、それはネイティブのようである必要はないです。第二言語学習者としては日本人なまりのある英語を目指すだけで十分かと私は思います。特に英検一級のスピーキングレベルであれば、それで十分です。

もちろん、より高みのネイティブレベルを目指すのであれば、発音訓練やシャドーイングは必要になるかもしれません。ただし自分の意見を正しく伝えたいという目的なのであれば、日本人なまりのある英語でも十分伝わると、自分の経験上思います。

最後に

英検一級に合格するレベルになってくると、第二言語として英語を使う分には不自由しなくなります。例えばソフトウェア・エンジニアリングの分野には、中国の方やスペインの方が、後天的に学んだ英語を使って日々やり取りをしています。こうしたコミュニケーションでは何一つ問題なくやり取りできるようになります。ネイティブとのコミュニケーションにも混ざっていくことが可能です。ただし英検一級を取得してもネイティブレベルにはならないので、あくまで第二言語学習者として扱ってもらって、コミュニケーションできるといった形です。

ひとまず、このレベルであればシャドーイングや発音訓練を避けても達成できるという記事でした。なおシャドーイングや発音訓練の効果を否定するわけではありません。こうした訓練を避けても英検一級レベル、あるいは第二言語学習者としては高レベルに達することができる、というのが本記事の趣旨です。

推しのために英語勉強したら英検1級に合格した


※ 画像は Hololive 公式サイトからお借りしました。

Gawr Gura ちゃんかわいいですよね。

Gawr Gura ちゃんは Hololive の VTuber の一人です。英語圏向けのVTuberグループ Hololive EN に所属していて、英語でゲームを実況したりしています。

デビュー当初からずっと追っています。しかし残念なことは、英語を喋るので、何を言ってるのか聞き取れないことです。

英語の勉強に取り組み始めたきっかけは「Gawr Gura ちゃんの言うことを理解したいから」でした。

学習開始時の英語力

これまで英語は学生時代の受験のタイミングでしか、取り組んだことはありませんでした。また決して得意だったというわけではありませんでした。

確か就職活動時にTOEICを受けたことがあります。ちょこっと過去問対策をした上で受験して、たしかスコア545点程度で、これだと履歴書には書けないなぁ…と思った記憶があります。

目標

英語学習のゴールとして、英検1級を目指すことにしました。

資格をゴールにする場合、社会人はTOEICを受験する人が一般的に多いと思います。転職でも役立ちやすいそうです。しかし私は特に転職などは考えてなかったことと、そもそもの動機がキャリアとは全然関係なかったので、適当な資格試験をゴールとすることにしました。

TOEICはビジネスがメインなので、試験自体があまり楽しくないというのがあります。知らない会社の会議アジェンダがどうとか、メールで何が書かれているかとかを読んだり聞くことになります。ぶっちゃけあまり興味が持てないし、それを試験時間中に何時間も集中力を持って取り組むのは難しいと思いました。

英検はアカデミック向けの試験なので、リーディングの題材も学問的なものが多く、試験自体を知的好奇心を持って取り組めると思ったので、英検を受けることにしました。例えばペルーがリン鉱石資源を利用して経済成長した話や、犯罪捜査に科学的手法が導入される歴史が、過去問では登場したのですが、これらは単純に読み物としても面白かったです。

また自分の性格上、1番良いのを取らないと気が済まないだろうな..と思ったので、無謀にも英検一級をいきなり目指すことにしました。このときは、Gaur Gura ちゃんの動画を理解できる以外に、洋書も読めるようになったらいいなとか思ってました。

補足すると Hololive EN の VTuber の動画を見る分には英検一級まで必要はありません。英検一級はやりすぎなのですが、それに私が気づくのはもっと先の話となります。。。

実際の学習内容

単語

まず単語を強化することにしました。単語を完璧にすれば、読み聞きができるようにもなるんじゃないかと思ったからです。英検一級のパス単を購入して暗記を始めました。

ほぼ知らない単語が2400単語も掲載されており、 4ヶ月ほどかけて1周しました。その後何周もしています。

詰め込み勉強をするのが久しぶりだったので、学習の習慣をつけることに苦労しました。

最初は毎日30分、英単語100個を覚えようとしました。しかし当然1日に100個も覚えられるわけがなく、95個くらい忘れたので、2周目3周目と繰り返すことで、徐々に覚えていきました。その中でだんだん学習の習慣がついてきて、勉強時間も増えていきました。

最初は1日30分の学習でも苦痛でした。今までやる気でしか物事に取り組んだことがなかったため、毎日何かを継続して取り組むことが苦手でした。また学習方法も暗記がメインとなるため、これも今まであまり取り組んだことがなく、苦手でした。

習慣化する訓練、興味ないことを継続する訓練だと思って、続けていました。

英検1級の単語は難しすぎるため、ほぼ現実世界では使われないと言われることがありますが、新聞や、洋書でも使われてます。 この時期に並行してTimes紙を購読してましたが、覚えた単語が使われていることもあり、だんだん内容が理解できるようになってきて、成長感を覚えることができました。

英文解釈

もともと英文法は理解しており、受験勉強でよく使われる参考書の Forest の内容は一通り理解できてました。しかし単語と文法を理解できていれば英語の文章は読めるはずだと思ったのですがうまく読めませんでした。英文解釈という、単語と文法を使ってどのようにして読むかという能力の訓練が必要だったです。このため英文解釈教室という本を買って読みました。

英文を一つ一つ、どういった読み方をしていくのか、解釈するときにどういった案があるのか、といった「文章の解釈の仕方」を実際の文章を使いながら解説してくれます。

個人レッスン

たまたま縁があり Twitter を通じて、英語に詳しい方に英語の読解を教えて頂けることになりました。

半年ほどの間、週1回 Economist や Newsweek といった雑誌の記事を3つ課題を出してもらい、それを予習して、授業の中で解説してもらいました。

どうしてもわからなかった文章について、文章の構造がどうなっているかを質問したり、文章の前提となる背景知識を補完してもらうことで、より英語の文章が読めるようになりました。

この辺りで英検1級の過去問のリーディングでは8割取れるようになりました。

リスニング

リスニングは Youtube 動画を見ることで鍛えました。

Language Reactor という Chrome Extension を導入すると YoutubeNetflix を使ったリスニングをより便利に行うことができます。

chrome.google.com

Language Reactor を入れると、字幕を動画上に表示することができます。 また,ブラウザ画面右側のセリフの一覧から特定のセリフを選択して該当シーンに飛ぶこともできます。同じセリフをクリックして繰り返し聞くこともできます。

こうしたツールを使って Youtube の動画を、1文章ごとに聞き取れるまで繰り返し再生してリスニングを鍛えていました。

よく見ていた Youtube 動画は以下です。

www.youtube.com

また息抜きに Hololive EN の動画や Gawr Gura ちゃんの動画も見ました。 Hololive EN の動画には、大抵の場合 AIによる自動字幕がついており、そこそこ精度が高いです。

www.youtube.com

Gawr Gura ちゃんのオススメ動画。ファンからの質問に Gawr Gura ちゃんが答えるという形式なので、動画に占める英語で喋ってる量が多い。

ライティング

そこまでモチベーションがなかったので、ライティングは英検一級対策しかしていません。

上記のような本で、英語のアカデミック・ライティングの方法を学び、英検一級の過去問をやりながら身につけていました。

idiy.biz

独学で英語を書いているだけだと、ネイティブにとって不自然な英語になりがちなので、上記のような添削サービスで、書いた英語は添削してもらっていました。おおよそ30本を英検一級の過去問を添削してもらった記憶があります。

スピーキング

スピーキングもモチベーションがなかったので、英検一級対策しかしていません。

試験対策は上記の本でやりました。

また二次試験のスピーキングテストには一度不合格になっているのですが、その時からDMM英会話を始めました。1日30分喋ることをしばらく継続していました。

しかし1日30分だけのレッスンだと、英語と日本語の切り替えに苦労しました。日中の仕事で日本語を喋るうちに、英語で喋る感覚を忘れてしまって、頭を英語に切り替えてるだけでレッスンが終わってしまうんですよね。

スピーキング力の頭打ちを感じていたので、試しに1度週末に、英語で3時間ほど喋る機会を作ってみました。オンライン英会話のネイティブキャンプは1日に何回でも受けられたため。休日に5回ほどレッスンを受けると英語と日本語の切り替えが用意になりました。英語と日本語の切り替えの難しさに苦しんでいたので、プラトーを乗り越えた感覚がありました。おすすめです。

結果

無事、英検一級に合格することができました。英検一級の合格を目指してから、おおよそ1年半ほどかかったことになります。

合格時の英語レベル

Test Your Vocabulary というサイトで、語彙力を簡易的に測ることができます。試しに先程やってみたところ、語彙が 19800 words ほどありました。

日本人が高校卒業程度だと 3000 words 程度、非ネイティブで英語話者が 10000 words 程度なので、それより多いことになります。ちなみにネイティブは 30000 words ほどです。

ここまで語彙力があると、大抵の場面では単語がわからなくて困ることはありません。ただ Economist という雑誌を読んでるときは、まだまだ知らない単語がたくさんでてきます。

ここ最近は、息抜きや暇つぶしとして、Twitterアメリカのトレンドタグを見たり Economist のような雑誌を読んだりしています。最近では tcrf.net というゲームの未使用データ解析サイトが面白かったです。ポケモン金銀の項目が面白いです。

一方で、英検1級に合格しましたが、別にネイティブのように英会話ができるわけでも、読み書きがスラスラできるようになったわけでもありません。リスニングは未だに字幕がないと全部はわかりません。

英検1級というのは、ネイティブレベルを表すのではなく、第二言語話者としてそこそこくらいのモノなのだなと思いました。

そもそもネイティブのようになりたいわけではなく、Gawr Gura ちゃんの言ってることを理解したかっただけなので、英検一級に合格後は学習には時間を割かず、読みたい本を英語で読んだり、Gawr Gura ちゃんの動画を見返したりしています。日常に英語が当たり前のように組み込まれている現状に結構満足していたりします。

以上、お読みいただきありがとうございました。

--
2022/04/27 追記

学習方法について以下の記事に詳細を書きました。

sairoutine.hatenablog.com

英検1級 二次試験 レポート

英検一級の二次試験は、受験する人が少ないせいか、資料が少ないので、自分の当日の様子をレポート形式でまとめたいと思います。

結論から言うと、相当失敗したのですが、ギリギリ合格できています。

時間がない人向けのまとめ
- short speech で topic とズレたことを話しても及第点はくれる
- ワードの意味を間違えたまま使っても及第点はくれる

当日の朝

9時集合、9時20分から試験開始という日程だったので、7時に起床します。

出発前に Native Camp で30分レッスンします。Daily News を使って音読・リスニング・Q&Aをしました。

Native Camp や DMM英会話といったオンライン英会話サービスは早朝から利用できます。口慣らしに便利なので、オンライン英会話を試験当日朝に受講するのはオススメです。

会場へ向かう

会場は都内でした。

集合時間の30分くらい前から開場するそうです。早く来た人から順番に試験を受けられます。よって待機時間を短くしたい人は、試験が始まるまでの待機時間を短くしたい人は、集合時間の30分くらい前に着くようにすると順番待ちで待たなくてすみます。

試験官について

インタビュワーは2人とよく書かれてますが、実際はタイムキーパーの人合わせて、3人が試験時にはいます。

タイムキーパーの人は試験全体の時間(10分)と、ショートスピーチの時間(2分)をタイマーを使って計ります。

ショートスピーチ中にタイマーのピピピッて音がなるので緊張してるとめっちゃビビります。気をつけましょう。

試験の様子

※ 全部日本語で書きますが、当日は全部英語です

導入

入室したら「荷物は荷物を置くためのイスにおいてOK」「座って、どうぞ」って言われます。

座ると自己紹介から始まりました。「○○です。」「✗✗です。」と言われるので、自分も「さいです。よろしくね」って返しました。

「調子はどう?」って聞かれたので「試験の準備のために早く起きたから眠いよハハ」って答えました。笑ってくれないし全然反応しないまま次の質問に移るので、正直やりづらい試験官でした。

「休日何してる?」って聞かれたから「趣味はアニメ見たり漫画読んだり、ゲーム、だから休日はそう言ったことをやってるよ」って返しました。これも全然何も言ってくれないのでやりづらい。

「マスクしてるから聞きとりづらいかもしれないけど、ちゃんと聞こえる?」って言われたので、「Clearly.」って返しました。

「そこにトピックカードがあるから、それから1つ選んで1分で準備してスピーチして」って言われるので「OK」って返します。

short speech

topic 5つは覚えてないのですが、

  • 政府はfree tradeを促進すべきか

という定番トピックがあったのでこれを選びました。

自分の short speech の内容


I think the government should promote free trade. Let me explain in more details.

First, free trade can boost the economy. Under the principle of free trade, the price can reflect the demand and supply in the market appropriately. Companies can produce services and products in order to meet the demand of consumers, while consumers can purchase products with avoiding the shortage of stocks. This situation can boost the economy.

Second, consumers can enjoy high quality of products and services. Under the principle of free trade, companies make the effort to invest in and invent new technology and products in order to meet the demand of consumers. Therefore consumers can receive the advantage of free trade.

For the reasons I described, I think the government should promote free trade.

(129 words)


これで2分ちょうどくらいでした。自分ではうまく話せたつもりでしたが、なんとこの short speech は topic とズレたことを話してしまっています。

free trade は自由貿易のことであり、肯定するなら「外国市場へ参入できる」「品質の高い製品を輸入できる」否定するなら「発展途上国は先進国の製品との競争に巻き込まれる」といったことを主張しなければいけません。私のスピーチは free market mechanism (自由市場経済) について述べてしまっています。

アホなので勘違いしていることに試験が終わるまでずっと気づかず、後述のQ&Aも答えてしまいました。試験官もスピーチに合わせてくれたのか、自由市場経済に関しての質問をしてくれたので試験中はずっと気づかないままでした。

試験後に、普段英会話に付き合ってもらっている人と、同じトピックを話したときに誤りを指摘されて初めて気づきました..w。その人も「それ自由市場経済じゃね?」とすぐ気づいたことから、多分試験官も間違ってることは気づいたと思います。

なおスピーチの単語数は 129 words です。センテンス数にすると、1つの理由辺り3センテンスくらいです。単語数は180ワード目安が良いという意見ありますが、short speech のスコアで5点を目指さない限りは、このくらいの量でも全然問題ないと思います。英検対策をしてくれた先生も、このくらいで全然合格できるとおっしゃってました。

Q&A

free trade と free market mechanism を混同したままQ&Aセッションは続きます。自分の回答は全部 free market mechanism の話をしてしまっています。

質問1: How the company survive in the competition?

回答1: It is true that free trade will exacerbate the harsh competition. So companies should invest in their technology to defy other companies. The enhancement of their ability can improve their production, thus enabling them to meet the demand of consumers.

質問1の解説
free market という文脈なら、及第点の回答です。3センテンス程度返しているので、回答のボリュームも良いです。defy をここで使うのは不自然で defeat や fight against が適切です。また meet the demand of consumers は speech 含めて3回目の出現で、多用しすぎです。

質問2: Could you please give me some examples?

回答2: The government should not intervene in the market. Over the past decades the government in Japan has privatized some industries such as tabaco, electricity, and train industries. This privatization undermines the principle of free trade. In this situation, many consumers suffer the high price. Therefore, stopping privatization will adjust the market and consumers can enjoy the appropriate products or services.

質問2の解説
ここでは privatization のワードの意味を間違ったまま使ってしまっています。privatization は民営化のことですが、公営化と勘違いして使ってしまっています。(公営化は nationalize)。このままだと「政府は市場に介入すべきではない。民営化をやめるべき」と意味不明な主張をしてしまっています。

さらにいうと私は privatization をプライベタイゼーションと発音してしまったのですが、正しくはプライベティゼーションとなるようです。

あとこの文章は時制も怪しいです。ところどころ過去形にしないといけないところが現在形になってしまっています。

この回答の途中で試験終了のアラームがなりました。試験官が「最後まで続けていいよ」といったので続けて終わりました。

ちなみにここで「もう一文だけ言わせてほしい」という意味で「Please say once more sentences」って言ってしまうのですが、間違ってます。「もう一文言ってくれ」って意味になっちゃうよ…。

全体を通して

今振り返ってみると相当緊張していたんだと思います。もうちょっと落ち着いて考えてれば free trade を正しい意味で解釈して喋れたでしょうし privatization の意味も間違えなかったと思います。privatization については喋りながら「あれこれ民営化と公営化どっちだっけ」って思いながら喋ってたので...。

また今回の試験官は、ずっと無表情かつ相槌を打ってくれませんでした。これも緊張を悪化させる原因だったと思います。自分に好意的じゃない人と喋るの苦手…。

実際のスコア

short speech が7点だったことから、スピーチがズレていたことについては、そこまで大きく逸脱してなかったことから大きく減点はされなかったようです。自由貿易(free trade)は、自由市場経済(free market mechanism)の原理の下に成り立っているので、一応、両者は密接に関係はするトピックだからでしょう。

topic が自由市場経済だったとして、スピーチを評価すると、filler や考え込む時間も少なくスラスラと喋れたので、short speech で7点が取れたのだと思います。もともと8点くらい取れる見込みだったので、スピーチがズレている点は -1 点くらいしか影響しなかったと言えます。

interaction では、回答量をそこそこ多く返せていたことから、7点なのだと思います。多くの人が言ってる通り、Q&Aはなるべく多くのことを、論理一貫する範囲内で、喋るのが高得点のポイントのようです。

vocabulary and grammar は、privatization の間違いがあったり、時制の誤りがあったことから 6点なのでしょう。

pronunciation はまあ及第点な内容だと思います。

最後に

というわけで、short speech の topic を間違えるし、単語を正反対の意味として使ってしまったけど、なんとか英検一級の二次試験に合格しました。

今後試験を受ける人にとって、この情報がお役に立てれば幸いです。

2019年振り返り

過去ログ
2018年振り返り - まるまるこふこふ
2017年振り返り - まるまるこふこふ
2016年振り返り - まるまるこふこふ

目次

リードエンジニア

2018年に引続き、2019年も開発基盤プロダクトのリードエンジニアをやっていました。
チーム人数は少し増えて、5人くらいに増えました。

プロダクトの時期としては、0->1 のフェーズを終え、1 -> 50 くらいのフェーズです。
プロダクトがユーザーから利用できる程度にはなってきました。

そのような中で、今年はプロダクトを各ゲームタイトルに導入して、利用してもらうことをミッションとしました。
この基盤プロダクトは、ボトムアップ発信による開発であり、特に上位者の強烈な権威性でのpushがあるわけではないので、
各ゲームタイトルにどうやって使ってもらうかが大変でした。

今回は、自分がタイトルチームに入り、その中でプロダクトの導入から要望の実装を行いました。
(こうすることで、コミュニケーションや実装のスピードアップを図ることができます)

1タイトルで導入事例ができてからは、他のタイトルでの導入もスルスル決まっていきました。
弊社の新規プロジェクトの開発ラインでは、ほぼ使っている状態なので、ありがたい限りです。

基盤プロダクトを作る際は、以下の2種類があり、今回は後者だったのですが、無事成し遂げてよかったです。

・1タイトルにフォーカスを定めて、その中で基盤プロダクトを作り、それを他のタイトルに導入する方法
→ 導入事例は作りやすいが、基盤プロダクトがタイトル側のドメインに汚染されがち
・基盤チーム側でプロダクトを作り、それをタイトルに導入する方法
→ ニーズのないプロダクトを作りがち、導入うまくいかないがち

また後任のリードエンジニアの育成を5月くらいからしていたのですが、12月くらいに
交代することができました。たった半年の期間ですが、本人がぐんぐんと成長している様子に
驚きと喜びを感じましたし、本人からも取り組めてよかったと言ってもらえたのが嬉しいです。

カンファレンス発表

今年は以下の2件発表しました。

CEDEC 2019
Go Conference 2019 Spring

個人制作ゲーム

探索ホラーゲーム制作

2019年05月にパッケージ版をリリース、10月にSteam版をリリースしました。

それなりの数が売れて、国内外から感想や実況プレイ頂き嬉しかったです。
これと本業の収入で今年は年収が大台超えたので良かったです。
(禊みたいなものなので、一度経験しておくと、今後年収がどうで人生の意思決定をしなくて済む)

一緒に制作したメンバーからも、またこのメンバーで作りたいといってもらえたのが良かったです。
またこのメンバーでゲーム作りたいね。

一方で、Switch/PS4版も予定しているのですが、こちらは全く進捗がなかったので、これは反省点です。
(Unity 移植にあたって、Unityに取り組む意欲が持てず、5月から12月を過ごしてしまった)

意欲が持てなかった原因を振り返ると、以下です。
- 同じものの作り直しでワクワクしない
- Unity で作るイメージが持てない(他人が作った道筋通りにやるのが苦手)
- Unity における GUI操作を覚えるのが苦手
- パッケージ版の完成で燃え尽きた
- プラットフォームとしてゲーム機やスマートフォンよりブラウザの方が好き
- 技術的にハックしている感じがしない(人がやってないことをやってる感)
- Unityコミュニティに所属してないので、承認が動機にならない
- 仕事でプログラミングから離れてたせいか、新しい技術を学んで完成品を作る力が弱った

RPGアツマール向け ミニゲーム

2018年では途中になってたものです。無事2019年にリリースできました。
PRGアツマールにリリースしたためか、5万プレイされて、
自分がこれまで作ったゲームの中で一番プレイされました。
(Twitterシェア機能もつけたので、たくさんプレイされている様子をTwitterで見ることができました)

リリース後1週間ほどSNSで話題にされ、またゲーム自体は1ヶ月ほど 継続して総プレイ数が増えることが目標です。

2018年には上述の目標を立てたのですが、無事にこれが達成できました。

次のゲーム制作案件 種まき

ゲームを作りたい人から 依頼がきてほしいなと思うので、そのための種まきです。
以下の達成を目標とし、実際に行いました。
- web サイトにて「制作依頼について」の項目追加
- SNSや web 記事などで自分のノウハウや人へのインタビューの情報を発信(月1回)

残念ながらまだ次の制作に繋がる話は来ていません。
情報発信も半年ほど続けましたが、反応がなかったので、継続するのをやめました。
人々が知りたいと思う情報を発信し続けるのは、私は向いてなさそうだなと思いました。
素直に以下のことをやって、次の制作案件を作っていこうと思います。 - プロダクトづくりに専念する
- 実績を元にこちらから人を誘っていく
- 人脈を作っていく
- 一緒に仕事した経験のある仲間を増やす

永遠の七日

towa-7.jp

スマホゲームにハマってました。 2019年進捗なかったの、これのせいかもしれない。

内容は以下を見るのが早いです。

www.gamecast-blog.com

7日間のループの中で、ヒロインを救って世界が滅びるか、ヒロインを犠牲に世界を救うかを選ぶやつです。 ゼロ年代セカイ系オタクが好きなやつ。 余談だが今年は映画 天気の子だったり、学校ぐらしが完結したりと、私が好きそうな作品が豊作の年だった。

サービス開始の5月から2019年いっぱい、時間をかけてしまった。 2020年はあまり時間をかけないようにしたい。

2019年の目標にしたけど達成できなかったこと

社内でのゲーム開発 立ち上げ

提供先のPFがサービス終了してしまったので頓挫。 PFのリリースまでに間に合わなかったことが心残りです。 工数についてミニマムであることを要求されたこと、 イラストや音楽について社内の手弁当でのリソースを集める選択になってしまったのが 良くなかったのかなと思います。

社内政治がんばらないと、成果につながらない(個人制作の延長線上の考えでやるのは無理だな)と思いました。組織の力学について学ぶ失敗でした。

2Dアクションゲーム

イベントで体験版を1つ以上出せている状態を目指してたのですが、着手できませんでした。

探索ホラーゲームの Unity 対応

着手できませんでした。

Webサービス

エンジニアリードについてノウハウが積めているので、 それを役立てる目標でした。
プロダクトを作るより、さらに上段のビジネス部分を別の人にまかせているのですが、
その人がちょっとうまく行ってないようなので、2019年中は何も動いていません。

OSSプロダクト

HTML5 ゲームフレームワークとリアルタイム通信サーバーを作る予定だったのですが、
こちらも同上の通り、着手できませんでした。

3D 勉強

同上の通り、着手できませんでした。

会社を立てる

先に上述のゲームのPS4/Switch向けを出してからかなと思い。まだ着手していません。

自分がどう変わったか

今年は仕事以外に何か新規に注力したわけではなく、
時間を大きくスマホゲームに吸われた年であり、
また仕事も昨年の延長線上だったため、特に大きな変化はありませんでした。

2020年やりたいこと

探索ホラーゲーム コンシューマー対応

Unityに移植して、PS4/Switchで出します。

やる気を高める

上述の通り 2019年は意欲の問題で、
達成できなかったことが大量だったので。。。
ちょっと今年はゆっくりやる気を高めます。
2018年の頃に戻したい。。

インプットをする

アウトプットへの取り組みが低くなりそうなので、インプットをしようと思います。
これまでゲームや漫画といったコンテンツを摂取する時間がほとんどなかったので、しようと思います。

また英語の勉強も再開したので、2020年は続けてみようかと思います。
主に reading/writing に絞ってやっていて、英検1級レベルの単語を毎日覚えてます。

  • ゲーム・漫画・映画を新しいものを月に1度は摂取する
  • 毎日20分、英単語の勉強をする

2018年振り返り

過去ログ
2017年振り返り - まるまるこふこふ
2016年振り返り - まるまるこふこふ

目次

リードエンジニア

2018年3月~現在まで、エンジニア3名規模のチームでリードエンジニアをやっていました。 弊社の開発基盤チームにて、各ゲームタイトルで使われる横断プロダクトを 0 -> 1で開発しています。

主に以下のことに意思決定を行い、責任を追ってました。

  • システム開発の進め方、採用技術
  • 成果物(プロダクト)の方向性
  • チームメンバーのアウトプット向上
  • プロダクトの採用チームとの社内調整

それに加えて1メンバーとして、主に技術的な難易度の高いところで、手を動かして 開発もやっておりました。

メンバーに恵まれたおかげか、特に問題なく順調に進んでいるように思います。

個人的な振り返りとしては、時期によって、間接業務が多くて、そうした業務は明確なゴールがなく、 達成感がなくて大変だった...というところです。

社内でのゲーム開発 立ち上げ

2018年の目標として、新しい取り組みとして、お会社でゲームの企画書出してみようかなぁと考えていたのですが、 実際に機会があり、自分の起案でゲームを開発しておりました。

期初では主に、ゲームの企画書を書き、またその後はプロトタイプを作りながら、 面白い面白くない、ここはこうしたほうがみたいなことを検証していました。

個人制作ゲーム

探索ホラーゲーム制作

2019年05月に完成版予定です。元々は同人ゲームでありましたが、パブリッシャーにお声掛け頂き、 PS4/Nintendo Switch/Steam でリリース予定となりました。

“PAX WEST”に“UNTIES”のブース出展が決定! 『The Good Life』のパブリッシャーとして参加することも明らかに - ファミ通.com (記事の中盤くらい)

またそれに伴い PAX WEST などの海外イベントにも出展させていただきました。 (ゲームのローカライズを初めてやった)

特に印象的だったのは、ニコ生放送内で、東方Project の原作者 ZUN さんとお話させていただいたことでしょうか。

f:id:sairoutine:20190101233308p:plain

5名チームで制作をしております。ほとんどのメンバーがゲームを作ることが未経験で、また初めて一緒に 作業することから始まりましたが、評価される作品が作れていることを嬉しく思います。

自分はチーム内で、以下のことに意思決定を行い、責任を追ってました。

  • プロデュース
    • パブリッシャーへのアプローチ・契約交渉
    • パブリッシャーとのコミュニケーション
  • ディレクション
    • 各職種のワークフロー構築
    • チームのスケジュール管理
    • スケジュール上の課題のためのメンバー間調整
  • マネジメント
    • メンバーのケア
    • 各個人が自走できるチームのルール・雰囲気作り
  • エンジニアリング
    • ゲーム開発(プログラミング)

メンバーそれぞれの得手・不得手が激しく、また少人数チームでリソースが少ないため、 メンバー1人の不得手のためにプロジェクトが危機に陥ることもあり、 マネジメントに相当力を割いていたなと振り返れば思います。

不得手はカバーしつつ、得手を活かせるチーム体制にできればいいなと思ってます。 (口で言うのは簡単...)

自分はロジカルに考えたり、意思決定するタイプであり、それを人にも求めるクセがあったのですが、 このプロジェクトを通して、人の感情に配慮するようになったなと成長がありました。 例えばですが、人が心を動かされるような目標を口に出して言ったりするの、大切だと思います。

RPGアツマール向け ミニゲーム

進行中のゲーム1件です。12月リリースを目標に、9月末にプロトタイプを開発し、 イラストを他の方にお願いしたのですが、結局11月12月と時間が取れず、リリースできず仕舞い。

イラストをチーム以外の人にお願いする場合、コミュニケーションが薄くなりがちなので、 事前にイラストの要件などを明確に定めてから、発注するのですが、 今回は、イメージ画像などを使いつつ、要望を相手に伝えられたので、そこは成長した点かなと思っています。

(以前は要件などがあまり定まらないまま相手にお願いして、相手任せにしてしまって困らせることがあった)

2Dアクションゲーム

進行中の探索ホラーゲーム制作が終わったら、次にと考えて種まきしていた案件です。 企画書を書き、シナリオを書いてもらったところで、pend になっています。

OSSコントリビュート

gin, noms といった golang プロダクトにコントリビュートしていました。 コード自体は1~2日で書けて、あとはPR上でコミュニケーションするのですが、 マージされると手軽に達成感が得られるので、お仕事で進捗出ないときにしていた記憶があります。

思想/哲学/歴史の本を読む

2018年の目標の一つでした。ジャレド・ダイアモンド、ユヴァル・ノア・ハラリ辺りの本を読んでいました。 歴史の中での現代や、あるいは自分が何をすべきかについて、解像度が上がり、 またこういった本を読む習慣がついたので、目標達成としています。

この1年考えた中で、自分の中長期のビジョンは以下です。

◆ ビジョン(中期)
サブカルチャー界隈のクリエイターと消費者のマスの代表となり、彼らがより良い人生を歩めることに寄与する。

◆ ビジョン(長期)
人類の過去の延長線から、現代の在り方(人々の思想・生活様式)を変え、コンテンツ享受を通して、人類の未来に貢献する。

サブカルチャー(特にオタクコンテンツ)が好きなのですが、経済、政治、教育、文化における それらの立ち位置は低いままです。それらに関わるクリエイターや消費者も、同様の立ち位置になってしまうことがあり、 それを課題に思っています。

まず、クリエイター及び消費者の向上に務めること、またその延長線上で、人類におけるコンテンツの価値向上に務めることが大切だと思っています。何十年かかるかわからないし、できるかどうかもわかりませんが、人生かけるに値するビジョンなのかなと思います。

データベース本の輪読

社内で Designing Data-Intensive Applications (DDIA)の輪読会があったので、参加してました。 邦訳がないので、英語の本なのですが、だいたい 2.5 ヶ月くらいかけて読みました。

2018年の目標にしたけど達成できなかったこと

ゲーム制作

2018年の目標として、完成版のリリース2つ。進行中のゲーム2つくらい進めたいなと思っていたのですが、 実際は、体験版のリリースが1作、進行中のゲームが 2作となりました。

これは、探索ホラーゲームのコンシューマーゲーム化に伴い、 この1作を最注力していく方針に変更したためです。

そのような中でも進行中2作を作れたのは良かったと思います。 これは元々定めていた目標が今の自分では高すぎる目標非だったことが、実際に取り組んでみてわかりました。

Web サービス

ゲーム制作ツールの Web サービスを作っていたのですが、リリースをやめることにしました。

反省すると、以下の理由があります。

  • プロダクトについて自分が納得できるゴールイメージが持てなかったこと
  • リリースして、自分の期待値通りに、利用者が幸せになるイメージが持てなかったこと

Webサービスに関して、自分の期待値と、実際のスキルにギャップがあり、 それを受け入れられていないように思います。(スキルについては、技術面よりサービス設計面)

今後 Webサービスを作る際は、自分の期待値を下げて、継続的に作り続けることで 実際のスキルを上げていく必要があります。

OSSプロダクト

リアルタイム通信サーバーを書いて OSS にしたかったのですが、ほとんど取り組めませんでした。 これも時間が割けなかった目標の一つです。

3D の勉強

WebGL 周りのおさらいをしていましたが、実際にゲームを作れるようになるまでは至らず...。 単純に時間が足りなかった系ですね。

自分がどう変わったか

コードを書くこと、人間関係をやることにフォーカスし、アウトプットに全時間を投入するということを、どこまでできるかを試していた年でした。

睡眠時間8時間、お会社の仕事10時間、生活2時間と仮定すると、 平日4時間、休日14時間はサブプロジェクトに時間当てられるし、それで1人月あるよねって思想で生きてました。 (振り返ると、実際はインプットに結構時間割いてたので、1人月もアウトプットしていない)

結果としてアウトプット量がどうなったのか、2017年振り返りと比べてみると、以下のことがわかりました。

  • 達成できた目標の数は実は増えていない
  • 達成できた目標の質は、どれも向上している(より高い成果になっている)
  • 目標にしたけど達成できなかったことが、増えている
    • つまり投入時間の増加は、成果の質向上と、達成できなかった目標へのアクションに使われている

2019年は、今年より目標を減らし、達成できる目標を増やすことが大切そうです。

またゲームに関しては、半年くらいの制作期間のものを複数リリースする予定だったのですが、1年に1本くらいのペースで制作し、パブリッシャーが捕まえられる程度のクオリティにしていく方が良さそうだなと思いました。

2019年やりたいこと

ゲーム制作

RPGアツマール向け ミニゲーム

これはもうイラストとサウンドを組み込むだけなので、やります。 そんなに工数かけず1月中にはリリースできるかと。

リリース後1週間ほどSNSで話題にされ、またゲーム自体は1ヶ月ほど 継続して総プレイ数が増えることが目標です。 (具体的な総プレイ数の目標はリリース時に考える...)

探索ホラーゲーム制作

ちゃんと完成版まで作ること、その上でコンシューマーゲームまで年内にリリースできることが目標です。 今 HTML5 で作ってるのですが、どこかで Unity で作り直さないとコンシューマーに移植できないので、Unity を学ぶことになると思います。

2Dアクションゲーム

イベントで体験版を1つ以上出せている状態を目指します。 これまでの作り方と違って、以下をやってみます。

  • 同ジャンルのゲームをきちんとプレイしてインプットする
  • プリプロ期間を設ける
  • 座組を作るところから始める。コミュ量たくさんして、初対面の人も巻き込んでいく

こちらも最終的にはコンシューマーゲームとしてリリースできることを目指していきたいところです。

Webサービス

同人音楽作家向けに、DL用プラットフォームの Webサービスを作るお話を頂きました。 企画1名 + エンジニア2名 + エンジニアリードの自分、という座組です。

エンジニアリードについてノウハウが積めているので、 それを適用しつつ、さらにブラッシュアップできればいいなと思っています。

開発体制や仕組みをきちんと整えることで、自分があまり手を動かさなくても プロジェクトが回り、プロダクトができていく状態にしつつ、 プロダクトが人々に受け入れられ、そしてメンバーが成長できたらいいなと思います。

2019年冬に最初のMVP(minimum viable product)リリースするのが目標です。

OSSプロダクト

HTML5 ゲームフレームワーク

これまで開発してきたゲームは、全て独自のゲームフレームワーク(FW)を利用しています。 実際にゲームに利用しつつ、独自FWを育ててきたのですが、 さすがに飽きてきたので、OSS としてリリースしようと思います。

気をつけないといけないことは、HTML5 FWは既に多数存在するので、 その中で新しいFWを出す意義を見出さないといけないことですね。

Github で star が 100 以上付くことが目標です。

リアルタイム通信サーバー

2018年に着手できなかったものを継続します。継続理由は以下の点で、 2018年当初と違って着手がより楽になっているためです。

  • golang にある程度理解ができたため、C++でなく golang で書ける
  • リアルタイム通信するゲームを作っており、ゲームクライアント実装者がサーバーに求める要件が理解できたため

Github で star が 1000 以上付くことが目標です。

会社を立てる

コンシューマー案件のゲームの売上次第では、インディーゲーム制作会社を 立ててもいいのかなと思います。(複業で)

現在一緒にゲームを作っているメンバーは、クリエイティブな仕事で生活したい意志があるものの、 スキルや経歴によって、なかなかそれが難しい状態にあります。彼らと会社を立てて、 彼らがゲームづくりでご飯が食べていけるようにしたい。

また、他にも継続的にメンバーを雇い育てることで、 社会に面白いゲームを継続的に提供できる組織づくりができればいいなと思います。

これはとりあえず現在のコンシューマー案件の結果次第で、また今年中の具体的な目標を立てる...。

次のゲーム制作案件 種まき

自分からゲーム制作していくだけでなく、ゲームを作りたい人から 依頼がきてほしいなと思うので、そのための種まきをしていきます。

以下の達成を目標としようと思います。

  • web サイトにて「制作依頼について」の項目追加
  • SNSや web 記事などで自分のノウハウや人へのインタビューの情報を発信(月1)

3D 勉強

2018年に引き続き。重要度と将来性からちゃんとやっていきたいところです。 とりあえず小規模なゲームを1つリリースすることを目標にします。

golang の Webフレームワーク gin のドキュメントを日本語に翻訳しました

この記事はDeNA Advent Calendar 2の 12月6日分の記事です。 枠が空いていたので、書かせていただきました。

翻訳しました

https://gin-gonic.com/ja/docs/ から日本語ドキュメントが読めます。

gin とは

gin とは軽量かつシンプルなインターフェイスがウリの golang のWebアプリケーションフレームワークです。 また、golang の Webアプリケーションの中では比較的初期から開発されているので、 安定しており、プロダクション利用実績も多いフレームワークです。

私もお仕事で使わせていただいておりますが、特に癖もなく、 取り付きやすいフレームワークで助かっています。

きっかけ

gin の Web サイトは https://gin-gonic.github.io/gin/ ですが、 こちらはあくまで gin の紹介程度の内容となっており、各種APIの使い方などは、 README.md に掲載されている状況でした。

https://github.com/gin-gonic/gin/issues/1522 にて課題提起がされ、新しい Web サイト https://gin-gonic.com/ が作られました。(ドメインも新しくなっています)

まだ移行中のため、リンクなどは旧サイトのままですが、今後はこちらの Webサイトに各種ドキュメントは移行していくようです。

そのような中で、README.md の中国語翻訳のプルリクエスト が出され、マージされました。

中国語がマージされるなら、ということで、自分も README.md を日本語翻訳したところ、 日本語訳もマージされた次第です。

golang の採用事例は少ない

ではなぜ日本語翻訳したのかの話です。golang は様々な会社で採用される事例を聞くようになりました。 一方で、言語としてまだ新しい印象から、Web 業界全体として見ると golang を採用する事例が少ないように思います。

日本でWebアプリケーション開発する上で、 golang 及びそのフレームワークを採択する支障の一つとして、 ほとんどの golang の Web フレームワークには、日本語ドキュメントが存在しないことがあると思っています。

日本語ドキュメントのない技術の採択は難易度が高い

技術選択する上で、日本語ドキュメントが少ないことは、その技術を採択する上でのデメリットの一つだと思っています。 ソフトウェアエンジニアとして英語力の必要性は叫ばれておりますが、 一方で実際に技術選択をする立場になると、プロジェクトのメンバーが必ずしも英語の読解ができるメンバーばかりとは限りません。ジュニアなメンバーを考慮した言語選定、フレームワーク選定が求められることがあります。

gin の日本語ドキュメントが Web アプリケーション開発する際の golang や gin の 技術選択の助けになると嬉しいです。

終わりに

gin は良い Web フレームワークだと思います。これから golang を触ってみる人や、 あるいは、お仕事のプロジェクトで利用するフレームワークを選定する人は、 ぜひ gin を触ってみてください。

WebGL を利用して描画するまでの流れ

概要

WebGLを利用して描画する場合、描画までに実行する API のお約束が多い。

これは描画に必要なパラメータが膨大なため、 各API関数を呼び出して、グローバル変数である WebGL コンテクストの状態を変更していくことで、 描画に必要なパラメータを設定していく設計思想になっているためと思われる。

また WebGL の元となった OpenGLGPUハードウェアの制約の中で パフォーマンス向上のために API を追加し続けてきたため、 同じ描画を行う上でも、様々な方法がある(現在では推奨されないAPIもたくさん存在する)

流れ

  • GLContextの作成
var c = document.getElementById('canvas');
var gl = c.getContext('webgl');
  • シェーダーの生成

    • 頂点シェーダ
      • シェーダーの生成
        var shader = gl.createShader(gl.VERTEX_SHADER);

      • シェーダーにソースコードを割り当てる
        gl.shaderSource(shader, "shader source code");

      • シェーダーのソースコードコンパイル
        gl.compileShader(shader);

      • 正しくコンパイルできたことをチェック if(!gl.getShaderParameter(shader, gl.COMPILE_STATUS)){ alert(gl.getShaderInfoLog(shader)); }

    • フラグメントシェーダ
      • シェーダーの生成
        var shader = gl.createShader(gl.FRAGMENT_SHADER);
      • 以降は頂点シェーダーと同様
  • プログラムオブジェクトの生成
    プログラムオブジェクトは、各シェーダーをまとめたもの

    • プログラムオブジェクトの生成
      var program = gl.createProgram();

    • プログラムオブジェクトにコンパイルしたシェーダを割り当てる
      gl.attachShader(program, vs); gl.attachShader(program, fs);

    • シェーダをリンク
      gl.linkProgram(program);

    • シェーダのリンクが正しく行なわれたかチェック
      if(!gl.getProgramParameter(program, gl.LINK_STATUS)){ alert(gl.getProgramInfoLog(program)); }

    • プログラムオブジェクトを有効にする
      gl.useProgram(program);
  • 頂点バッファを作る
    VBOやIBOが毎フレームごとに変更される場合は、描画の際に頂点バッファを作る必要がある

    • Vertex Buffer Object(VBO)

      • バッファオブジェクトの生成
        var vbo = gl.createBuffer();
      • バッファをバインドする バッファに値を設定するときは、WebGLContext に bind → set → unbind とする必要がある
        gl.bindBuffer(gl.ARRAY_BUFFER, vbo);

      • バッファにデータをセット
        gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STATIC_DRAW);

      • バッファのバインドを無効化
        gl.bindBuffer(gl.ARRAY_BUFFER, null);

    • Index Buffer Object(IBO)

      • バッファオブジェクトの生成
        var ibo = gl.createBuffer();
      • バッファをバインドする
        gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, ibo);
      • バッファにデータをセット
        gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Int16Array(data), gl.STATIC_DRAW);
      • バッファのバインドを無効化
        gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
  • VBO と IBOを登録
    シェーダー内の各変数(attribute変数、uniform変数)
    attribute変数...頂点ごとに異なるデータ
    uniform変数...頂点ごとに同じデータ

    • gl.getAttribLocation() gl.enableVertexAttribArray() gl.vertexAttribPointer() を利用してVBOを登録
    • gl.getUniformLocation() gl.uniformMatrix4fv() を利用して IBOを登録
  • 描画
    これまでの処理はプログラム開始時に1度だけ行えば良い
    描画は毎フレーム行う

    • canvasを初期化
      gl.clearColor(0.0, 0.0, 0.0, 1.0); gl.clearDepth(1.0); gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);

    • インデックスを用いた描画命令
      gl.drawElements(gl.TRIANGLES, index.length, gl.UNSIGNED_SHORT, 0);

    • コンテキストの再描画
      gl.flush();