unityを起動しました

これに至った経緯を語ると、


まず、普通に使っているキーボードは、とても押しにくい配置に満ちている
「WAZA」とか「SEWA」とかのような左手小指と人差し指を移動させる配置は、DP発狂段位を持った今でもかなり難儀する


字幕速記人という者がテレビで紹介されていた

彼らは、「スピードワープロ」と呼ばれる速記専用に開発された特別なキーボードを用いて、高々14個のキーの組み合わせから文字を入力するのである

とはいっても、そのキーボード自身は市販されていないのが実情


高々14個ということは、DPBMS環境でそのスピードワープロを再現できるのではないだろうか

ならば、春休みを使って、DAOコンの入力を文字に変換するプログラムを作ろうではないか

とて9時間前くらいから勉強を始めた


無理。
 
まず、僕はC#しかまともに書けない

DirectXというゲームパッドの入力を制御するソフトが存在するのだが、そのコードはC++という異国の言語で書かれることになる

そのDirectXをC#でも扱えるようにするソフトというのがネットにいくつか存在するのだが、インストールさえままならなかった

何とかインストールにこぎつけ、ネットで先人たちが残したコードをコピペして走らせたものの、全て、原因や解決法どころか内容さえ僕の理解の及ばぬようなエラーを吐いて詰みとなるばかりであった


DirectXを直接扱えばそういう問題は解決するのだろうが、それにはC++とかいう難度最高峰の言語を極めねばならない


こうして途方に暮れていたころに、Unityの存在を思い出す


1年半ほど前にスマホ音ゲーの再現、および自作譜面でのプレーを目標に頑張ってきた
僕がやたらC#にこだわるのは、このUnityで使える言語のうち、ネットの文献に富んだものがC#だったためである
(そのプロジェクトは現在リフレッシュレートの安定化がうまくいかないまま半ば凍結状態にある)


早速起動するも、ライセンス認証の画面でエラーの無限ループに陥ったため、最新のUnityを再度インストールすることにした

しかし、やはり認証エラーは解決せず、アカウントのメールアドレス変更や新規発行をさえ行った

UnityのマイページがChromeと喧嘩するのもまたストレスをため込む要因と化していた

それでも何も解決しなかったが、ふと再試行ボタンを押してみると、今までの苦労が嘘だったかのようにライセンス認証に成功した

気合で解決したというほかないような不思議な現象だった 



ともかく、開発環境がUnityで整った


Unityならキーボードやゲームパッドの入力を受け付けることは自明だし、オブジェクトのプロパティのタグからスクリプト上の各public変数の有様を把握できるので、開発が非常にらくちんである
また、先ほどのプロジェクトから得た少しのノウハウもある


早速、手始めに何か書いてみた

using UnityEngine;
public class JoyGet : MonoBehaviour {
    private Renderer rend;
void Start () {
rend=this.GetComponent<Renderer>();
}
void Update () {
        rend.material.color=Input.anyKey?Color.red:Color.green;
}
}

(参考:https://docs.unity3d.com/ja/current/ScriptReference/Input.html、
https://docs.unity3d.com/ja/current/ScriptReference/Material-color.html)

何かボタンが押されているときにオブジェクトの色を赤にし、そうでないときは緑にする、というごく単純なプログラムではあるが、
これがゲームパッドからの入力でも赤化できることがわかったため、第一歩を踏み出すことができた



今週は、DAOコンの各ボタンを識別することを目標に頑張る