好きなゲーム音楽家,あるいはアーティストの話

好きなアーティスト何?とか普段何聴いてるの?と聞かれると答えにくい.

何故かと言うと普段はゲーム音楽を聴いていて,一般的なアーティストの名前は全くわからないから.

とはいってもゲーム音楽の中でも好きな音楽家はいて,その紹介をする.

今回紹介するのは下田祐と言う人.

現在はタイトーのサウンドチームであるZUNTATAで活動しており,プログレ系の音楽とFM音源を用いた作曲,およびライブパフォーマンスに定評がある.

知ったきっかけ

2010年(9年前!)に買った東方紫香花という東方Projectのアレンジコンピレーションアルバムで知る.

その後2017にタイトーのサウンドチームであるZUNTATAに移籍すると言うタイミングから本格的にハマり,追いかけているという状態.

商業で活動している他,東方やボーカロイドなどで同人活動も行っていて,活動の幅が広い.

Spotifyのリンクを載せるが,Apple Musicなど他の配信サービスでも視聴可能.

歴史

同人

2003 ~ 2013年ごろの活動.

初期にはゲーム音楽のアレンジをしていたほか,東方アレンジもしていた.

東方アレンジでは,原曲の他に何かのオマージュが入っていることが多く,知っているとより楽しめる曲が多い.

2010年代になるとボーカロイド関連のアルバムを多く出すようになり,メグッポイド3周年記念祭にも参加している.

karent.jp

また,初期のボーカロイドユーザでもある.

東方アレンジやボーカロイドだけではなく,チップチューンでも活動している.

FAMICOMPOというファミコン音源を用いたコンテストに出場していたり,

www.youtube.com

オリジナルのアルバムもリリースしている.

open.spotify.com

ほかサークルのコンピレーションアルバムへの参加も多く,2005年にリリースされた東方紫香花もその一つ.

ほかだと2014年にリリースされたCradle Re:BOOTという4枚組アルバムにも参加している.

Cradle Re:BOOT - 東方幻樂祀典 - sound sepher

プログレバンド

新世界というプログレバンドを結成し,2004年,2005年それぞれにアルバムをリリースする.

open.spotify.com

open.spotify.com

Wikipediaにも載っているバンドで,メンバーもプログレ界で有名な人が集まっている(らしい?).

新世界 (バンド) - Wikipedia

インティ・クリエイツ時代

ロックマン9と10のBGMを作曲している.

有名なのは下の二曲.

  • GALAXY FANTASY(ギャラクシーマンステージ)
  • WE'RE THE ROBOTS(ワイリーステージ2)

CDのみで配信は無いかもしれない.

ガスト時代

アトリエシリーズの「アーシャのアトリエ」や「エスカ&ロジーのアトリエ」などのBGMを作曲.

有名なのはこのあたり.

open.spotify.com

open.spotify.com

open.spotify.com

「蜂群崩壊症候群 -Colony Collapse Disorder-」はラスボスのBGMで,杉並児童合唱団による合唱が特徴的.

歌詞もすごい.

www.kasi-time.com

フリー時代

その後フリーになり,8BIT MUSIC POWERという作品の楽曲提供・マスタリングなどを行った.

8BIT MUSIC POWER FINAL - RIKI collection -

8BIT MUSIC POWER FINAL - RIKI collection -

その他では,過去に作成した楽曲を自分で歌うというアルバムをリリースしている.

open.spotify.com

ZUNTATA加入

2017年6月に行われたライブで,初ライブおよび加入が発表された.

www.taito.co.jp

ライブ後は,ダライアスやレイシリーズのアレンジを行ったり,スマホ版たけしの挑戦状の新規BGMを作成.

グルーヴコースターという音ゲーではFM音源でプログレな曲も提供.

iTunes等で購入可能.

FM音源黙示録-Apocalypse of FM Tone Generator-

FM音源黙示録-Apocalypse of FM Tone Generator-

  • Yu Shimoda (ZUNTATA)
  • サウンドトラック
  • ¥150
  • provided courtesy of iTunes

生きててよかった

宣伝

twitter.com

Spotifyでプレイリストを作成したのでお使いください.

open.spotify.com

楽曲のコレクション今はこんな感じ.

AWS CDKでmackerel-container-agentを同梱したECSタスク定義を作成する

AWS CDKからmackerel-container-agentをサイドカーにしたタスク定義を作成したいことがよくあるので,ライブラリを継承してmackerel-container-agentを必ず同梱するようなタスク定義クラスを作ってみた.

コードは以下.

import * as cdk from '@aws-cdk/cdk'
import * as ecs from '@aws-cdk/aws-ecs'

export interface Ec2TaskDefWithMackerelProps extends ecs.Ec2TaskDefinitionProps {
  mackerelRoles: string
  mackerelApiKey?: string
}

export class Ec2TaskDefWithMackerel extends ecs.Ec2TaskDefinition {
  constructor(scope: cdk.Construct, id: string, props: Ec2TaskDefWithMackerelProps) {
    super(scope, id, props)

    const platform = this.networkMode === ecs.NetworkMode.AwsVpc
      ? 'ecs_awsvpc'
      : 'ecs'

    const mackerelContainer = this.addContainer('mackerel-container-agent', {
      image: new ecs.DockerHubImage('mackerel/mackerel-container-agent:latest'),
      environment: {
        MACKEREL_CONTAINER_PLATFORM: platform,
        MACKEREL_ROLES: props.mackerelRoles,
        MACKEREL_APIKEY: props.mackerelApiKey || 'YOUR_API_KEY',
      },
      memoryLimitMiB: 128,
    })

    if (this.networkMode !== ecs.NetworkMode.AwsVpc) {
      this.addVolume({
        name: 'cgroup',
        host: {
          sourcePath: '/cgroup',
          // or Amazon Linux 2
          // sourcePath: '/sys/fs/cgroup', 
        },
      })

      this.addVolume({
        name: 'docker_sock',
        host: {
          sourcePath: '/var/run/docker.sock',
        },
      })

      mackerelContainer.addMountPoints(
        {
          containerPath: '/host/sys/fs/cgroup',
          sourceVolume: 'cgroup',
          readOnly: true,
        },
        {
          containerPath: '/var/run/docker.sock',
          sourceVolume: 'docker_sock',
          readOnly: true,
        },
      )
    }

    this.defaultContainer = undefined
  }
}

現状はEC2の場合のみ対応していて,どのネットワークモードでも動作する.(デフォルトはBridgeモード)

const apiTaskDef = new Ec2TaskDefWithMackerel(this, 'ApiTaskDef', {
  mackerelRoles: 'sample:api'
})

mackerel-container-agentのドキュメントはこちら.

mackerel.io

余談

this.defaultContainer = undefined

この部分は,mackerel-container-agentがdefault containerとしてセットされるのを防いでいる.

default containerはALBがタスクにアクセスする際のコンテナ,つまり「Container to load balance(負荷分散用のコンテナ)」としてアクセスされるコンテナのこと.

これはAWS CDKの用語で,ドキュメントに説明がある.

https://awslabs.github.io/aws-cdk/refs/_aws-cdk_aws-ecs.html?highlight=defaultcontainer#@aws-cdk/aws-ecs.Ec2TaskDefinition.defaultContainer

The first essential container that is added to this task will become the default container. と書いてあるとおり,最初にessential: trueなコンテナが選ばれるという動作になっており,mackerel-container-agentが選ばれてしまうので回避が必要.

YAPC::Tokyo 2019 に参加して,OSSとコミュニティについて見つめ直した

面白そうだから参加してみようという気持ちで参加したのが今回のYAPC::Tokyo 2019だった.

Perlの話やプロジェクトの話など,面白い話がたくさん聞けたのだけど,その中でもYAPC::Tokyo 2019 はテーマの「報恩謝徳」に関係した話が印象深かった.

具体的にはOSSとコミュニティと恩についての話で,自分が聴いた中では下の三つの話があった.

songmu.github.io

自分のOSSとコミュニティへの付き合い方について,重ね合わせて考えてみる.

例えば自分はあまりGitHubでコードを書いているわけではない.キャリアの話においてもGitHubを活用という話もあり,負い目を感じている部分もあった.

それが今回のYAPCに参加して,誰もが最初は小さいものから作っていたという話もあり許された気分になったし,もっと言えば自信を持っていいんだなと感じた.id:Songmuさんの失敗談も勇気付けるきっかけになった.

他の人のOSSに関して,「利用しているだけでも貢献している」というのはたしかにそうだなと思った.

逆に考えて,自分がOSSに限らずプロダクトを作ったとして,周りに使ってもらうだけでも嬉しいなということを思い出した.

PRに関してもそうで,単に自分が困っているから変えるという程度でPRを貰ったら嬉しいと思うし,自分もしていきたい.

「自分が困っているからPRを作る,自分でも変更できる内容ものだったからPRする」という気持ちで良いんだと思う.変に最初から世界を良くしようとか考えなくていいし,取り込むかどうか判断するのは自分ではなくコミッタなのだから.

ただ,自分を卑下しているような人にとっては特に,貢献内容の凄さ=修正の大変さと考えがちなのかもしれない.「自分でも変えられる」と言うことは一般的にすごいことではないのだろうと思ってしまう.

それに関連する話で,前夜祭では最近やっているAWS CDKについてLTをした.

AWS CDKは知名度が低く,使ってる人も全然知らないし,日本人のコントリビュータも全然いないという動機から発表した.

AWS CDKを使っている人に懇親会の場でコントリビュートの内容を伝えたところ「すげぇ!」と言われた場面があった.

修正量は別に大したことはないのだけれど,実際に便利になっているということが実感できた.

また,ただ利用者を増やしたいというだけで発表したのだけれど,結果的にOSSやコミュニティへの貢献になっていると気づいた.

自分のことを振り返ってみると本当に多くの情報をコミュニティから貰って,ここまで成長できたと思っている.

OSSやコミュニティを,ただ利用するだけで何も返せなかった自分が,こうやってコントリビュートや登壇で恩返しできるまでになったことは成長を感じている.

まだ駆け出しだけれど,OSSやコミュニティに貰った恩を再確認して,引続き恩を返していきたい.

そして,もっと世界が良くしていきたい.

伝えるための文章を作るのは難しいなと言う話

プログラムは継続的な改善が可能だが,文章は難しい.

例えばプログラミングをしてプロトタイプを作ってそれを伝えるときに,「このコードのこういう問題点は把握していて,今後改善する予定」と書くことはできる.

文章自体だとそうも行かなくて,メタ的に「下の文章は今こういう問題点がありますが後で直します」なんて書くことはできない.

自分はコードを書くのがそんなに遅いわけではないけれど,文章に関しては遅いと思っている問題がある.

なので,できる限り文章を書くスピードを上げるために,前提部分を高めに仮定して本当に伝えたい部分に直接必要な部分だけを書くということをよくやっている.

でも実際の前提部分が足りていないと一気に伝えることが不可能になってしまうし,コミュニケーション不足による追加の手間が発生してしまう.

そうして追加情報が必要になったとしても,情報が更新されたということを発信したり,別の場所に書くにしても情報の分断が発生する.

なので一発で伝わるようにできるのが一番ではある.

「伝えたい人を想定して,その人がどうなっていて欲しいかを目標にする」というアドバイスを目にしたのもあり,相手のことを考えてちゃんと書かないとなぁという気持ちになった.

直近だとエンジニアセミナーへの登壇もあるので,ここから改善していきたい.

hatena.connpass.com

AWS CDKについて

最近趣味でAWS CDK(以下CDK)を触っていて,ECSをCDKで構築してみるということをやったり,CDK本体にContributeをするなどをしている.

そんなCDKについて,触ってみる人が増えたらいいなということでエントリを書いてみる.

CDKとは

Cloud Development Kitの略で,簡単に言えばTypeScriptを書くことでCloudFormationを生成してくれるツールのこと.

AWS公式のツールであり,以下のリポジトリで開発されている.

github.com

メリット

  • TypeScriptによる強力なコード補完
  • 共通パターンをライブラリ化することによる記述量の削減
  • デプロイ時に使える強力なツール群

コード例

Fargateのサービスを動かすサンプルコードは以下.

これを実行すると,VPCが作成され,amazon/amazon-ecs-sampleイメージがFargateで動き,ALBでアクセス可能になるというところまでやってくれる.

import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import cdk = require('@aws-cdk/cdk');

class BonjourFargate extends cdk.Stack {
  constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // Create VPC and Fargate Cluster
    // NOTE: Limit AZs to avoid reaching resource quotas
    const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 });
    const cluster = new ecs.Cluster(this, 'Cluster', { vpc });

    // Instantiate Fargate Service with just cluster and image
    const fargateService = new ecs.LoadBalancedFargateService(this, "FargateService", {
      cluster,
      image: ecs.ContainerImage.fromDockerHub("amazon/amazon-ecs-sample"),
    });

    // Output the DNS where you can access your service
    new cdk.Output(this, 'LoadBalancerDNS', { value: fargateService.loadBalancer.dnsName });
  }
}

const app = new cdk.App();

new BonjourFargate(app, 'Bonjour');

app.run();

コードのURL: https://github.com/awslabs/aws-cdk/blob/v0.22.0/examples/cdk-examples-typescript/hello-cdk-fargate/index.ts

このように共通パターンをライブラリ化して,記述量を格段に減らすことができるということは,特に多くのリソースを作成したいときにかなり便利に感じると思う.

デプロイ時に使えるツール群

CDKはデプロイ用のコマンドとしてcdk deploycdk destroy があり,TypeScriptで作成したリソースをそのままデプロイすることができる.

またこの他に,YAMLを生成してくれる cdk synth というのもあり,実際に作成されるリソースを確認することも可能.

また,強力なのがセキュリティ周りの警告で,セキュリティグループやIAMに変更が加わると事前に警告を出してくれる.

f:id:cohalz:20190114214638p:plain

これは本当に強力で,ライブラリを使っていると隠蔽されてしまいがちな部分の中でも簡単にセキュリティ周りの変更が確認できる.

ライブラリの概念

CDKでリソースを作成する場合,下の二種類のライブラリを使って書くことになる

  • CFnリソースがそのままTypeScriptのクラスになったCloudFormation Library
    • CfnXxxという名前のリソース
  • 一段抽象化され,デフォルト値の設定や必要なリソースの作成を行ってくれるConstruct Library

基本的にはConstruct Libraryを使えばいいが,すべてのリソースにConstruct Libraryが用意されているわけではないためCloudFormation Libraryが必要になることもある.

難しいところ

Construct Libraryは強力だけど,上手く使わないとハマってしまうこともある

  • 新しい機能に対応していない場合もある
    • 起動テンプレートや管理ポリシーなど比較的新しいリソースなど
  • 生成されるYAMLとの対応が難しい
    • CFnとは違うデフォルト値を設定してくることもある

終わりに

CDKはまだ開発者プレビューだけれども,今の時点で十分に強力なツールであることは間違いない.

また,下の記事で CDK はまだ完成していません。私たちは CDK をクローズな伽藍ではなくオープンなバザールのように作っています。 とあるようにどんどんissueやPRが取り込まれ良くなっていくと思う.

aws.amazon.com

こんなにもこれからが楽しみになってくるソフトウェアは久しぶりでワクワクしているし,これからもどんどん触ったりPRを出したりしていきたい.

今年の目標

というと大々的になりがちなので,裏目標として考えていたことだけど「知り合いを増やす」というのがある.

自分が知っている人を増やすというのはもちろんのこと,自分のことを知っている人を増やすというのを目標に頑張っていきたい.

そもそも,自分の名前をどこかに刻むというのが大好きで,その一環で場所ではなく人に名前を刻むということをやっていきたいなと思っている.

今月もいくつか予定は入れていて,本来の目的もそうだけどこっちも重視していきたい.

自分なりのバーチャルYouTuberの楽しみ方

前の記事で,業界自体は追わなくなったというエントリは書いたけれど,じゃあどうしているのかという記事も書いておこうと思う.

VTuber業界を追うのはやめた - Re:cohalz

普段見ているのはエイレーンファミリーと呼ばれている人たちでこれを例に取って説明する.

エイレーンファミリーと呼ばれている人たちで,メインのチャンネルとなるのは下の2つ.

www.youtube.com

www.youtube.com

この人たちは動画メインで活動しており,不定期の投稿をしている.

ヨメミはゲームや実験動画などの他にドッキリを受ける動画などでいい子感が発揮されているし,

www.youtube.com

夏実萌恵は英語コンテンツとしても面白いし異常な口の悪さも特徴的.

www.youtube.com

面白い動画が見たいという自分の欲求とマッチしているし,それぞれの動画1つ1つは短いというのも嬉しい.

次回にどういった動画が投稿されるのか,いつ投稿されないのかはわからないのでチャンネル登録と右のベルボタンを押して,投稿時には通知が飛ぶようにしてある.

その他の楽しみ方としてはコミュニティに参加するというものもある.

エイレーンファミリー公式のDiscordがあり,日々会話がされている.

ここでは関連イラストを貼るチャンネルがあり,そこ日々Twitterやpixivのイラストが貼られているのも楽しみの一つになっている.

また公式というだけありモデラーのDigitrevx氏や萌恵のプロデューサーComdost,更にはエイレーン本人まで登場することもある.

その他の楽しみ方としては,公式のファンディングサイトに登録して限定コンテンツを楽しむというのもある.

www.patreon.com

www.patreon.com

限定壁紙や動画などが見れる他,動画の説明欄に出資者として名前が載るというのも個人的には嬉しいポイント.

上の画像では見切れているが,下の説明欄に名前が載っている.

また,YouTubeで自分のidを検索したときも凄いことになっている.

https://www.youtube.com/results?search_query=cohalz

そんな感じで,普段どうやって楽しんでいるのかという話だった.

それと,ヨメミ一周年おめでとうございます.

まさか一年前はこんなに応援することになるとは正直思っていなかった.

www.youtube.com

エイレーンファミリーに関する過去に書いた記事もよろしくお願いします.

core.cohalz.co

core.cohalz.co

core.cohalz.co