Kilimanjaro Warehouse

WEBとかゲーム開発のことについて書きます。

Daprの読み方(発音)

Daprの読み方がよくわからなかったので調べてみました。
Dapr自体がどういうものであるかについては、
公式や解説サイトなどを読んでください(丸投げ)
Dapr - portable, event-driven, serverless runtime.


TL;DR Dapr 読み方

ネイティブスピーカーの発音は「ダパァ」。
カタカナIT用語にすると「ダッパー」といった感じになると思います。


ソース

Daprのアカウントが、「Dapperのように発音する」とツイートしていました。

「dapper pronounce」でグーグル検索すると、
発音を聞くことができます。
f:id:kilimanjaro-a2:20191022122242p:plain
dapper pronounce - Google 検索

(ちなみにdapperは「こざっぱりとした、いきな」という意味の形容詞のようです。)
ejje.weblio.jp


また、Microsoft Channel 9の方が動画でDaprを紹介していました。
発音を聞くと、こちらも「ダパァ」のように聞こえます。
(該当箇所は4:28~)
youtu.be


また、"dapper" に似た単語として"rapper"(ラップする人)がありますが、
ネイティブの発音は「ラパァ」のように聞こえ、
日本語カタカナ読みに変換すると「ラッパー」となることも考慮しました。

f:id:kilimanjaro-a2:20191022120519p:plain


結論

「Dapr=ダパァ(ダッパー)」!
Daprのことを「ダプラ」とか「ダプル」とか言ってるおじさんがいたら、
「それってダパァ(ダッパー)のことですか?」と声を上げていきましょう!

WSLでnpm installすると EPERM: operation not permitted, futime が発生する件の対処法

Windows Subsystem for Linux(以下WSL)で、
/mnt/c/以下のディレクトリでnpmでパッケージをインストールしようとすると、
以下のようなエラーがでてインストールに失敗しました。

npm WARN tar EPERM: operation not permitted, futime
npm WARN tar EPERM: operation not permitted, futime
npm WARN tar EPERM: operation not permitted, futime
.
.
.
npm ERR! Maximum call stack size exceeded

権限周りでエラーが出ているようですが、
chmodでディレクトリの権限を変更しようとしても、
うまくいきませんでした。

解決法

以下のリンクを参考にして権限を設定できるようにします。
qiita.com
設定後はWindowsの再起動が必要なようです。

デフォルトでは、/mnt/以下のファイルはメタデータを持てないため、
chmodでの権限が設定できないようになっているようでした。

上記の手順に従って権限変更の情報を持つようにすることで、
npm installが正常に動作するようになりました。


参考:
stackoverflow.com
superuser.com
www.clear-code.com

WSLで Error: patchelf must be installed: brew install patchelf が発生する件の対処法

Windows Subsystem for Linux(Ubuntu 18.04.02 LTS)でLinuxbrewを導入し、
パッケージをインストールしようとした際、以下のようなエラーが出ました。

Error: patchelf must be installed: brew install patchelf 

メッセージに従いpatchelfをインストールしようとしても、
上記のエラーが表示されるので困りました。

解決法

下記のコマンドを実行すると解決しました。

sudo apt-get install build-essential curl file git


インストールの手順のうち、
Linux/WSL Requirements以下の部分を見落としていたのが原因のようでした。
Homebrew on Linux — Homebrew Documentation


apt-getやbrewのバージョンが古いとインストールに失敗することがあるので、
その場合はupdateしましょう。

sudo apt-get update
brew update

Unity: Ensure Read/Write is enabled on the Particle System's Texture. の解消法

Ensure Read/Write is enabled on the Particle System's Texture.

Particle SystemでTextureを使用する際に、
Textureの設定でRead/Write Enabledにチェックを入れていないと、
Particle SystemがTextureのデータを使用することができずにエラーが発生します。

解決法

対象のSpriteのInspectorからRead/Write Enabledにチェックを入れるだけです

f:id:kilimanjaro-a2:20190912183223p:plain

参照:
stackoverflow.com
docs.unity3d.com

Unity: HogeClass.PiyoとHogeClass.Piyo間があいまいです(CS0229) [ Assembly-CSharp ]の解消法

HogeClass.PiyoとHogeClass.Piyo間があいまいです(CS0229) [ Assembly-CSharp ]

f:id:kilimanjaro-a2:20190722002016p:plain

Unityで開発を行っていたところ、
同じクラスの同じ変数どうしの間があいまいであるという上記のようなエラーが、
クラス内すべての変数について発生しました。

解消法

slnファイルとcsprojファイルを削除して、
プロジェクトの再起動を行うとエラーが解消されました。

slnファイルとcsprojが何のファイルであるかについては、
こちらの記事が参考になります。
qiita.com

自動生成されるファイルなのですが、
一応バックアップは取ってから削除を行う方が良いと思います。

1週間でゲームを作った ~宇宙編~

知り合いのゲーム製作者の方と「ゲームジャムをやろう」という話になり、
1週間で「宇宙」というお題のゲームを作りました。

今回は、いつも参加しているunity1weekではありません。

作ったゲームについて

タイトルはSpace Defender(スペースディフェンダー)です。
某有名なゲームの外伝、Ifストーリーのようなものを意識して作ってみました。

ジャンルとしては、
ブロック崩し+シューティングのような感じです。

f:id:kilimanjaro-a2:20190726011537p:plain

スペースキーだけでエイリアンを操作し、
敵の攻撃を跳ね返しながら、長い時間地球を守ることが目的です。

以下のリンクから遊べるので、良かったら遊んでみてください!
unityroom.com

良かった点

今回作ったゲームで、達成できた点・良かった点を挙げていきます。

  • 「どこが面白いのか?」を考えた

今回は、面白さの目標として「バルーンファイト」を意識しました。
独特な操作感で、はじめは思ったようにキャラクターが動かせないのですが、
慣れてくるとテクニカルな動きで華麗に敵を倒せて楽しいゲームです。

このゲームでも、独特な操作で最初は慣れなくても、
次第に反射攻撃やパワーショットを駆使して、バンバン敵を倒せるようになります。
このように成長感と楽しみを感じてもらえることを目標に開発を行いました。

またバルーンファイトでは、敵を倒すためにはプレイヤーが近づかなければならないのですが、
近づくことによって自分も攻撃を受けやすくなるというリスクがあります。
それと同じようにSpace Defenderでは、敵の攻撃は自分へのダメージになり得るリスクがある反面、
跳ね返すことができれば強力な攻撃を行うことができるリターンを作りました。
(実際は後述のパワーショット強すぎ問題のせいで、あまりリターンは美味しくないです)

今までのゲーム製作では、「どこが面白いのか」をよくわからないまま作りがちで、
結果として面白くないものができることが多かったのですが、
今回のゲームは、どこに面白さがあるのかをハッキリ言語化できたので良かったです。

  • シンプルなルールと操作

操作ボタンはスペースキーのみで、
押すタイミングによって、プレイヤーの動きが変わります。
(ちなみにスペースとお題の宇宙を掛けています)

操作キーが1種類だけなのと、
ルール(地球に3回攻撃されたら負け)というゲームの根幹部分を、
シンプルにまとめることができたと思います。

  • ドット絵の活用

今回は画面全体でドット絵(ピクセルアート)を採用しました。
他の参加者の方が強いドット絵使いだったので、
せっかくだから自分も使ってみようと思ったからです。

使ってみて、手軽に画面全体の統一感を出すことができて便利だなと思いました。

今回はUnityに搭載されている2D Pixel Perfectというパッケージを利用することで、
自動でピクセルパーフェクトな画面を実現してくれたので、
「Unityのちからってすげー」と思いました(小並感)。

反省点

今回作ったゲームで、上手くいかなかった点を挙げていきます。

ステージ作成に短時間しかとれず、難易度調整も適当すぎました。
敵の強さの上昇具合が思っていたよりも激しかったようで、
緩急をしっかりつけると良いというアドバイスをいただきました。

また、実際に人がプレイしているところを後ろから見てみると、
パワーショットがガンガン使われる反面、反射攻撃があまり使われていませんでした。
反射攻撃のリスクとリターンのギリギリ具合を楽しむよりも、
パワーショットで敵をガンガン破壊していくゲームになってしまいました。
反射攻撃のメリットを大きくするべきだったと反省しています。

レベルデザイン・難易度調整はいつも手を抜きがちなので、
近いうちにガッツリと強化期間を取りたいなと思っています。

  • ギミックの不足

基本的に出現する敵が「動かない敵」「動く敵」「壁」の3種類しかなく、
単調になりがちかなと思いました。

最初の段階では、「反射攻撃でしか倒せない敵」「パワーアップアイテムを落とす敵」などを考えていましたが、
ゲームが複雑になりそうだったのと、単純に実装する時間がなかったので見送りました。
何かこの辺良いアイディアはなかったかなぁと終わってからずっと考えています。

思ったこと

ここのところ体調とメンタルの調子が悪い日々が続いていましたが、
ゲームを作る楽しさや、新しいことにチャレンジして試行錯誤する経験をすることで、
脳にいい感じの刺激を与えられて良かった感じがあります。

また、ゲームジャムについてですが、
せっかくなのでunity1weekとは違う、
「少人数」かつ「知り合い間での開催」という点を活かせたら良いなと思いました。
もちろん本家unity1weekもしっかり参加していきたいです!

Error: The reference assemblies for framework ".NETFramework,Version=v4.7.1" were not found.

先日VS CodeでUnityでの開発を行おうとしたところ、
以下のようなエラーが出て、コードの補完が効かなくなりました。

Error: The reference assemblies for framework ".NETFramework,Version=v4.7.1" were not found.

数日前にVisual Studioをアンインストールしたせいで、
.NETFrameworkも一緒に消えてしまったのが原因だと思われます。

WindowsであればVisual Studio Installerから、
4.7.1のSDKをインストールすることで解決できます。
f:id:kilimanjaro-a2:20190629165236p:plain

macOSではmonoをインストールすることで解決できるようです。
qiita.com