2022 Jan 25

Fire Emblem CiphAR - Release 3

Release 3 (Store page) has been rolled out to production. Here are some of the added features:

1) Added cards from all released series. Note that cards from starter decks and promo cards are currently not supported, and will be added in a future update.

2) Added the ability to triple click to clear all existing text. This is useful for clearing clutter when quickly switching cards during play.

There is currently a known issue where cards that are signed or unsigned cards that have signed versions have inconsistent identification and tracking.


2019 Mar 10

Fire Emblem CiphAR - Release 2

Release 2 (Store page) has been rolled out to production. Here are the major fixes made/features added:

1) Reduced text jitter considerably. Instead of updating text position every frame, it's now updated every 180 frames. Additionally, when updating position, it now linearly interpolates between the current position and the new position. I also updated the image database used by ARCore with the actual size of the scanned cards, which apparently helps in tracking image targets.

2) Based on feedback, I added a few changes to overlaid text to increase readability. There's now a thin black outline around the rendered text. Additionally, I added a color picker that can be used to change font color.

3) Added some cards that were missing from series 15. There are some other cards that aren't working as well, that are listed below.


From starter decks:

  1. S01-003ST Loyal Retainer, Jagen
  2. S02-004ST(+) Steel Swordsman, Ogma
  3. S04-004ST(+) Leo: Gravity Master
  4. S06-001ST(+) Itsuki Aoi: Chosen Young Lord
  5. S06-002ST(+) Tsubasa Oribe: The Pegasus Idol
  6. S06-004ST(+) Kiria Kurono: Quirky Charisma
  7. S06-005ST(+) Eleonora Yumizuru: Aiming for Hollywood!

From series:

  1. B01-006HN Caeda: Princess of Talys
  2. B01-010N Abel: Green Knight
  3. B01-047N Tiki: Divine Dragon Princess
  4. B01-055N Lucina: Sacred Descendant
  5. B01-056HN Lucina: Swordsman Known as Marth
  6. B01-079N Nowi: Tomboyish Manakete
  7. B01-082HN Practitioner of Dark Arts, Tharja
  8. B01-096N Noire: Bipolar Archer
  9. B01-099HN Tiki: Sentimental Divine Dragon
  10. B01-002N Corrin (Male): Hidden Dragon Prince
  11. B02-005HN Azura: Songstress of the Fountain
  12. B01-007N Ryoma: First Prince of Hoshido
  13. B02-009N Hinoka: First Princess of Hoshido
  14. B02-031N Felicia: Clumsy Maid
  15. B01-036N Rinkah: Daughter of Fire
  16. B02-055HN Azura: Songstress of Water
  17. B02-063N Elise: Princess of the Dark Sky
  18. B01-036N Charlotte: Lovely Warrior Lady
  19. B03-017N Rolf: Vendure Brother
  20. B04-003HN Tsubasa Oribe: Dreaming Schoolgirl
  21. B04-027N Catria: Swift Whitewing
  22. B04-053HN Itsuki Aoi: Normal Kid
  23. B04-059R(+) Eleonora Yumizuru: Precious Actress
  24. B04-060N Eleonora Yumizuru: Forceful Heroine
  25. B04-061HN Eleonora Yumizuru: Ambitious Young Actress
  26. B04-095N Severa: Hesitant Blade
  27. B04-097N Laurent: Seeker of Truth
  28. B06-045R Mahnya: Sky-Dancing Hero
  29. B05-056SR(+) Leo: Dark Prince of Chilling Magic
  30. B06-059N Elise: Sweet Sister
  31. B06-068HN Arthur: Knight of Bad Luck
  32. B06-069N Arthur: Unlucky Hero
  33. B06-071N Felicia: Refreshing Ice Sister
  34. B06-032R Raven: Blade of Love and Revenge
  35. B06-036N Fiora: Pure White Wings
  36. B06-037N Pent: Silver Mage General
  37. B06-042N Jaffar: Heartless Assasin
  38. B07-052N Ryoma: Master Swordsman of Hoshido
  39. B76-060R(+) Saizo: Garbed in Honor
  40. B06-073N Jakob: Faithful Staff Knight
  41. B06-083N Yukimura: Bespectacled Wiseman
  42. B06-085N Shiro: Prince Polishing his Spearmanship
  43. B06-087HN Mitama: Sullenly Waking
  44. B06-099HN Yuzu: Crane Dreadknight
  45. B08-003HN Chrom: Branded Prince
  46. B08-007N Robin (Female): The Exalt's Other Half
  47. B06-032N Morgan (Male): Amnesiac Boy
  48. B06-036HN Noire: Ballistic Sniper
  49. B06-037N Noire: A Shot from the Dark
  50. B06-042N Emmeryn: Compassionate Exalt
  51. B08-047aN Risen: Defiled Soldier
  52. B08-047bN Risen: Defiled Soldier
  53. B08-047cN Risen: Defiled Soldier
  54. B76-060N Larcei: Gallant Myrmidon
  55. B06-073N Johalvier: Fighter of Love and Justice
  56. B06-083HN Ares: The Young Black Knight
  57. B06-087R(+) Febail: Gallant Divine Marksman
  58. B06-099N Emma: Kaching Dragon
  59. B09-014N Kliff: Surly Passion
  60. B09-018N Lukas: Messenger from the Deliverance
  61. B06-032N Mathilda: Beautiful Knight
  62. B06-036HN Catria: Drifting Pegasus Knight
  63. B06-037N Est: Drifting Youngest Pegasus
  64. B09-075N Yuzu: Purple-Gleaming Protecto
  65. B09-093N Mist: Girl of the Mercenaries
  66. B10-034N Mareeta: The Sword Saint's Flowing Blood
  67. B06-036SR(+) Tina: Mischievous Saint
  68. B11-101+X(S04-003ST) Camilla: Bewitching Malig Knight
  69. B12-015N Soren: Wise Man of the Mercenaries
  70. B13-096N Princess of Múspell, Laevatein
  71. B14-012HN Olivia: Soothing Dancer
  72. B14-055N Azura: Requiem
  73. B15-012N Roderick: Serene Squire
  74. B15-021N Catria: Macedonian Pegasus Knight
  75. B15-022R(+) Palla: Greenwind Dracoknight
  76. B15-023N Palla: Elder Macedonian Pegasus
  77. B15-049HN Alice: Dauntless Mounted Princess
  78. B15-050HN Valjean: Armored Sorcerer
  79. B15-078SR Altena: Wishing for a Warless World
  80. B15-079N Altena: Thracian-Raised Princess

I'll work on figuring these out this week. Let me know if there's anything not on the list that isn't working as well.


2019 Mar 04

Fire Emblem CiphAR - Community Feedback

Thank you for all the great feedback! Here is a consolidated list of the bugs found and features requested:


Bugs

1) Text jitter - When scanning some cards, there is a lot of jitter when viewing the text. I'm pretty sure this is because of ARCore re-adjusting the text position relative to the card once per frame, which causes even tiny camera movements to cause the text to shift. I'll probably solve this by implementing a minimum distance moved parameter for the scanned cards before the text is re-adjusted.

2) Cards missing - It looks like my web scraper missed some cards when compiling the image and translation databases. I'll look into these and either fix the issues in the web scraper, or add the missing cards in manually.

3) Text rendering too small - Sometimes, the app mis-approximates the distance of the camera to the card, causing the Y coordinate of the text to be too far away from the camera, making the overlaid text look very small. Still looking into a fix for this.

Features

1) Font changes - A lot of people had readability issues with the default white font color. To alleviate this, I'll implement a menu that can be used to change the font color, font size and font border.

2) Card freezing - Being able to tap a card to freeze its translation in place, so even large camera movements do not shift the translation.

3) Card DB lookup - a separate screen for being able to look up existing translations, without having to scan a card first.

I'll look into fixing most of the bugs this week, then on implementing the new features.


2019 Mar 03

Fire Emblem CiphAR - Android Store Release

The first release of Fire Emblem CiphAR has been rolled out to the Google play store! Here is the store link.

The application was made using Unity3D and ARCore. The image data and card translations were all obtained from Serenes Forest here, and scraped using Python + BeautifulSoup.

Here are some images of the app in use:

An example of a single card being scanned


An example with multiple cards being scanned in a full gameplay environment

Here's the final logo I decided to go with:

The sword is supposed to be a minimalist Falchion. The 5 circles are meant to be the orbs on the back of most cipher cards (or the orbs in a summoning circle for Fire Emblem Heroes, if you play that). I'm sure none of this actually comes across effectively.

Current issues:

  1. There's some jitter in the overlaid text, probably due to ARCore readjusting the position of the text per frame, even on small camera movements.

  2. If the card isn't scanned accurately, sometimes it will "fly away" (hard to explain, but you'll know when it happens).


2019 Mar 02

ciphAR - An Auto-translation app for the Fire Emblem Cipher Card Game

I started collecting cards from the Fire Emblem Cipher card game a few years ago, solely because of the art. I may have gone a little overboard, especially for a game I don't actually play, since I can barely read Japanese.

Exhibit 1: A little overboard

To deal with the aforementioned translation issue, I'm developing a small AR application that will scan FE Cipher cards and superimpose the cards' translation on top of them. Here is a sample scanned output:

The superimposed text auto-adjusts based camera position, and generally maintains its world-space position unless the user moves the camera far away from the initial scanned position of the card.

I'll probably be releasing the application to android over the next few days, and I'll add features based on feedback.