0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

イメージOS 〜画像アプリ用のあたらしいNoCode (ノーコード)〜 

Last updated at Posted at 2024-08-04

私は、ほしい機能(表現)があった。

それはアニメのフレーム補完が可能なベクター線に、強弱や質感(水彩や鉛筆など)をつけることだったりする。そんな機能を持ったソフトは、確かに存在するかもしれない。

けれど、そういった独自に欲した機能は、多くのソフトの中のどのソフトにあるのか?
簡単には探し出せない。

9VAeでのベクターアニメーション作成(画像)
9VAe ベクターアニメ編集画面

また、そのソフトはどんなソフトだろうか?
例えば先程のような機能に似たものは(静止画のみだが、、、)ClipStudioPaintoに存在する。しかし、そのツールはプロが使ういわゆる機能がうじゃうじゃあるツールであり、その機能はそのうじゃうじゃある機能の中のマイナーな機能の一つに過ぎない。

クリップスタジオペイントの画面(画像)
clipstudiopaintoの編集画面

そのソフトを、必要な1つの機能があるというだけの理由で導入するべきだろうか?

うじゃうじゃとうごめく機能を習得してその機能を使う段階までにたどり着くのに、どれほど時間がかかるか、考えただけでその機能を諦める。

そして、すくなくとも導入を考える時点で言えば、それはまだその機能自体は使えていない段階にある。
ネットでこんな機能があるという紹介(使い方)が載っていただけ。

そうなると、機能の詳細がわからない。私自身も、このClipStudioPaintoにあるという機能は自分の思うものかわからない。

必要なのはこれ。

つまり、アプリという枠を超えて機能を交換できる方法が必要なのだ!!

  • ほしい機能を素早く見つけられる。
  • ほしい機能は使い慣れたツールに落とし込める。
     →簡単に動作を把握し、試しに使うことができる。
  • 機能はもっと細かい機能から構成されていて、細かなカスタマイズや改造ができる。(←どれくらいの細かさで階層を統一するか)(改造するにあたって著作権をどのように管理するか)
  • 詳しい者はコードを書いて、詳しくない者は機能を組み合わせ、レイヤー(機能)を作っていく。
     →機能の細かさの階層構造はこのような能力に応じたカスタマイズを可能にする。

どのようにして実装するか

まず機能は私が作るのでは間に合わないし、
ユーザーが自身で追加できないのではユーザーのニーズに合った機能が作れない
そこで機能は、ユーザーや外部からのプログラマーなどに作ってもらう。

定型的な基盤となる機能のそろったアプリ(いわゆるユーザーが機能を付け加えていないVScode)はない方が良い。
→ユーザーの欲しくない機能が常に存在することになる。

できるだけ機能どうしを自由につなげられるとよい、とわかる。(それは情報の受け渡し等。)→できないとプログラムに詳しくないユーザーの思いつきに対応できない

そこで、ユーザー同士で決まりを作る。すなわち規格化を図る。
規格化はデータのやり取りや、プログラムの領域などを決定し使用していくことだと思われる。
ここで2つの課題が残る。

  • 基盤となるアプリ等がないため実態がない。
    (つまり、こういう規格があります、と世のプログラマーに伝えても、規格(規則)だけではプログラマーに何も作るメリットがない。)
  • 他人の作ったプログラムを実行することはセキュリティ上危険。

この2つの課題を解決する方法がある。
セキュリティシステムとして機能たちを管理する最低限のOSアプリケーションを作ってしまうことだ。

どのように機能を組み合わせるか

デジタルで絵を描く時に必要な、レイヤーを使う。

レイヤーとは、透明なセルのようなもので、その上に絵を描き、重ねていくもの。
ほぼすべてのペイントソフトはこの形式で絵を描いていく。(あくまでアプリ上の話なので、実際に透明なセルはないよ。)

レイヤー構造の仕組み(画像)

レイヤーにひとつの機能をつけ、重ね合わせることで新しい機能を作る。
これなら、日頃、絵を描いている人にもわかりやすい〜♪
のではないかと思っている。

具体的には、下のレイヤーが上のレイヤーへデータを渡していって、機能(フィルター)が重なっていくように見える。

レイヤー間のデータの受け渡し(画像)

ただし、レイヤーの入力値、出力値は種類が多くなった場合、レイヤーとして重ねるだけでなく、バックグラウンドまで編集せねばならず、複雑になるかも。

イメージOSの機能

  • プログラムレイヤーのインポート
  • レイヤーの管理
  • レイヤーを組み合わせて実行(サンドボックス)
  • ブラウザーとのハードウェア情報連帯(情報交換)

また、このようなプログラムは私一人ではセキュリティ等専門知識が不足しているため、オープンソースプロジェクト(OSS)として共同開発する必要がある。

ということで、、、

イメージOSについて私のアイデアをメモしておきます。

今年(2024年)の夏までに
Githubにてコードを公開すると思います。(夏休みを賭けます!)

そして、OSSをやろう!
という大胆な計画ですが、去年からパソコンに触れ始めた私は全く知識がありません。(いま、Gitの使い方を勉強しているという、、、)

公開するコードも、とても危ういと思います。

なので、できれば皆さんから、OSSを行うにあたって、アドバイス頂きたいです。
また、質問があったら教えてください。
 
 
一応、開発状況はこちらから → https://github.com/shikiishi/imageOS

また、テスト版が完成したので使ってください。↓↓
     https://shikiishi.github.io/imageOS/HTML.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?