最近の更新 (Recent Changes)

2013-06-11
2013-06-08
2013-06-01
2013-05-29
2013-05-26
2013-05-24

Wikiガイド(Guide)

サイドバー (Side Bar)

PathData AboutScenario

Paper

今のコミックとストーリーの関係は少し間違ってる。ぺったんの仕様を引き継ぐおとしたので。間違えた。

コミックをpaperとして、ストーリーをpositionとすれば、原稿にコマの位置情報関連付けるイメージができる…ような気がする。ペーパーの情報をどう見るのか… 。用紙サイズを変更できる?現在のストーリーでは紙面の制限がなく、無限に続き描くことができるのが利点。紙という概念を持ち込むと、そこにコマを押し込む形になる。まだ考えが甘い。

希望としてはポジションのXY情報を有効にしたい。ペーパーの左上を基点として相対位置にコマを置く。注意すべき点は、ページの開き方。縦書きの場合は右上が基点になる?

ぺったんRを使ってみて感じたこと。

あらかじめ台本を作成してあって、それをコマに展開したわけだが、必ずしも台本通りに表現できるとは限らない。台本の作り方が甘いという考え方もあるが、いざ作成段階になってみて期待した素材が見つからなかった場合、大幅修正を余儀なくされる。また、コマにフキダシを載せてみるとフキダシがキャラにかぶったり、フキダシ同士がぶつかり合って、期待通りに配置できないこともある。分業するにはそれなりのテクニックが必要なようだ。

http://www.hi-ho.ne.jp/makoto_watanabe/ve/

こういうツールで作成した台本からコマの雛形を作れれば最高なんだが。ある程度のレベルまでは簡単な記法からスクリプト生成することは可能に思えるが… 。

スクロールの利点は紙面に制限がないこと。それが欠点になることもある。原稿用紙は面積に制限があることでコマ割が生まれてさらに、ページをめくるドキドキも生まれた。いつまでも下に続くスクロールにそれらは無い。

スクロールを巻物として、また紙を原稿用紙として扱うのはどうか。

台本には柱がある。ぺったんRにもその概念を取り入れてコマにキャプションを追加してみてはどうか?コミックに、ストーリーを追加するときはこのキャプションを頼りに選べる。

台本を作ってからコマを作成するのが正しいが、必ずしもそれにのとらなければならない訳では無い。難しいことがわからない人にはシンプルに始められる余裕が欲しい。

国際化で問題になるのは画像を反転させたときオノマトペまでが反転ししまうこと。最低限そこだけでも別のレイヤーにしておくことが海外販売の常識らしい。

レイヤー機能が必要だったか?

ぺったんJCの使い方

まずはぺったんJCを起動する。

rails s

次にぺったんRをボート3001で起動する。

rails s -p 3001

まずはぺったんRにアクセスしてアカウントを作成する。そして認証トークンを作成する。このアカウントをぺったんJCから利用することになる。認証トークンを控えておくこと。

ぺったんJCの準備

ぺったんJCにアクセスする。アカウントを作成しないと利用できないので、アカウントを作成する。このアカウントはぺったんJCを利用するためのアカウントなので、ぺったんRのアカウントとは関係がない。

アカウントを作成してログインすると、アカウント一覧が表示される。少し紛らわしいがこの一覧で表示されるのはぺったんRのアカウント一覧となる。アカウント作成をクリックすると、ぺったんRのアカウントを登録できる。フォームからホスト名と認証トークンを入力できるので、先ほど控えたぺったんRの認証トークンとぺったんRサーバーが起動しているホスト名を入力する。メモはぺったんJCのユーザーが覚えやすいようにどこのぺったんRのサイトの何というアカウントなのかをメモしておける。今回の例では、ぺったんRをで起動しているのでホスト名はこれになる。なおホスト名は必ずスラッシュで終わらせること。

Request

作成したアカウントの詳細ページに移るとぺったんRのリクエストフォームが表示される。このフォームに必要事項を入力して送信すると、ぺったんJCがぺったんRのAPIからデータを取得してくれる。

ここではわかりやすいように、フォームで表示しているが、実際はこのフォームと同じような動作をJavaScriptが実行する。

  • HTTPメソッド
    • 0から3三の数字で選択する。
      • 0:get
      • 1:post
      • 2:put
      • 3:delete
  • パス
    • ホスト名から後のURLを入力することになる。
  • パラメータ
    • 新規作成や更新の場合、データが必要になるので、json形式で入力する。

つまり、ぺったんJCはぺったんRに対して上記フォームのAPIを(JavaScriptの代わりに)実行して、結果を返すものとなる。それをやるのが下記のURLのAPIとなる。

http://localhost:3000/requests/

JavaScriptはこのAPIに対してAjax.Requestを実行することで、 JavaScriptには不可能なputメソッドやdeleteメソッドなどの処理を行わせ、結果を取得することができるようになる。

アカウントを登録するのは、ぺったんRのサーバーがあちこちに存在する上にサブアカウントを作成することもあり得るので、ぺったん JCから、あらゆるアカウントを操作できるようにするのが狙いである。 JavaScript側の処理としてはこのアカウント一覧を取得して選択ボックスで操作対象となるアカウントを選択するUIが必要となるだろう。その上で選択したアカウントに対して、ぺったんRのAPIを実行することとなる。

データを取得する。

データを取得するにはHTTPメソッドでgetを選択する。たとえば、コミック一覧の場合comicsとなり、 ID:3のコミックを取得する場合はcomics/3となる(通常のAPI呼び出しでは、拡張子として.jsonが必要となるが、ぺったんJCが補完してくれるのでなくても良い) 。

  • HTTPメソッド
    • 0:get
  • パス
    • comics
  • パラメータ
    • 必要は無い。
  • HTTPメソッド
    • 0:get
  • パス
    • comics/3
  • パラメータ
    • 必要は無い。

新規作成する。

データを作成するにはHTTPメソッドでポストを選択する。例えばコミック作成の場合、パスにcomicsを設定するとともに、パラメータにコミックのデータを入力する。

  • HTTPメソッド
    • 1:post
  • パス
    • comics
  • パラメータ
    • {"title": "new", "visible": 1}
      

更新する。

データを更新するには、 HTTPメソッドでputを選択する。例えば、コミック更新の場合、バスに更新したいコミックのIDを設定してパラメータにコミックの新しいデータを入力する。

  • HTTPメソッド
    • 2:put
  • パス
    • comics/3
  • パラメータ
    • {"title": "changed", "visible": 1}
      

削除する。

データを削除するには、 HTTPメソッドでdeleteを選択する。例えばコミック削除の場合、パスに削除したいコミックのIDを設定する。パラメータはからでいい。

  • HTTPメソッド
    • 3:delete
  • パス
    • comics/3
  • パラメータ

multipart

JavaScriptではファイルを送信することができないのでした。そのために、ぺったんJCではファイル送信用のAPIを用意した。次のURLでファイル送信を受け付ける。これはJavaScriptで生成することはできないので、ぺったんJC側のフォーム出力テンプレートを編集することで対応することになる。

http://localhost:3000/requests/multipart

といっても、選んだファイルをぺったんRサーバに投げるのではなく、選ばれたファイルの中身をBase64でエンコードして返す。

{"file": "Base64DDDDDDDDDD..."}

これはAPIによってはファイルだけでなく、他のパラメータを受け付けることもあるからで、 JavaScriptとしてはこのAPIで返ってきたデータにさらに必要なデータを添えてぺったんRに正式に送信することになる。

ぺったんRでファイルを送信する機能は今のところ原画の投稿しかない。原画の投稿ではファイル送信フォーム以外にも、 json形式でのAPIが制定されているので、そちらを利用することになる。

http://sourceforge.jp/projects/pettanr/wiki/OriginalPicturesCreate

早い話が、返ってきたデータを次のような形にすれば良い。

{"original_picture[file]": "Base64DDDDDDDDDD..."}

サーバが出すページのポリシー

サーバをdbと見るなら、一覧と詳細があればよく、忠実にデータを表示するほど使いやすいし、拡張もしやすい。しかし、生に近い表示では利便性に難がある。クライアントソフトを信用するなら直感的デザインを考慮する必要はない。

が、しかし…。それでも実装しているのは何故?

デバッグしやすいから。翻訳に上がってくる単語を整理したいから。でも、ほとんどが我欲なんじゃね?

アカウント停止フラグ原画も素材IDバックアップコミックも作家の停止と座長の停止 ライセンスは途中て替えられないフラグ変更不可

縦書きに関する考察

  • Evilにはなるまいと心を砕いているが、一つだけ、実現するならEvilになっても良いと思うものがある
  • 縦書きというやつだ
  • かねてより横書きには不満がある
  • 字の並ぶ向きが違うとか、ページをめくる向きが違うとか以上の違いがある
  • 右利きが左を使うくらいの違和感
  • 横書き漫画はなんとなくつまんない
  • たぶん、同じ内容でも縦と横で面白さは変わってくる
  • なぜか
  • 人間の視野は横に広く、縦に狭い
  • 横の動きに強く、縦の動きに弱い
  • 横書きの方がリーディングの効率が良い
  • 漫画は敢えて縦書き
  • だが、それがいい
    • セリフを追いながらも視界は絵を捉えている
    • 読みの速度が遅いから絵を見る時間も長い
    • 視線を何度も上下させて楽しむのが漫画
  • 横書きだと…
    • セリフに集中して絵を見てない
    • コマをすぐ通過するから印象が残らない
    • 洋書に挿絵が少ないのは、横書きだから
  • 漫画文化は縦書きが生んだ
  • 縦書きでこそ漫画
  • CSS3.0では縦書きもできるらしいが?
あとは、数字の前にコメントが欲しいです.アウトソースなら、コミック(コマ?)毎に一意な twitter ハッシュタグを作る機能とかがあればとりあえずはいいのかな? これならクライアントだけでできそうですし.ブクマのコメントも js で取れます.

http://sourceforge.jp/forum/message.php?msg_id=62287

  • 逆フキダシ
  • min_width→lower_limit
  • no_adult ?

ライセンス

画像の衝突

  • 同じ画像がサーバに入ることがある
    • 誰かがパクった?
    • 素材サーバをやってる絵師が他のサーバでゴニョって重複してまった。
  • md5を採用して保存すればユニーク。同じ画像はアップロードできない。
    • 投稿時にValidate
    • md5って計算速い?
      • 時間かかるなら仕様がぐらつく。
  • 投稿フォームからなら一枚単位だから楽。
    • xmlインポートなるものが
  • インポートは一時テーブルにたまる
    • 問題ないのは正式に投稿される
    • 衝突が起きたら残る
      • 誰のどのライセンスか
  • 誰かと衝突したらページに警告が?
    • 著作権違反の疑い
    • 詳しくはこちら
      • 衝突ページへ
  • 自分どうしであれば相手に委譲すればよいが。
  • 結局誰が強いのか
    • 管理者に任せるのがプログラマ的に楽
  • 絵師の仕様がかわる?