見出し画像

技術書典13「Babylon.js レシピ集 Vol.1」を寄稿するまでの裏側

こんにちは、XRエンジニアのイワケンです。

この度「Babylon.js勉強会」というコミュニティから「Babylon.js レシピ集 Vol.1」の電子版を技術書典13のオンラインマーケットに寄稿しました!!

執筆者7名。表紙デザインはちょまどさんです。

個人的にこの一連の流れに感動したので、noteに残しておきたいと思います。

私は、コミュニティの立ち上げ人であり、執筆者の1人です。

技術書典とは、技術書オンリーイベントでありお祭りです。技術者を中心に自分たちで技術書を執筆し出展しようというイベントです。

https://techbookfest.org/event/tbf13

それで今回寄稿した本がこちら。「Babylon.js レシピ集 Vol.1」

Babylon.jsとは、オープンソースで公開されているWebGLフレームワークです。Babylon.jsを使うと、ブラウザでさまざまな3DCG、XRの表現が可能です。しかし、これまでBabylon.jsに関する本は国内外含めてほとんどありませんでした。

この本はBabylon.jsをもっと広めたいという有志の熱意から生まれ、様々な知見が詰まっています。
ぜひご覧ください。

Babylon.js レシピ集 Vol.1

私が感動を感じている理由は以下の3つです。

① コミュニティ立ち上げから4か月で技術本を執筆するほどのムーブメントが起きたこと

②コミュニティきっかけでBabylon.jsを学んだ人が執筆者になったこと

③私自身がこの本の執筆に携われたこと

この3つです。このnoteでは、この3つについて詳しく残しておきたいと思います。

①コミュニティ立ち上げから4か月で技術本を執筆するほどのムーブメントが起きたこと

Babylon.jsの日本コミュニティが立ち上がったのは2022年の5月6日です。それまでBabylon.jsは日本ではごく一部の数名が使っているフレームワークでした。(しかも、仕事ではなく趣味の人が多い)

5月6日に立ち上げイベントを行い、200人以上集まりました。しかし、まだ数名を除いてほぼ初学者状態です。そこで

・Discordを作り、気軽に質問できる環境を作る (現在255名)
・Scrapboxを作り、知見をためられるようにする
・ゆるほめLT会を企画し、初学者の開発と発表の機会を作る

という試みをしました。Discordに関しては私が最初立ち上げを行ったのですが、ScrapboxとゆるほめLT会に関しては、コミュニティメンバーの声を拾って企画をサポートする形で一緒に進めていきました。かつ、その企画の話し合いをDiscordで他の人に見える形で進めました。そのことにより

・コミュニティ内でアクティブに行動する人が増えた
・Babylon.js力が少しでもチャレンジできるという機運が生まれた
・本の執筆内容がLTやScrapboxにすでにある状態だった

という流れがあり、4か月で執筆者が集まり寄稿までやりとげやすい状態になっていたとしたら嬉しいですね。

技術書典企画の呼びかけ時のDiscord

現に、今回の執筆者への参加はDiscord内の募集からの立候補だったのですが、過去イベントに参加した人から立候補した人が多かったです。地道な活動の継続と巻き込みが大事なのだと改めて思いました。

②コミュニティきっかけでBabylon.jsを学んだ人が執筆者になったこと

7名の執筆者の内訳は

・元々Babylon.jsをバリバリ書いていた人 2名
・コミュニティきっかけでBabylon.jsを本格的に学び始めた人 5名

でした。

特に、コミュニティきっかけでBabylon.jsを学び始めた人がいるのが嬉しいですし、その方たちと一緒に本を執筆できたのもとても嬉しいです!

③私自身がこの本の執筆に携われたこと

私は

第8章 ローレンツアトラクタを WebXR で体験する

の章を担当しました。

私自身この半年くらい、趣味でBabylon.jsを触っていました。私自身Web開発が苦手だったので、何回もつまづきながら色んなアウトプットや記事を書いてきました。

その中でお気に入りの「ローレンツアトラクタ」のことと、WebXRについてのことを執筆できたことが嬉しいです。

追記: 執筆環境とフロー

詳しくは、Limesさんのブログかーでぃさんのブログで紹介されています。今回Limesさんが環境構築を行ったため、私の方からは執筆者の立場でわかるところを共有します。

開発環境
・Re:VIEW 5.4 (元にしたTemplate)
・Visual Studio Code
(執筆エディター)
・Github
(原稿管理)
・Github issue
(レビュー項目)
・Github Action
(Pushされたら自動でpdf出力)
・Docker
(pdfを手元で出力したい人)

VSCode拡張機能
Re:VIEW (一応VSCodeでプレビューできるようになる)
vscode-textlint v0.9.0 (最新だと動かない)

を使用しました。
スケジュールはこんな感じです。かなり早めのレビュー期間でした。

7月中:サークル登録、執筆者決めて各自執筆
8/22くらいまで:執筆は原則完了
8/31まで:レビュー、誤字脱字チェック

執筆のフロー


最初
・執筆用のGithubプライベートレポジトリをcloneします。

執筆&マージ
・各自ブランチを切る (master push OKルールだったが、最終的にみんなブランチを切っていた)
・各々{○○.reファイル}を書く。(Re:view記法になります)
・VSCodeの拡張機能やDockerでプレビューを確認 (私は最終的にはあまりやらなかった)
・GithubにPush
・Github Actionが走り、pdfがビルドされる。エラーがある場合エラーを返す
・問題なければプルリクエストを出してセルフマージする

Github Actionsでpdfビルドされる様子。エラーがあるとエラーが表示される

レビュー
・自分のも他人のもissueに追加する
・issue見ながら自分の原稿を修正
・修正のフローは執筆フローと同じ

Github issueでみんなでレビュー

悲しみ

・ソースコードの折り返し、手動で改行するしかない

執筆感想

・Re:VIEW記法、慣れれば楽しい。Markdownよりちょっと難しいくらい。別noteにまとめるか。
・VSCodeのプレビューは不完全のため後半では使用しなかった (画像が表示されないなど) 
PushのタイミングでGithub Actionでpdfビルドされる体験が良かった。プレビュー見るよりPushしてpdf見た方が確実。マージ時のビルドより良い体験。(しかしGithubの容量をひっ迫するのでトレードオフ)
・Docker環境構築できなかった…なので手元のpdfビルドができなかった。残念。
・issueでのレビュー体験良かった。

まとめ

技術本を出版することは一つの夢だったので、それが達成できて嬉しいです。

また、執筆にあたり、執筆メンバーで協力し合いながら進めました。編集長のLimesさん、私の質問にやさしく答えてくださった、cx20さん、turamyさん、にー兄さん、やまゆさん、一緒に執筆とレビューを頑張った、彩さん、かーでぃさん、ヤスさん、表紙をデザインしてくださったちょまどさんありがとうございました!

Re:viewの数式の表示の仕方がわからず質問するワイ

他の執筆者のブログ (こちらもおススメ)

編集長Limesさんの執筆総まとめブログ。現在英語のみですが、後ほど日本語版も公開されるそうです。

初めてのBabylon.js、初めての執筆のかーでぃさんによるブログ。環境構築なども書かれており、執筆を考えている方にお勧めです!


よろしければサポートお願いします! サポートいただいたお金はハッカソンの運営に使わせていただきたいと思います。