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でディレクトリの権限を変更しようとしても、
うまくいきませんでした。
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のデータを使用することができずにエラーが発生します。
Unity: HogeClass.PiyoとHogeClass.Piyo間があいまいです(CS0229) [ Assembly-CSharp ]の解消法
HogeClass.PiyoとHogeClass.Piyo間があいまいです(CS0229) [ Assembly-CSharp ]
Unityで開発を行っていたところ、
同じクラスの同じ変数どうしの間があいまいであるという上記のようなエラーが、
クラス内すべての変数について発生しました。
解消法
slnファイルとcsprojファイルを削除して、
プロジェクトの再起動を行うとエラーが解消されました。
slnファイルとcsprojが何のファイルであるかについては、
こちらの記事が参考になります。
qiita.com
自動生成されるファイルなのですが、
一応バックアップは取ってから削除を行う方が良いと思います。
1週間でゲームを作った ~宇宙編~
知り合いのゲーム製作者の方と「ゲームジャムをやろう」という話になり、
1週間で「宇宙」というお題のゲームを作りました。
今回は、いつも参加しているunity1weekではありません。
作ったゲームについて
タイトルはSpace Defender(スペースディフェンダー)です。
某有名なゲームの外伝、Ifストーリーのようなものを意識して作ってみました。
ジャンルとしては、
ブロック崩し+シューティングのような感じです。
スペースキーだけでエイリアンを操作し、
敵の攻撃を跳ね返しながら、長い時間地球を守ることが目的です。
以下のリンクから遊べるので、良かったら遊んでみてください!
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をインストールすることで解決できます。
VS Code: マークダウン記法で書かれたファイルをプレビューしながら編集する
VS Code (Visual Studio Code - Code Editing. Redefined) は、
マークダウン記法で書かれたファイルのパース結果を、
リアルタイムで確認することができます。
カラムを生の.mdファイルとプレビューの2つに分割することで、
常に見た目を確認しながらファイルを編集することができます。
(左: 編集中のファイル, 右: パースされた結果)
以下手順です。
.mdファイルを開く
VS Codeで拡張子.mdのファイルを開きます
.mdファイルのタブを右クリック→(上下左右)へ分割
エディタ分割機能で、好きな方向へ分割します
.mdファイルのタブを右クリック→プレビューを開く
プレビューを表示したい場所のタブから、プレビューを開きます